diff options
author | Tom Cooksey <thomas.cooksey@nokia.com> | 2009-09-17 15:25:08 (GMT) |
---|---|---|
committer | Tom Cooksey <thomas.cooksey@nokia.com> | 2009-09-17 15:25:08 (GMT) |
commit | 1d05c5221ba8ad3f5d3d36ba2025ea45bc3afe88 (patch) | |
tree | 6cba08738ce9fcdb0d1d8d7417b336a8521f36a1 /src | |
parent | b7923d48fb6d755d4563eeed0e7f3cbc774d69d5 (diff) | |
parent | 0db5ca5c733422b28524791b4f292227a61090d2 (diff) | |
download | Qt-1d05c5221ba8ad3f5d3d36ba2025ea45bc3afe88.zip Qt-1d05c5221ba8ad3f5d3d36ba2025ea45bc3afe88.tar.gz Qt-1d05c5221ba8ad3f5d3d36ba2025ea45bc3afe88.tar.bz2 |
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6
Conflicts:
tests/auto/qtwidgets/tst_qtwidgets.cpp
Diffstat (limited to 'src')
42 files changed, 1319 insertions, 467 deletions
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h index d925f40..29f46f6 100644 --- a/src/corelib/global/qfeatures.h +++ b/src/corelib/global/qfeatures.h @@ -446,6 +446,11 @@ #define QT_NO_SPLITTER #endif +// State machine +#if !defined(QT_NO_STATEMACHINE) && (defined(QT_NO_PROPERTIES)) +#define QT_NO_STATEMACHINE +#endif + // QCDEStyle #if !defined(QT_NO_STYLE_CDE) && (defined(QT_NO_STYLE_MOTIF)) #define QT_NO_STYLE_CDE @@ -616,11 +621,6 @@ #define QT_NO_QWS_SOUNDSERVER #endif -// QtScript -#if !defined(QT_NO_SCRIPT) && (defined(QT_NO_TEXTDATE) || defined(QT_NO_DATESTRING) || defined(QT_NO_PROPERTIES)) -#define QT_NO_SCRIPT -#endif - // QSvgGenerator #if !defined(QT_NO_SVGGENERATOR) && (defined(QT_NO_SVG)) #define QT_NO_SVGGENERATOR diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 9909b7b..1d29b3b 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -2065,7 +2065,7 @@ QString qt_error_string(int errorCode) NULL, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - string, + (LPWSTR)&string, 0, NULL); ret = QString::fromWCharArray(string); diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp index 8d7a75d..1f23211 100644 --- a/src/corelib/tools/qregexp.cpp +++ b/src/corelib/tools/qregexp.cpp @@ -522,6 +522,10 @@ int qFindString(const QChar *haystack, int haystackLen, int from, outside, backslash has no special meaning. \endtable + In the mode Wildcard, the wildcard characters cannot be + escaped. In the mode WildcardUnix, the character '\' escapes the + wildcard. + For example if we are in wildcard mode and have strings which contain filenames we could identify HTML files with \bold{*.html}. This will match zero or more characters followed by a dot followed @@ -751,50 +755,100 @@ static void mergeInto(QVector<int> *a, const QVector<int> &b) /* Translates a wildcard pattern to an equivalent regular expression pattern (e.g., *.cpp to .*\.cpp). + + If enableEscaping is true, it is possible to escape the wildcard + characters with \ */ -static QString wc2rx(const QString &wc_str) +static QString wc2rx(const QString &wc_str, const bool enableEscaping) { - int wclen = wc_str.length(); + const int wclen = wc_str.length(); QString rx; int i = 0; + bool isEscaping = false; // the previous character is '\' const QChar *wc = wc_str.unicode(); + while (i < wclen) { - QChar c = wc[i++]; + const QChar c = wc[i++]; switch (c.unicode()) { + case '\\': + if (enableEscaping) { + if (isEscaping) { + rx += QLatin1String("\\\\"); + } // we insert the \\ later if necessary + if (i+1 == wclen) { // the end + rx += QLatin1String("\\\\"); + } + } else { + rx += QLatin1String("\\\\"); + } + isEscaping = true; + break; case '*': - rx += QLatin1String(".*"); + if (isEscaping) { + rx += QLatin1String("\\*"); + isEscaping = false; + } else { + rx += QLatin1String(".*"); + } break; case '?': - rx += QLatin1Char('.'); + if (isEscaping) { + rx += QLatin1String("\\?"); + isEscaping = false; + } else { + rx += QLatin1Char('.'); + } + break; case '$': case '(': case ')': case '+': case '.': - case '\\': case '^': case '{': case '|': case '}': + if (isEscaping) { + isEscaping = false; + rx += QLatin1String("\\\\"); + } rx += QLatin1Char('\\'); rx += c; break; - case '[': - rx += c; - if (wc[i] == QLatin1Char('^')) - rx += wc[i++]; - if (i < wclen) { - if (rx[i] == QLatin1Char(']')) - rx += wc[i++]; - while (i < wclen && wc[i] != QLatin1Char(']')) { - if (wc[i] == QLatin1Char('\\')) - rx += QLatin1Char('\\'); + case '[': + if (isEscaping) { + isEscaping = false; + rx += QLatin1String("\\["); + } else { + rx += c; + if (wc[i] == QLatin1Char('^')) rx += wc[i++]; + if (i < wclen) { + if (rx[i] == QLatin1Char(']')) + rx += wc[i++]; + while (i < wclen && wc[i] != QLatin1Char(']')) { + if (wc[i] == QLatin1Char('\\')) + rx += QLatin1Char('\\'); + rx += wc[i++]; + } } } + break; + + case ']': + if(isEscaping){ + isEscaping = false; + rx += QLatin1String("\\"); + } + rx += c; break; + default: + if(isEscaping){ + isEscaping = false; + rx += QLatin1String("\\\\"); + } rx += c; } } @@ -1272,7 +1326,10 @@ Q_CORE_EXPORT QString qt_regexp_toCanonical(const QString &pattern, QRegExp::Pat switch (patternSyntax) { #ifndef QT_NO_REGEXP_WILDCARD case QRegExp::Wildcard: - return wc2rx(pattern); + return wc2rx(pattern, false); + break; + case QRegExp::WildcardUnix: + return wc2rx(pattern, true); break; #endif case QRegExp::FixedString: @@ -3715,6 +3772,10 @@ static void invalidateEngine(QRegExpPrivate *priv) similar to that used by shells (command interpreters) for "file globbing". See \l{Wildcard Matching}. + \value WildcardUnix This is similar to Wildcard but with the + behavior of a Unix shell. The wildcard characters can be escaped + with the character "\". + \value FixedString The pattern is a fixed string. This is equivalent to using the RegExp pattern on a string in which all metacharacters are escaped using escape(). diff --git a/src/corelib/tools/qregexp.h b/src/corelib/tools/qregexp.h index c03e9e4..1a7cf53 100644 --- a/src/corelib/tools/qregexp.h +++ b/src/corelib/tools/qregexp.h @@ -61,7 +61,13 @@ class QStringList; class Q_CORE_EXPORT QRegExp { public: - enum PatternSyntax { RegExp, Wildcard, FixedString, RegExp2, W3CXmlSchema11 }; + enum PatternSyntax { + RegExp, + Wildcard, + FixedString, + RegExp2, + WildcardUnix, + W3CXmlSchema11 }; enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch }; QRegExp(); diff --git a/src/gui/embedded/directfb.pri b/src/gui/embedded/directfb.pri index 7dae9d5..43ff0c7 100644 --- a/src/gui/embedded/directfb.pri +++ b/src/gui/embedded/directfb.pri @@ -8,7 +8,7 @@ #DEFINES += QT_DIRECTFB_IMAGECACHE #DEFINES += QT_NO_DIRECTFB_WM #DEFINES += QT_NO_DIRECTFB_LAYER -#DEFINES += QT_NO_DIRECTFB_PALETTE +#DEFINES += QT_DIRECTFB_PALETTE #DEFINES += QT_NO_DIRECTFB_PREALLOCATED #DEFINES += QT_NO_DIRECTFB_MOUSE #DEFINES += QT_NO_DIRECTFB_KEYBOARD diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.cpp b/src/gui/graphicsview/qgraphicsanchorlayout.cpp index 5897ae4..12124ab 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout.cpp @@ -194,7 +194,7 @@ QGraphicsAnchorLayout::addAnchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge) { Q_D(QGraphicsAnchorLayout); - QGraphicsAnchor *a = d->anchor(firstItem, firstEdge, secondItem, secondEdge); + QGraphicsAnchor *a = d->addAnchor(firstItem, firstEdge, secondItem, secondEdge); invalidate(); return a; } @@ -246,12 +246,12 @@ void QGraphicsAnchorLayout::addCornerAnchors(QGraphicsLayoutItem *firstItem, // Horizontal anchor Qt::AnchorPoint firstEdge = (firstCorner & 1 ? Qt::AnchorRight: Qt::AnchorLeft); Qt::AnchorPoint secondEdge = (secondCorner & 1 ? Qt::AnchorRight: Qt::AnchorLeft); - d->anchor(firstItem, firstEdge, secondItem, secondEdge); + d->addAnchor(firstItem, firstEdge, secondItem, secondEdge); // Vertical anchor firstEdge = (firstCorner & 2 ? Qt::AnchorBottom: Qt::AnchorTop); secondEdge = (secondCorner & 2 ? Qt::AnchorBottom: Qt::AnchorTop); - d->anchor(firstItem, firstEdge, secondItem, secondEdge); + d->addAnchor(firstItem, firstEdge, secondItem, secondEdge); invalidate(); } @@ -288,6 +288,18 @@ void QGraphicsAnchorLayout::addAnchors(QGraphicsLayoutItem *firstItem, } /*! + Returns true if there are no arrangement that satisfies all constraints. + Otherwise returns false. + + \sa addAnchor() +*/ +bool QGraphicsAnchorLayout::hasConflicts() const +{ + Q_D(const QGraphicsAnchorLayout); + return d->hasConflicts(); +} + +/*! Sets the default horizontal spacing for the anchor layout to \a spacing. \sa horizontalSpacing(), setVerticalSpacing(), setSpacing() diff --git a/src/gui/graphicsview/qgraphicsanchorlayout.h b/src/gui/graphicsview/qgraphicsanchorlayout.h index d9a87ba..44074d1 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout.h @@ -93,6 +93,7 @@ public: QGraphicsLayoutItem *secondItem, Qt::Orientations orientations = Qt::Horizontal | Qt::Vertical); + bool hasConflicts() const; void setHorizontalSpacing(qreal spacing); void setVerticalSpacing(qreal spacing); void setSpacing(qreal spacing); diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp index a37ec96..23601f9 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.cpp @@ -59,7 +59,7 @@ QGraphicsAnchorPrivate::QGraphicsAnchorPrivate(int version) QGraphicsAnchorPrivate::~QGraphicsAnchorPrivate() { - layoutPrivate->deleteAnchorData(data); + layoutPrivate->removeAnchor(data->from, data->to); } void QGraphicsAnchorPrivate::setSpacing(qreal value) @@ -332,6 +332,7 @@ QGraphicsAnchorLayoutPrivate::QGraphicsAnchorLayoutPrivate() for (int i = 0; i < NOrientations; ++i) { spacings[i] = -1; graphSimplified[i] = false; + graphHasConflicts[i] = false; } } @@ -790,7 +791,7 @@ void QGraphicsAnchorLayoutPrivate::createLayoutEdges() // Horizontal AnchorData *data = new AnchorData(0, 0, QWIDGETSIZE_MAX); - addAnchor(layout, Qt::AnchorLeft, layout, + addAnchor_helper(layout, Qt::AnchorLeft, layout, Qt::AnchorRight, data); data->skipInPreferred = 1; @@ -800,7 +801,7 @@ void QGraphicsAnchorLayoutPrivate::createLayoutEdges() // Vertical data = new AnchorData(0, 0, QWIDGETSIZE_MAX); - addAnchor(layout, Qt::AnchorTop, layout, + addAnchor_helper(layout, Qt::AnchorTop, layout, Qt::AnchorBottom, data); data->skipInPreferred = 1; @@ -816,8 +817,10 @@ void QGraphicsAnchorLayoutPrivate::deleteLayoutEdges() Q_ASSERT(internalVertex(q, Qt::AnchorHorizontalCenter) == NULL); Q_ASSERT(internalVertex(q, Qt::AnchorVerticalCenter) == NULL); - removeAnchor(q, Qt::AnchorLeft, q, Qt::AnchorRight); - removeAnchor(q, Qt::AnchorTop, q, Qt::AnchorBottom); + removeAnchor_helper(internalVertex(q, Qt::AnchorLeft), + internalVertex(q, Qt::AnchorRight)); + removeAnchor_helper(internalVertex(q, Qt::AnchorTop), + internalVertex(q, Qt::AnchorBottom)); } void QGraphicsAnchorLayoutPrivate::createItemEdges(QGraphicsLayoutItem *item) @@ -832,7 +835,7 @@ void QGraphicsAnchorLayoutPrivate::createItemEdges(QGraphicsLayoutItem *item) int maximumSize = item->maximumWidth(); AnchorData *data = new AnchorData(minimumSize, preferredSize, maximumSize); - addAnchor(item, Qt::AnchorLeft, item, + addAnchor_helper(item, Qt::AnchorLeft, item, Qt::AnchorRight, data); // Vertical @@ -841,7 +844,7 @@ void QGraphicsAnchorLayoutPrivate::createItemEdges(QGraphicsLayoutItem *item) maximumSize = item->maximumHeight(); data = new AnchorData(minimumSize, preferredSize, maximumSize); - addAnchor(item, Qt::AnchorTop, item, + addAnchor_helper(item, Qt::AnchorTop, item, Qt::AnchorBottom, data); } @@ -904,16 +907,16 @@ void QGraphicsAnchorLayoutPrivate::createCenterAnchors( QSimplexConstraint *c = new QSimplexConstraint; AnchorData *data = new AnchorData(minimumSize, preferredSize, maximumSize); c->variables.insert(data, 1.0); - addAnchor(item, firstEdge, item, centerEdge, data); + addAnchor_helper(item, firstEdge, item, centerEdge, data); data = new AnchorData(minimumSize, preferredSize, maximumSize); c->variables.insert(data, -1.0); - addAnchor(item, centerEdge, item, lastEdge, data); + addAnchor_helper(item, centerEdge, item, lastEdge, data); itemCenterConstraints[orientation].append(c); // Remove old one - removeAnchor(item, firstEdge, item, lastEdge); + removeAnchor_helper(first, last); } void QGraphicsAnchorLayoutPrivate::removeCenterAnchors( @@ -976,11 +979,11 @@ void QGraphicsAnchorLayoutPrivate::removeCenterAnchors( int maximumSize = oldData->maxSize * 2; AnchorData *data = new AnchorData(minimumSize, preferredSize, maximumSize); - addAnchor(item, firstEdge, item, lastEdge, data); + addAnchor_helper(item, firstEdge, item, lastEdge, data); // Remove old anchors - removeAnchor(item, firstEdge, item, centerEdge); - removeAnchor(item, centerEdge, item, lastEdge); + removeAnchor_helper(first, center); + removeAnchor_helper(center, internalVertex(item, lastEdge)); } else { // this is only called from removeAnchors() @@ -989,13 +992,13 @@ void QGraphicsAnchorLayoutPrivate::removeCenterAnchors( for (int i = 0; i < adjacents.count(); ++i) { AnchorVertex *v = adjacents.at(i); if (v->m_item != item) { - removeAnchor(item, centerEdge, v->m_item, v->m_edge); + removeAnchor_helper(center, internalVertex(v->m_item, v->m_edge)); } } // when all non-internal anchors is removed it will automatically merge the // center anchor into a left-right (or top-bottom) anchor. We must also delete that. // by this time, the center vertex is deleted and merged into a non-centered internal anchor - removeAnchor(item, firstEdge, item, lastEdge); + removeAnchor_helper(first, internalVertex(item, lastEdge)); } } @@ -1039,7 +1042,7 @@ void QGraphicsAnchorLayoutPrivate::removeCenterConstraints(QGraphicsLayoutItem * * Helper function that is called from the anchor functions in the public API. * If \a spacing is 0, it will pick up the spacing defined by the style. */ -QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::anchor(QGraphicsLayoutItem *firstItem, +QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::addAnchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge, QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge, @@ -1112,18 +1115,18 @@ QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::anchor(QGraphicsLayoutItem *first } else { data = new AnchorData(0); // spacing should be 0 } - addAnchor(firstItem, firstEdge, secondItem, secondEdge, data); + addAnchor_helper(firstItem, firstEdge, secondItem, secondEdge, data); } else if (*spacing >= 0) { data = new AnchorData(*spacing); - addAnchor(firstItem, firstEdge, secondItem, secondEdge, data); + addAnchor_helper(firstItem, firstEdge, secondItem, secondEdge, data); } else { data = new AnchorData(-*spacing); - addAnchor(secondItem, secondEdge, firstItem, firstEdge, data); + addAnchor_helper(secondItem, secondEdge, firstItem, firstEdge, data); } return acquireGraphicsAnchor(data); } -void QGraphicsAnchorLayoutPrivate::addAnchor(QGraphicsLayoutItem *firstItem, +void QGraphicsAnchorLayoutPrivate::addAnchor_helper(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge, QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge, @@ -1142,8 +1145,9 @@ void QGraphicsAnchorLayoutPrivate::addAnchor(QGraphicsLayoutItem *firstItem, // Remove previous anchor // ### Could we update the existing edgeData rather than creating a new one? - if (graph[edgeOrientation(firstEdge)].edgeData(v1, v2)) - removeAnchor(firstItem, firstEdge, secondItem, secondEdge); + if (graph[edgeOrientation(firstEdge)].edgeData(v1, v2)) { + removeAnchor_helper(v1, v2); + } // 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 @@ -1178,15 +1182,82 @@ QGraphicsAnchor *QGraphicsAnchorLayoutPrivate::getAnchor(QGraphicsLayoutItem *fi return graphicsAnchor; } -void QGraphicsAnchorLayoutPrivate::removeAnchor(QGraphicsLayoutItem *firstItem, - Qt::AnchorPoint firstEdge, - QGraphicsLayoutItem *secondItem, - Qt::AnchorPoint secondEdge) +/*! + * \internal + * + * Implements the high level "removeAnchor" feature. Called by + * the QAnchorData destructor. + */ +void QGraphicsAnchorLayoutPrivate::removeAnchor(AnchorVertex *firstVertex, + AnchorVertex *secondVertex) { - removeAnchor_helper(internalVertex(firstItem, firstEdge), - internalVertex(secondItem, secondEdge)); + Q_Q(QGraphicsAnchorLayout); + + // Actually delete the anchor + removeAnchor_helper(firstVertex, secondVertex); + + QGraphicsLayoutItem *firstItem = firstVertex->m_item; + QGraphicsLayoutItem *secondItem = secondVertex->m_item; + + // Checking if the item stays in the layout or not + bool keepFirstItem = false; + bool keepSecondItem = false; + + QPair<AnchorVertex *, int> v; + int refcount = -1; + + if (firstItem != q) { + for (int i = Qt::AnchorLeft; i <= Qt::AnchorBottom; ++i) { + v = m_vertexList.value(qMakePair(firstItem, static_cast<Qt::AnchorPoint>(i))); + if (v.first) { + if (i == Qt::AnchorHorizontalCenter || i == Qt::AnchorVerticalCenter) + refcount = 2; + else + refcount = 1; + + if (v.second > refcount) { + keepFirstItem = true; + break; + } + } + } + } else + keepFirstItem = true; + + if (secondItem != q) { + for (int i = Qt::AnchorLeft; i <= Qt::AnchorBottom; ++i) { + v = m_vertexList.value(qMakePair(secondItem, static_cast<Qt::AnchorPoint>(i))); + if (v.first) { + if (i == Qt::AnchorHorizontalCenter || i == Qt::AnchorVerticalCenter) + refcount = 2; + else + refcount = 1; + + if (v.second > refcount) { + keepSecondItem = true; + break; + } + } + } + } else + keepSecondItem = true; + + if (!keepFirstItem) + q->removeAt(items.indexOf(firstItem)); + + if (!keepSecondItem) + q->removeAt(items.indexOf(secondItem)); + + // Removing anchors invalidates the layout + q->invalidate(); } +/* + \internal + + Implements the low level "removeAnchor" feature. Called by + private methods. +*/ void QGraphicsAnchorLayoutPrivate::removeAnchor_helper(AnchorVertex *v1, AnchorVertex *v2) { Q_ASSERT(v1 && v2); @@ -1207,17 +1278,6 @@ void QGraphicsAnchorLayoutPrivate::removeAnchor_helper(AnchorVertex *v1, AnchorV \internal Only called from outside. (calls invalidate()) */ -void QGraphicsAnchorLayoutPrivate::deleteAnchorData(AnchorData *data) -{ - Q_Q(QGraphicsAnchorLayout); - removeAnchor_helper(data->from, data->to); - q->invalidate(); -} - -/*! - \internal - Only called from outside. (calls invalidate()) -*/ void QGraphicsAnchorLayoutPrivate::setAnchorSize(AnchorData *data, const qreal *anchorSize) { Q_Q(QGraphicsAnchorLayout); @@ -1225,12 +1285,35 @@ void QGraphicsAnchorLayoutPrivate::setAnchorSize(AnchorData *data, const qreal * // search recursively through all composite anchors Q_ASSERT(data); restoreSimplifiedGraph(edgeOrientation(data->from->m_edge)); + + QGraphicsLayoutItem *firstItem = data->from->m_item; + QGraphicsLayoutItem *secondItem = data->to->m_item; + Qt::AnchorPoint firstEdge = data->from->m_edge; + Qt::AnchorPoint secondEdge = data->to->m_edge; + + // Use heuristics to find out what the user meant with this anchor. + correctEdgeDirection(firstItem, firstEdge, secondItem, secondEdge); + if (data->from->m_item != firstItem) + qSwap(data->from, data->to); + if (anchorSize) { - data->setFixedSize(*anchorSize); + // ### The current implementation makes "setAnchorSize" behavior + // dependent on the argument order for cases where we have + // no heuristic. Ie. two widgets, same anchor point. + + // We cannot have negative sizes inside the graph. This would cause + // the simplex solver to fail because all simplex variables are + // positive by definition. + // "negative spacing" is handled by inverting the standard item order. + if (*anchorSize >= 0) { + data->setFixedSize(*anchorSize); + } else { + data->setFixedSize(-*anchorSize); + qSwap(data->from, data->to); + } } else { data->unsetSize(); } - q->invalidate(); } @@ -1360,25 +1443,23 @@ void QGraphicsAnchorLayoutPrivate::correctEdgeDirection(QGraphicsLayoutItem *&fi { Q_Q(QGraphicsAnchorLayout); - Qt::AnchorPoint effectiveFirst = firstEdge; - Qt::AnchorPoint effectiveSecond = secondEdge; - - if (firstItem == q) - effectiveFirst = QGraphicsAnchorLayoutPrivate::oppositeEdge(firstEdge); - if (secondItem == q) - effectiveSecond = QGraphicsAnchorLayoutPrivate::oppositeEdge(secondEdge); - - if (effectiveFirst < effectiveSecond) { - - // ### DEBUG - /* printf("Swapping Anchor from %s %d --to--> %s %d\n", - firstItem->isLayout() ? "<layout>" : - qPrintable(static_cast<QGraphicsWidget *>(firstItem)->data(0).toString()), - firstEdge, - secondItem->isLayout() ? "<layout>" : - qPrintable(static_cast<QGraphicsWidget *>(secondItem)->data(0).toString()), - secondEdge); - */ + if ((firstItem != q) && (secondItem != q)) { + // If connection is between widgets (not the layout itself) + // Ensure that "right-edges" sit to the left of "left-edges". + if (firstEdge < secondEdge) { + qSwap(firstItem, secondItem); + qSwap(firstEdge, secondEdge); + } + } else if (firstItem == q) { + // If connection involves the right or bottom of a layout, ensure + // the layout is the second item. + if ((firstEdge == Qt::AnchorRight) || (firstEdge == Qt::AnchorBottom)) { + qSwap(firstItem, secondItem); + qSwap(firstEdge, secondEdge); + } + } else if ((secondEdge != Qt::AnchorRight) && (secondEdge != Qt::AnchorBottom)) { + // If connection involves the left, center or top of layout, ensure + // the layout is the first item. qSwap(firstItem, secondItem); qSwap(firstEdge, secondEdge); } @@ -1507,6 +1588,7 @@ void QGraphicsAnchorLayoutPrivate::calculateGraphs( AnchorVertex *v = internalVertex(q, pickEdge(Qt::AnchorRight, orientation)); GraphPath trunkPath = graphPaths[orientation].value(v); + bool feasible = true; if (!trunkConstraints.isEmpty()) { #if 0 qDebug("Simplex used for trunk of %s", @@ -1514,33 +1596,37 @@ void QGraphicsAnchorLayoutPrivate::calculateGraphs( #endif // Solve min and max size hints for trunk - QPair<qreal, qreal> minMax = solveMinMax(trunkConstraints, trunkPath); - sizeHints[orientation][Qt::MinimumSize] = minMax.first; - sizeHints[orientation][Qt::MaximumSize] = minMax.second; + qreal min, max; + feasible = solveMinMax(trunkConstraints, trunkPath, &min, &max); // Solve for preferred. The objective function is calculated from the constraints // and variables internally. - solvePreferred(trunkConstraints); + feasible &= solvePreferred(trunkConstraints); - // Propagate the new sizes down the simplified graph, ie. tell the - // group anchors to set their children anchors sizes. + if (feasible) { + // Propagate the new sizes down the simplified graph, ie. tell the + // group anchors to set their children anchors sizes. - // ### we calculated variables already a few times, can't we reuse that? - QList<AnchorData *> trunkVariables = getVariables(trunkConstraints); + // ### we calculated variables already a few times, can't we reuse that? + QList<AnchorData *> trunkVariables = getVariables(trunkConstraints); - for (int i = 0; i < trunkVariables.count(); ++i) - trunkVariables.at(i)->updateChildrenSizes(); + for (int i = 0; i < trunkVariables.count(); ++i) + trunkVariables.at(i)->updateChildrenSizes(); + + // Calculate and set the preferred size for the layout from the edge sizes that + // were calculated above. + qreal pref(0.0); + foreach (const AnchorData *ad, trunkPath.positives) { + pref += ad->sizeAtPreferred; + } + foreach (const AnchorData *ad, trunkPath.negatives) { + pref -= ad->sizeAtPreferred; + } + sizeHints[orientation][Qt::MinimumSize] = min; + sizeHints[orientation][Qt::PreferredSize] = pref; + sizeHints[orientation][Qt::MaximumSize] = max; - // Calculate and set the preferred size for the layout from the edge sizes that - // were calculated above. - qreal pref(0.0); - foreach (const AnchorData *ad, trunkPath.positives) { - pref += ad->sizeAtPreferred; - } - foreach (const AnchorData *ad, trunkPath.negatives) { - pref -= ad->sizeAtPreferred; } - sizeHints[orientation][Qt::PreferredSize] = pref; } else { #if 0 qDebug("Simplex NOT used for trunk of %s", @@ -1574,29 +1660,34 @@ void QGraphicsAnchorLayoutPrivate::calculateGraphs( // layout. // Solve the other only for preferred, skip trunk - for (int i = 1; i < parts.count(); ++i) { - QList<QSimplexConstraint *> partConstraints = parts[i]; - QList<AnchorData *> partVariables = getVariables(partConstraints); - Q_ASSERT(!partVariables.isEmpty()); - - sizeHintConstraints = constraintsFromSizeHints(partVariables); - partConstraints += sizeHintConstraints; - solvePreferred(partConstraints); - - // Propagate size at preferred to other sizes. Semi-floats - // always will be in their sizeAtPreferred. - for (int j = 0; j < partVariables.count(); ++j) { - AnchorData *ad = partVariables[j]; - Q_ASSERT(ad); - ad->sizeAtMinimum = ad->sizeAtPreferred; - ad->sizeAtMaximum = ad->sizeAtPreferred; - ad->updateChildrenSizes(); - } + if (feasible) { + for (int i = 1; i < parts.count(); ++i) { + QList<QSimplexConstraint *> partConstraints = parts[i]; + QList<AnchorData *> partVariables = getVariables(partConstraints); + Q_ASSERT(!partVariables.isEmpty()); + + sizeHintConstraints = constraintsFromSizeHints(partVariables); + partConstraints += sizeHintConstraints; + feasible &= solvePreferred(partConstraints); + if (!feasible) + break; + + // Propagate size at preferred to other sizes. Semi-floats + // always will be in their sizeAtPreferred. + for (int j = 0; j < partVariables.count(); ++j) { + AnchorData *ad = partVariables[j]; + Q_ASSERT(ad); + ad->sizeAtMinimum = ad->sizeAtPreferred; + ad->sizeAtMaximum = ad->sizeAtPreferred; + ad->updateChildrenSizes(); + } - // Delete the constraints, we won't use them anymore. - qDeleteAll(sizeHintConstraints); - sizeHintConstraints.clear(); + // Delete the constraints, we won't use them anymore. + qDeleteAll(sizeHintConstraints); + sizeHintConstraints.clear(); + } } + graphHasConflicts[orientation] = !feasible; // Clean up our data structures. They are not needed anymore since // distribution uses just interpolation. @@ -2061,47 +2152,48 @@ void QGraphicsAnchorLayoutPrivate::interpolateSequentialEdges( interpolateEdge(prev, data->m_edges.last(), orientation); } -QPair<qreal, qreal> -QGraphicsAnchorLayoutPrivate::solveMinMax(QList<QSimplexConstraint *> constraints, - GraphPath path) +bool QGraphicsAnchorLayoutPrivate::solveMinMax(QList<QSimplexConstraint *> constraints, + GraphPath path, qreal *min, qreal *max) { QSimplex simplex; - simplex.setConstraints(constraints); - - // Obtain the objective constraint - QSimplexConstraint objective; - QSet<AnchorData *>::const_iterator iter; - for (iter = path.positives.constBegin(); iter != path.positives.constEnd(); ++iter) - objective.variables.insert(*iter, 1.0); - - for (iter = path.negatives.constBegin(); iter != path.negatives.constEnd(); ++iter) - objective.variables.insert(*iter, -1.0); - - simplex.setObjective(&objective); - - // Calculate minimum values - qreal min = simplex.solveMin(); - - // Save sizeAtMinimum results - QList<QSimplexVariable *> variables = simplex.constraintsVariables(); - for (int i = 0; i < variables.size(); ++i) { - AnchorData *ad = static_cast<AnchorData *>(variables[i]); - ad->sizeAtMinimum = ad->result; - } + bool feasible = simplex.setConstraints(constraints); + if (feasible) { + // Obtain the objective constraint + QSimplexConstraint objective; + QSet<AnchorData *>::const_iterator iter; + for (iter = path.positives.constBegin(); iter != path.positives.constEnd(); ++iter) + objective.variables.insert(*iter, 1.0); + + for (iter = path.negatives.constBegin(); iter != path.negatives.constEnd(); ++iter) + objective.variables.insert(*iter, -1.0); + + simplex.setObjective(&objective); + + // Calculate minimum values + *min = simplex.solveMin(); + + // Save sizeAtMinimum results + QList<QSimplexVariable *> variables = simplex.constraintsVariables(); + for (int i = 0; i < variables.size(); ++i) { + AnchorData *ad = static_cast<AnchorData *>(variables[i]); + Q_ASSERT(ad->result >= ad->minSize || qFuzzyCompare(ad->result, ad->minSize)); + ad->sizeAtMinimum = ad->result; + } - // Calculate maximum values - qreal max = simplex.solveMax(); + // Calculate maximum values + *max = simplex.solveMax(); - // Save sizeAtMaximum results - for (int i = 0; i < variables.size(); ++i) { - AnchorData *ad = static_cast<AnchorData *>(variables[i]); - ad->sizeAtMaximum = ad->result; + // Save sizeAtMaximum results + for (int i = 0; i < variables.size(); ++i) { + AnchorData *ad = static_cast<AnchorData *>(variables[i]); + Q_ASSERT(ad->result <= ad->maxSize || qFuzzyCompare(ad->result, ad->maxSize)); + ad->sizeAtMaximum = ad->result; + } } - - return qMakePair<qreal, qreal>(min, max); + return feasible; } -void QGraphicsAnchorLayoutPrivate::solvePreferred(QList<QSimplexConstraint *> constraints) +bool QGraphicsAnchorLayoutPrivate::solvePreferred(QList<QSimplexConstraint *> constraints) { QList<AnchorData *> variables = getVariables(constraints); QList<QSimplexConstraint *> preferredConstraints; @@ -2148,25 +2240,35 @@ void QGraphicsAnchorLayoutPrivate::solvePreferred(QList<QSimplexConstraint *> co QSimplex *simplex = new QSimplex; - simplex->setConstraints(constraints + preferredConstraints); - simplex->setObjective(&objective); + bool feasible = simplex->setConstraints(constraints + preferredConstraints); + if (feasible) { + simplex->setObjective(&objective); - // Calculate minimum values - simplex->solveMin(); + // Calculate minimum values + simplex->solveMin(); - // Save sizeAtPreferred results - for (int i = 0; i < variables.size(); ++i) { - AnchorData *ad = static_cast<AnchorData *>(variables[i]); - ad->sizeAtPreferred = ad->result; - } - - // Make sure we delete the simplex solver -before- we delete the - // constraints used by it. - delete simplex; + // Save sizeAtPreferred results + for (int i = 0; i < variables.size(); ++i) { + AnchorData *ad = static_cast<AnchorData *>(variables[i]); + ad->sizeAtPreferred = ad->result; + } + // Make sure we delete the simplex solver -before- we delete the + // constraints used by it. + delete simplex; + } // Delete constraints and variables we created. qDeleteAll(preferredConstraints); qDeleteAll(preferredVariables); + + return feasible; +} + +bool QGraphicsAnchorLayoutPrivate::hasConflicts() const +{ + QGraphicsAnchorLayoutPrivate *that = const_cast<QGraphicsAnchorLayoutPrivate*>(this); + that->calculateGraphs(); + return graphHasConflicts[0] || graphHasConflicts[1]; } #ifdef QT_DEBUG diff --git a/src/gui/graphicsview/qgraphicsanchorlayout_p.h b/src/gui/graphicsview/qgraphicsanchorlayout_p.h index f701c3f..4e1bcd4 100644 --- a/src/gui/graphicsview/qgraphicsanchorlayout_p.h +++ b/src/gui/graphicsview/qgraphicsanchorlayout_p.h @@ -403,15 +403,15 @@ public: return data->graphicsAnchor; } - // helper function used by the 4 API functions - QGraphicsAnchor *anchor(QGraphicsLayoutItem *firstItem, + // function used by the 4 API functions + QGraphicsAnchor *addAnchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge, QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge, qreal *spacing = 0); - // Anchor Manipulation methods - void addAnchor(QGraphicsLayoutItem *firstItem, + // Helper for Anchor Manipulation methods + void addAnchor_helper(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge, QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge, @@ -420,12 +420,8 @@ public: QGraphicsAnchor *getAnchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge, QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge); - void removeAnchor(QGraphicsLayoutItem *firstItem, - Qt::AnchorPoint firstEdge, - QGraphicsLayoutItem *secondItem, - Qt::AnchorPoint secondEdge); + void removeAnchor(AnchorVertex *firstVertex, AnchorVertex *secondVertex); void removeAnchor_helper(AnchorVertex *v1, AnchorVertex *v2); - void deleteAnchorData(AnchorData *data); void setAnchorSize(AnchorData *data, const qreal *anchorSize); void anchorSize(const AnchorData *data, qreal *minSize = 0, @@ -482,9 +478,10 @@ public: Orientation orientation); // Linear Programming solver methods - QPair<qreal, qreal> solveMinMax(QList<QSimplexConstraint *> constraints, - GraphPath path); - void solvePreferred(QList<QSimplexConstraint *> constraints); + bool solveMinMax(QList<QSimplexConstraint *> constraints, + GraphPath path, qreal *min, qreal *max); + bool solvePreferred(QList<QSimplexConstraint *> constraints); + bool hasConflicts() const; #ifdef QT_DEBUG void dumpGraph(); @@ -518,6 +515,7 @@ public: // ### bool graphSimplified[2]; + bool graphHasConflicts[2]; uint calculateGraphCacheDirty : 1; }; diff --git a/src/gui/graphicsview/qsimplex_p.cpp b/src/gui/graphicsview/qsimplex_p.cpp index 3bd6b5a..e3a991e 100644 --- a/src/gui/graphicsview/qsimplex_p.cpp +++ b/src/gui/graphicsview/qsimplex_p.cpp @@ -84,12 +84,12 @@ void QSimplex::clearDataStructures() objective = 0; } -void QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints) +bool QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints) { clearDataStructures(); if (newConstraints.isEmpty()) - return; + return true; // we are ok with no constraints constraints = newConstraints; // Set Variables direct mapping @@ -153,7 +153,7 @@ void QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints) matrix = (qreal *)malloc(sizeof(qreal) * columns * rows); if (!matrix) { qWarning() << "QSimplex: Unable to allocate memory!"; - return; + return false; } for (int i = columns * rows - 1; i >= 0; --i) matrix[i] = 0.0; @@ -198,11 +198,12 @@ void QSimplex::setConstraints(const QList<QSimplexConstraint *> newConstraints) if (valueAt(0, columns - 1) != 0.0) { qWarning() << "QSimplex: No feasible solution!"; clearDataStructures(); - return; + return false; } // Remove artificial variables clearColumns(firstArtificial, columns - 2); + return true; } void QSimplex::solveMaxHelper() diff --git a/src/gui/graphicsview/qsimplex_p.h b/src/gui/graphicsview/qsimplex_p.h index 805ef4a..54b080d 100644 --- a/src/gui/graphicsview/qsimplex_p.h +++ b/src/gui/graphicsview/qsimplex_p.h @@ -107,7 +107,7 @@ public: qreal solveMax(); QList<QSimplexVariable *> constraintsVariables(); - void setConstraints(const QList<QSimplexConstraint *> constraints); + bool setConstraints(const QList<QSimplexConstraint *> constraints); void setObjective(QSimplexConstraint *objective); void dumpMatrix(); diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index 9d977a5..757ded9 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -69,6 +69,7 @@ QAbstractItemViewPrivate::QAbstractItemViewPrivate() : model(QAbstractItemModelPrivate::staticEmptyModel()), itemDelegate(0), selectionModel(0), + ctrlDragSelectionFlag(QItemSelectionModel::NoUpdate), selectionMode(QAbstractItemView::ExtendedSelection), selectionBehavior(QAbstractItemView::SelectItems), currentlyCommittingEditor(0), @@ -1589,6 +1590,11 @@ void QAbstractItemView::mousePressEvent(QMouseEvent *event) d->selectionModel->setCurrentIndex(index, QItemSelectionModel::NoUpdate); d->autoScroll = autoScroll; QRect rect(d->pressedPosition - offset, pos); + if (command.testFlag(QItemSelectionModel::Toggle)) { + command &= ~QItemSelectionModel::Toggle; + d->ctrlDragSelectionFlag = d->selectionModel->isSelected(index) ? QItemSelectionModel::Deselect : QItemSelectionModel::Select; + command |= d->ctrlDragSelectionFlag; + } setSelection(rect, command); // signal handlers may change the model @@ -1659,6 +1665,10 @@ void QAbstractItemView::mouseMoveEvent(QMouseEvent *event) if ((event->buttons() & Qt::LeftButton) && d->selectionAllowed(index) && d->selectionModel) { setState(DragSelectingState); QItemSelectionModel::SelectionFlags command = selectionCommand(index, event); + if (command.testFlag(QItemSelectionModel::Toggle)) { + command &= ~QItemSelectionModel::Toggle; + command |= d->ctrlDragSelectionFlag; + } // Do the normalize ourselves, since QRect::normalized() is flawed QRect selectionRect = QRect(topLeft, bottomRight); @@ -1699,6 +1709,8 @@ void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event) EditTrigger trigger = (selectedClicked ? SelectedClicked : NoEditTriggers); bool edited = edit(index, trigger, event); + d->ctrlDragSelectionFlag = QItemSelectionModel::NoUpdate; + //in the case the user presses on no item we might decide to clear the selection if (d->selectionModel && !index.isValid()) d->selectionModel->select(QModelIndex(), selectionCommand(index, event)); diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h index 725d0a9..6b1ec8e 100644 --- a/src/gui/itemviews/qabstractitemview_p.h +++ b/src/gui/itemviews/qabstractitemview_p.h @@ -342,6 +342,7 @@ public: QMap<int, QPointer<QAbstractItemDelegate> > rowDelegates; QMap<int, QPointer<QAbstractItemDelegate> > columnDelegates; QPointer<QItemSelectionModel> selectionModel; + QItemSelectionModel::SelectionFlag ctrlDragSelectionFlag; QAbstractItemView::SelectionMode selectionMode; QAbstractItemView::SelectionBehavior selectionBehavior; diff --git a/src/gui/itemviews/qtableview.cpp b/src/gui/itemviews/qtableview.cpp index 684da3f..f1ffaa6 100644 --- a/src/gui/itemviews/qtableview.cpp +++ b/src/gui/itemviews/qtableview.cpp @@ -2519,9 +2519,21 @@ void QTableViewPrivate::selectRow(int row, bool anchor) QModelIndex index = model->index(row, column, root); QItemSelectionModel::SelectionFlags command = q->selectionCommand(index); selectionModel->setCurrentIndex(index, QItemSelectionModel::NoUpdate); - if ((!(command & QItemSelectionModel::Current) && anchor) + if ((anchor && !(command & QItemSelectionModel::Current)) || (q->selectionMode() == QTableView::SingleSelection)) rowSectionAnchor = row; + + if (q->selectionMode() != QTableView::SingleSelection + && command.testFlag(QItemSelectionModel::Toggle)) { + if (anchor) + ctrlDragSelectionFlag = verticalHeader->selectionModel()->selectedRows().contains(index) + ? QItemSelectionModel::Deselect : QItemSelectionModel::Select; + command &= ~QItemSelectionModel::Toggle; + command |= ctrlDragSelectionFlag; + if (!anchor) + command |= QItemSelectionModel::Current; + } + QModelIndex tl = model->index(qMin(rowSectionAnchor, row), 0, root); QModelIndex br = model->index(qMax(rowSectionAnchor, row), model->columnCount(root) - 1, root); if (verticalHeader->sectionsMoved() && tl.row() != br.row()) @@ -2545,9 +2557,21 @@ void QTableViewPrivate::selectColumn(int column, bool anchor) QModelIndex index = model->index(row, column, root); QItemSelectionModel::SelectionFlags command = q->selectionCommand(index); selectionModel->setCurrentIndex(index, QItemSelectionModel::NoUpdate); - if ((!(command & QItemSelectionModel::Current) && anchor) + if ((anchor && !(command & QItemSelectionModel::Current)) || (q->selectionMode() == QTableView::SingleSelection)) columnSectionAnchor = column; + + if (q->selectionMode() != QTableView::SingleSelection + && command.testFlag(QItemSelectionModel::Toggle)) { + if (anchor) + ctrlDragSelectionFlag = horizontalHeader->selectionModel()->selectedColumns().contains(index) + ? QItemSelectionModel::Deselect : QItemSelectionModel::Select; + command &= ~QItemSelectionModel::Toggle; + command |= ctrlDragSelectionFlag; + if (!anchor) + command |= QItemSelectionModel::Current; + } + QModelIndex tl = model->index(0, qMin(columnSectionAnchor, column), root); QModelIndex br = model->index(model->rowCount(root) - 1, qMax(columnSectionAnchor, column), root); diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index fd889fc..6a381f5 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -439,7 +439,7 @@ void QSymbianControl::HandlePointerEvent(const TPointerEvent& pEvent) } } S60->lastCursorPos = globalPos; -#ifndef Q_SYMBIAN_FIXED_POINTER_CURSORS +#if !defined(QT_NO_CURSOR) && !defined(Q_SYMBIAN_FIXED_POINTER_CURSORS) if (S60->brokenPointerCursors) qt_symbian_move_cursor_sprite(); #endif @@ -855,7 +855,6 @@ void qt_init(QApplicationPrivate * /* priv */, int) //Check if mouse interaction is supported (either EMouse=1 in the HAL, or EMachineUID is one of the phones known to support this) const TInt KMachineUidSamsungI8510 = 0x2000C51E; - const TInt KMachineUidSamsungI550 = 0x2000A678; TInt machineUID; TInt mouse; TInt touch; @@ -888,6 +887,7 @@ void qt_init(QApplicationPrivate * /* priv */, int) QApplicationPrivate::navigationMode = Qt::NavigationModeKeypadDirectional; } +#ifndef QT_NO_CURSOR //Check if window server pointer cursors are supported or not #ifndef Q_SYMBIAN_FIXED_POINTER_CURSORS //In generic binary, use the HAL and OS version @@ -912,6 +912,7 @@ void qt_init(QApplicationPrivate * /* priv */, int) #endif S60->wsSession().SetPointerCursorMode(EPointerCursorNormal); } +#endif /* ### Commented out for now as parameter handling not needed in SOS(yet). Code below will break testlib with -o flag @@ -1275,7 +1276,7 @@ int QApplication::s60ProcessEvent(TWsEvent *event) } break; case EEventFocusGained: - RDebug::Printf("focus gained %x", control); +#ifndef QT_NO_CURSOR //re-enable mouse interaction if (S60->mouseInteractionEnabled) { #ifndef Q_SYMBIAN_FIXED_POINTER_CURSORS @@ -1285,9 +1286,10 @@ int QApplication::s60ProcessEvent(TWsEvent *event) #endif S60->wsSession().SetPointerCursorMode(EPointerCursorNormal); } +#endif break; case EEventFocusLost: - RDebug::Printf("focus lost %x", control); +#ifndef QT_NO_CURSOR //disable mouse as may be moving to application that does not support it if (S60->mouseInteractionEnabled) { #ifndef Q_SYMBIAN_FIXED_POINTER_CURSORS @@ -1297,6 +1299,7 @@ int QApplication::s60ProcessEvent(TWsEvent *event) #endif S60->wsSession().SetPointerCursorMode(EPointerCursorNone); } +#endif break; default: break; @@ -1534,7 +1537,9 @@ void QApplication::restoreOverrideCursor() QListIterator<WId> iter(QWidgetPrivate::mapper->uniqueKeys()); while (iter.hasNext()) { CCoeControl *ctrl = iter.next(); - ctrl->DrawableWindow()->ClearPointerCursor(); + if(ctrl->OwnsWindow()) { + ctrl->DrawableWindow()->ClearPointerCursor(); + } } if (w) qt_symbian_setWindowCursor(w->cursor(), w->effectiveWinId()); diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index 6ecd535..2b1aaf5 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -220,7 +220,7 @@ static void resolveAygLibs() # define FE_FONTSMOOTHINGCLEARTYPE 0x0002 #endif -Q_GUI_EXPORT bool qt_cleartype_enabled; +bool qt_cleartype_enabled; Q_GUI_EXPORT bool qt_win_owndc_required; // CS_OWNDC is required if we use the GL graphicssystem as default typedef HCTX (API *PtrWTOpen)(HWND, LPLOGCONTEXT, BOOL); diff --git a/src/gui/kernel/qcursor_s60.cpp b/src/gui/kernel/qcursor_s60.cpp index 757eaa8..0d8283d 100644 --- a/src/gui/kernel/qcursor_s60.cpp +++ b/src/gui/kernel/qcursor_s60.cpp @@ -52,8 +52,10 @@ QT_BEGIN_NAMESPACE +#ifndef QT_NO_CURSOR static QCursor cursorSprite; -static int cursorSpriteVisible; +static int cursorSpriteVisible; +#endif //pos and setpos are required whether cursors are configured or not. QPoint QCursor::pos() @@ -520,8 +522,10 @@ void qt_symbian_setGlobalCursor(const QCursor &cursor) while(iter.hasNext()) { CCoeControl *ctrl = iter.next(); - RWindowTreeNode *node = ctrl->DrawableWindow(); - qt_symbian_setWindowGroupCursor(cursor, *node); + if(ctrl->OwnsWindow()) { + RWindowTreeNode *node = ctrl->DrawableWindow(); + qt_symbian_setWindowGroupCursor(cursor, *node); + } } } } diff --git a/src/gui/kernel/qdnd_s60.cpp b/src/gui/kernel/qdnd_s60.cpp index 2456185..3d6ecd2 100644 --- a/src/gui/kernel/qdnd_s60.cpp +++ b/src/gui/kernel/qdnd_s60.cpp @@ -214,11 +214,13 @@ bool QDragManager::eventFilter(QObject *o, QEvent *e) case QEvent::MouseButtonRelease: { qApp->removeEventFilter(this); +#ifndef QT_NO_CURSOR if (restoreCursor) { QApplication::restoreOverrideCursor(); willDrop = false; restoreCursor = false; } +#endif if (object && object->target()) { QMouseEvent *me = (QMouseEvent *)e; @@ -267,7 +269,9 @@ Qt::DropAction QDragManager::drag(QDrag *o) updatePixmap(); updateCursor(); +#ifndef QT_NO_CURSOR qt_symbian_set_cursor_visible(true); //force cursor on even for touch phone +#endif object->d_func()->target = 0; @@ -282,10 +286,12 @@ Qt::DropAction QDragManager::drag(QDrag *o) delete eventLoop; eventLoop = 0; +#ifndef QT_NO_CURSOR qt_symbian_set_cursor_visible(false); overrideCursor = QCursor(); //deref the cursor data qt_symbian_dnd_dragging = false; +#endif return global_accepted_action; } @@ -306,10 +312,12 @@ void QDragManager::cancel(bool deleteSource) drag_object = object = 0; } +#ifndef QT_NO_CURSOR if (restoreCursor) { QApplication::restoreOverrideCursor(); restoreCursor = false; } +#endif global_accepted_action = Qt::IgnoreAction; } @@ -317,10 +325,12 @@ void QDragManager::cancel(bool deleteSource) void QDragManager::drop() { +#ifndef QT_NO_CURSOR if (restoreCursor) { QApplication::restoreOverrideCursor(); restoreCursor = false; } +#endif } QVariant QDropData::retrieveData_sys(const QString &mimetype, QVariant::Type type) const diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index 794d15a..67084c4 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -304,11 +304,13 @@ static inline QImage::Format qt_TDisplayMode2Format(TDisplayMode mode) return format; } +#ifndef QT_NO_CURSOR void qt_symbian_setWindowCursor(const QCursor &cursor, const CCoeControl* wid); void qt_symbian_setWindowGroupCursor(const QCursor &cursor, RWindowTreeNode &node); void qt_symbian_setGlobalCursor(const QCursor &cursor); void qt_symbian_set_cursor_visible(bool visible); bool qt_symbian_is_cursor_visible(); +#endif QT_END_NAMESPACE diff --git a/src/gui/kernel/qtooltip.cpp b/src/gui/kernel/qtooltip.cpp index a480195..2d0d209 100644 --- a/src/gui/kernel/qtooltip.cpp +++ b/src/gui/kernel/qtooltip.cpp @@ -290,8 +290,8 @@ void QTipLabel::timerEvent(QTimerEvent *e) // Fade out tip on mac (makes it invisible). // The tip will not be deleted until a new tip is shown. - // DRSWAT - Cocoa - macWindowFade(qt_mac_window_for(this)); + // DRSWAT - Cocoa + macWindowFade(qt_mac_window_for(this)); QTipLabel::instance->fadingOut = true; // will never be false again. } else @@ -431,7 +431,7 @@ bool QTipLabel::tipChanged(const QPoint &pos, const QString &text, QObject *o) void QToolTip::showText(const QPoint &pos, const QString &text, QWidget *w, const QRect &rect) { - if (QTipLabel::instance){ // a tip does already exist + if (QTipLabel::instance && QTipLabel::instance->isVisible()){ // a tip does already exist if (text.isEmpty()){ // empty text means hide current tip QTipLabel::instance->hideTip(); return; diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 522ce33..3744377 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -1222,8 +1222,9 @@ void QWidget::releaseMouse() WId id = effectiveWinId(); id->SetPointerCapture(false); QWidgetPrivate::mouseGrabber = 0; - +#ifndef QT_NO_CURSOR QApplication::restoreOverrideCursor(); +#endif } } diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri index 5abac2f..8343cb9 100644 --- a/src/gui/painting/painting.pri +++ b/src/gui/painting/painting.pri @@ -22,6 +22,7 @@ HEADERS += \ painting/qpainter_p.h \ painting/qpainterpath.h \ painting/qpainterpath_p.h \ + painting/qvectorpath_p.h \ painting/qpathclipper_p.h \ painting/qpdf_p.h \ painting/qpen.h \ diff --git a/src/gui/text/qfontdatabase_mac.cpp b/src/gui/text/qfontdatabase_mac.cpp index d65910c..2584003 100644 --- a/src/gui/text/qfontdatabase_mac.cpp +++ b/src/gui/text/qfontdatabase_mac.cpp @@ -308,6 +308,21 @@ void QFontDatabase::load(const QFontPrivate *d, int script) if (familyRef) { fontRef = ATSFontFindFromName(QCFString(db->families[k]->name), kATSOptionFlagsDefault); goto FamilyFound; + } else { +#if defined(QT_MAC_USE_COCOA) + // ATS and CT disagrees on what the family name should be, + // use CT to look up the font if ATS fails. + QCFString familyName = QString::fromAscii(family_name); + QCFType<CTFontRef> CTfontRef = CTFontCreateWithName(familyName, 12, NULL); + QCFType<CTFontDescriptorRef> fontDescriptor = CTFontCopyFontDescriptor(CTfontRef); + QCFString displayName = (CFStringRef)CTFontDescriptorCopyAttribute(fontDescriptor, kCTFontDisplayNameAttribute); + + familyRef = ATSFontFamilyFindFromName(displayName, kATSOptionFlagsDefault); + if (familyRef) { + fontRef = ATSFontFindFromName(displayName, kATSOptionFlagsDefault); + goto FamilyFound; + } +#endif } } } @@ -456,11 +471,27 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) return; fnt->families.clear(); +#if defined(QT_MAC_USE_COCOA) + // Make sure that the family name set on the font matches what + // kCTFontFamilyNameAttribute returns in initializeDb(). + // So far the best solution seems find the installed font + // using CoreText and get the family name from it. + // (ATSFontFamilyGetName appears to be the correct API, but also + // returns the font display name.) + for(int i = 0; i < containedFonts.size(); ++i) { + QCFString fontPostScriptName; + ATSFontGetPostScriptName(containedFonts[i], kATSOptionFlagsDefault, &fontPostScriptName); + QCFType<CTFontDescriptorRef> font = CTFontDescriptorCreateWithNameAndSize(fontPostScriptName, 14); + QCFString familyName = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontFamilyNameAttribute); + fnt->families.append(familyName); + } +#else for(int i = 0; i < containedFonts.size(); ++i) { QCFString family; ATSFontGetName(containedFonts[i], kATSOptionFlagsDefault, &family); fnt->families.append(family); } +#endif fnt->handle = handle; } diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index 8dd01d7..e5a88fc 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -946,48 +946,60 @@ const uchar *QFontEngine::getCMap(const uchar *table, uint tableSize, bool *isSy if (maps + 8 * numTables > endPtr) return 0; + enum { + Invalid, + Symbol, + AppleRoman, + Unicode11, + Unicode, + MicrosoftUnicode, + MicrosoftUnicodeExtended + }; + + int symbolTable = -1; int tableToUse = -1; - int score = 0; + int score = Invalid; for (int n = 0; n < numTables; ++n) { const quint16 platformId = qFromBigEndian<quint16>(maps + 8 * n); const quint16 platformSpecificId = qFromBigEndian<quint16>(maps + 8 * n + 2); switch (platformId) { case 0: // Unicode - if (score < 4 && + if (score < Unicode && (platformSpecificId == 0 || platformSpecificId == 2 || platformSpecificId == 3)) { tableToUse = n; - score = 4; - } else if (score < 3 && platformSpecificId == 1) { + score = Unicode; + } else if (score < Unicode11 && platformSpecificId == 1) { tableToUse = n; - score = 3; + score = Unicode11; } break; case 1: // Apple - if (score < 2 && platformSpecificId == 0) { // Apple Roman + if (score < AppleRoman && platformSpecificId == 0) { // Apple Roman tableToUse = n; - score = 2; + score = AppleRoman; } break; case 3: // Microsoft switch (platformSpecificId) { case 0: - if (score < 1) { + symbolTable = n; + if (score < Symbol) { tableToUse = n; - score = 1; + score = Symbol; } break; case 1: - if (score < 5) { + if (score < MicrosoftUnicode) { tableToUse = n; - score = 5; + score = MicrosoftUnicode; } break; case 0xa: - if (score < 6) { + if (score < MicrosoftUnicodeExtended) { tableToUse = n; - score = 6; + score = MicrosoftUnicodeExtended; } break; default: @@ -999,7 +1011,9 @@ const uchar *QFontEngine::getCMap(const uchar *table, uint tableSize, bool *isSy } if(tableToUse < 0) return 0; - *isSymbolFont = (score == 1); + +resolveTable: + *isSymbolFont = (score == Symbol); unsigned int unicode_table = qFromBigEndian<quint32>(maps + 8*tableToUse + 4); @@ -1019,6 +1033,41 @@ const uchar *QFontEngine::getCMap(const uchar *table, uint tableSize, bool *isSy if (table + unicode_table + length > endPtr) return 0; *cmapSize = length; + + // To support symbol fonts that contain a unicode table for the symbol area + // we check the cmap tables and fall back to symbol font unless that would + // involve losing information from the unicode table + if (symbolTable > -1 && ((score == Unicode) || (score == Unicode11))) { + const uchar *selectedTable = table + unicode_table; + + // Check that none of the latin1 range are in the unicode table + bool unicodeTableHasLatin1 = false; + for (int uc=0x00; uc<0x100; ++uc) { + if (getTrueTypeGlyphIndex(selectedTable, uc) != 0) { + unicodeTableHasLatin1 = true; + break; + } + } + + // Check that at least one symbol char is in the unicode table + bool unicodeTableHasSymbols = false; + if (!unicodeTableHasLatin1) { + for (int uc=0xf000; uc<0xf100; ++uc) { + if (getTrueTypeGlyphIndex(selectedTable, uc) != 0) { + unicodeTableHasSymbols = true; + break; + } + } + } + + // Fall back to symbol table + if (!unicodeTableHasLatin1 && unicodeTableHasSymbols) { + tableToUse = symbolTable; + score = Symbol; + goto resolveTable; + } + } + return table + unicode_table; } diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp index eceed06..b3458af 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp +++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp @@ -134,8 +134,7 @@ QGLEngineSharedShaders::QGLEngineSharedShaders(const QGLContext* context) code[ShockingPinkSrcFragmentShader] = qglslShockingPinkSrcFragmentShader; code[MaskFragmentShader] = qglslMaskFragmentShader; - code[RgbMaskFragmentShaderPass1] = qglslRgbMaskFragmentShaderPass1; - code[RgbMaskFragmentShaderPass2] = qglslRgbMaskFragmentShaderPass2; + code[RgbMaskFragmentShader] = ""; //### code[RgbMaskWithGammaFragmentShader] = ""; //### code[MultiplyCompositionModeFragmentShader] = ""; //### @@ -588,15 +587,10 @@ bool QGLEngineShaderManager::useCorrectShaderProg() if (maskType == PixelMask) { maskShaderName = QGLEngineSharedShaders::MaskFragmentShader; texCoords = true; - } else if (maskType == SubPixelMaskPass1) { - maskShaderName = QGLEngineSharedShaders::RgbMaskFragmentShaderPass1; - texCoords = true; - } else if (maskType == SubPixelMaskPass2) { - maskShaderName = QGLEngineSharedShaders::RgbMaskFragmentShaderPass2; - texCoords = true; + } else if (maskType == SubPixelMask) { + maskShaderName = QGLEngineSharedShaders::RgbMaskFragmentShader; } else if (maskType == SubPixelWithGammaMask) { maskShaderName = QGLEngineSharedShaders::RgbMaskWithGammaFragmentShader; - texCoords = true; } else { qCritical("QGLEngineShaderManager::useCorrectShaderProg() - Unknown mask type"); } diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h index 47d9a2a..3c5a5f5 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadermanager_p.h @@ -142,8 +142,7 @@ Masks are implementations of "qcolorp vec4 applyMask(qcolorp vec4 src)": qglslMaskFragmentShader - qglslRgbMaskFragmentShaderPass1 - qglslRgbMaskFragmentShaderPass2 + qglslRgbMaskFragmentShader qglslRgbMaskWithGammaFragmentShader Composition modes are "qcolorp vec4 compose(qcolorp vec4 src)": @@ -322,8 +321,7 @@ public: ShockingPinkSrcFragmentShader, MaskFragmentShader, - RgbMaskFragmentShaderPass1, - RgbMaskFragmentShaderPass2, + RgbMaskFragmentShader, RgbMaskWithGammaFragmentShader, MultiplyCompositionModeFragmentShader, @@ -378,7 +376,7 @@ public: QGLEngineShaderManager(QGLContext* context); ~QGLEngineShaderManager(); - enum MaskType {NoMask, PixelMask, SubPixelMaskPass1, SubPixelMaskPass2, SubPixelWithGammaMask}; + enum MaskType {NoMask, PixelMask, SubPixelMask, SubPixelWithGammaMask}; enum PixelSrcType { ImageSrc = Qt::TexturePattern+1, NonPremultipliedImageSrc = Qt::TexturePattern+2, diff --git a/src/opengl/gl2paintengineex/qglengineshadersource_p.h b/src/opengl/gl2paintengineex/qglengineshadersource_p.h index 8ae86d3..6bcf010 100644 --- a/src/opengl/gl2paintengineex/qglengineshadersource_p.h +++ b/src/opengl/gl2paintengineex/qglengineshadersource_p.h @@ -401,39 +401,6 @@ static const char* const qglslMaskFragmentShader = "\ return src * mask.a; \ }"; -// For source over with subpixel antialiasing, the final color is calculated per component as follows -// (.a is alpha component, .c is red, green or blue component): -// alpha = src.a * mask.c * opacity -// dest.c = dest.c * (1 - alpha) + src.c * alpha -// -// In the first pass, calculate: dest.c = dest.c * (1 - alpha) with blend funcs: zero, 1 - source color -// In the second pass, calculate: dest.c = dest.c + src.c * alpha with blend funcs: one, one -// -// If source is a solid color (src is constant), only the first pass is needed, with blend funcs: constant, 1 - source color - -// For source composition with subpixel antialiasing, the final color is calculated per component as follows: -// alpha = src.a * mask.c * opacity -// dest.c = dest.c * (1 - mask.c) + src.c * alpha -// - -static const char* const qglslRgbMaskFragmentShaderPass1 = "\ - varying highp vec2 textureCoords;\ - uniform lowp sampler2D maskTexture;\ - lowp vec4 applyMask(lowp vec4 src) \ - {\ - lowp vec4 mask = texture2D(maskTexture, textureCoords); \ - return src.a * mask; \ - }"; - -static const char* const qglslRgbMaskFragmentShaderPass2 = "\ - varying highp vec2 textureCoords;\ - uniform lowp sampler2D maskTexture;\ - lowp vec4 applyMask(lowp vec4 src) \ - {\ - lowp vec4 mask = texture2D(maskTexture, textureCoords); \ - return src * mask; \ - }"; - /* Left to implement: RgbMaskFragmentShader, diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 20bbc1e..837d055 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -90,10 +90,6 @@ static const GLuint QT_IMAGE_TEXTURE_UNIT = 0; //Can be the same as brush static const GLuint QT_MASK_TEXTURE_UNIT = 1; static const GLuint QT_BACKGROUND_TEXTURE_UNIT = 2; -#ifdef Q_WS_WIN -extern Q_GUI_EXPORT bool qt_cleartype_enabled; -#endif - class QGLTextureGlyphCache : public QObject, public QTextureGlyphCache { Q_OBJECT @@ -104,7 +100,6 @@ public: virtual void createTextureData(int width, int height); virtual void resizeTextureData(int width, int height); virtual void fillTexture(const Coord &c, glyph_t glyph); - virtual int glyphMargin() const; inline GLuint texture() const { return m_texture; } @@ -295,7 +290,7 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph) glBindTexture(GL_TEXTURE_2D, m_texture); if (mask.format() == QImage::Format_RGB32) { - glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_BGRA, GL_UNSIGNED_BYTE, mask.bits()); + glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, m_height - c.y, maskWidth, maskHeight, GL_BGRA, GL_UNSIGNED_BYTE, mask.bits()); } else { #ifdef QT_OPENGL_ES2 glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_ALPHA, GL_UNSIGNED_BYTE, mask.bits()); @@ -315,15 +310,6 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph) } } -int QGLTextureGlyphCache::glyphMargin() const -{ -#ifdef Q_WS_MAC - return 2; -#else - return m_type == QFontEngineGlyphCache::Raster_RGBMask ? 2 : 0; -#endif -} - extern QImage qt_imageForBrush(int brushStyle, bool invert); ////////////////////////////////// Private Methods ////////////////////////////////////////// @@ -1210,12 +1196,6 @@ void QGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &textItem if (ti.fontEngine->fontDef.pixelSize * qSqrt(s->matrix.determinant()) >= 64) drawCached = false; - if (d->glyphCacheType == QFontEngineGlyphCache::Raster_RGBMask - && state()->composition_mode != QPainter::CompositionMode_Source - && state()->composition_mode != QPainter::CompositionMode_SourceOver) { - drawCached = false; - } - if (drawCached) { d->drawCachedGlyphs(p, ti); return; @@ -1236,7 +1216,7 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(const QPointF &p, const QTextIte QFontEngineGlyphCache::Type glyphType = ti.fontEngine->glyphFormat >= 0 ? QFontEngineGlyphCache::Type(ti.fontEngine->glyphFormat) - : glyphCacheType; + : QFontEngineGlyphCache::Raster_A8; QGLTextureGlyphCache *cache = (QGLTextureGlyphCache *) ti.fontEngine->glyphCache(ctx, s->matrix); @@ -1255,6 +1235,12 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(const QPointF &p, const QTextIte transferMode(BrushDrawingMode); transferMode(TextDrawingMode); + if (glyphType == QFontEngineGlyphCache::Raster_A8) + shaderManager->setMaskType(QGLEngineShaderManager::PixelMask); + else if (glyphType == QFontEngineGlyphCache::Raster_RGBMask) + shaderManager->setMaskType(QGLEngineShaderManager::SubPixelMask); + //### TODO: Gamma correction + int margin = cache->glyphMargin(); GLfloat dx = 1.0 / cache->width(); @@ -1275,96 +1261,10 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(const QPointF &p, const QTextIte textureCoordinateArray.addRect(QRectF(c.x*dx, c.y*dy, c.w * dx, c.h * dy)); } - if (vertexCoordinateArray.data() != oldVertexCoordinateDataPtr) - glVertexAttribPointer(QT_VERTEX_COORDS_ATTR, 2, GL_FLOAT, GL_FALSE, 0, vertexCoordinateArray.data()); - if (textureCoordinateArray.data() != oldTextureCoordinateDataPtr) - glVertexAttribPointer(QT_TEXTURE_COORDS_ATTR, 2, GL_FLOAT, GL_FALSE, 0, textureCoordinateArray.data()); - QBrush pensBrush = q->state()->pen.brush(); setBrush(&pensBrush); - if (glyphType == QFontEngineGlyphCache::Raster_A8) { - - // Greyscale antialiasing - - shaderManager->setMaskType(QGLEngineShaderManager::PixelMask); - prepareForDraw(false); // Text always causes src pixels to be transparent - } else if (glyphType == QFontEngineGlyphCache::Raster_RGBMask) { - - // Subpixel antialiasing without gamma correction - - QPainter::CompositionMode compMode = q->state()->composition_mode; - Q_ASSERT(compMode == QPainter::CompositionMode_Source - || compMode == QPainter::CompositionMode_SourceOver); - - shaderManager->setMaskType(QGLEngineShaderManager::SubPixelMaskPass1); - - if (pensBrush.style() == Qt::SolidPattern) { - // Solid patterns can get away with only one pass. - QColor c = pensBrush.color(); - qreal oldOpacity = q->state()->opacity; - if (compMode == QPainter::CompositionMode_Source) { - c = premultiplyColor(c, q->state()->opacity); - q->state()->opacity = 1; - opacityUniformDirty = true; - } - - compositionModeDirty = false; // I can handle this myself, thank you very much - prepareForDraw(false); // Text always causes src pixels to be transparent - - // prepareForDraw() have set the opacity on the current shader, so the opacity state can now be reset. - if (compMode == QPainter::CompositionMode_Source) { - q->state()->opacity = oldOpacity; - opacityUniformDirty = true; - } - - glEnable(GL_BLEND); - glBlendFunc(GL_CONSTANT_COLOR, GL_ONE_MINUS_SRC_COLOR); - glBlendColor(c.redF(), c.greenF(), c.blueF(), c.alphaF()); - } else { - // Other brush styles need two passes. - - qreal oldOpacity = q->state()->opacity; - if (compMode == QPainter::CompositionMode_Source) { - q->state()->opacity = 1; - opacityUniformDirty = true; - pensBrush = Qt::white; - setBrush(&pensBrush); - } - - compositionModeDirty = false; // I can handle this myself, thank you very much - prepareForDraw(false); // Text always causes src pixels to be transparent - glEnable(GL_BLEND); - glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_COLOR); - - glActiveTexture(GL_TEXTURE0 + QT_MASK_TEXTURE_UNIT); - glBindTexture(GL_TEXTURE_2D, cache->texture()); - updateTextureFilter(GL_TEXTURE_2D, GL_REPEAT, false); - -#ifndef QT_OPENGL_ES_2 - if (inRenderText) - shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::Depth), zValueForRenderText()); -#endif - shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::MaskTexture), QT_MASK_TEXTURE_UNIT); - glDrawArrays(GL_TRIANGLES, 0, 6 * glyphs.size()); - - shaderManager->setMaskType(QGLEngineShaderManager::SubPixelMaskPass2); - - if (compMode == QPainter::CompositionMode_Source) { - q->state()->opacity = oldOpacity; - opacityUniformDirty = true; - pensBrush = q->state()->pen.brush(); - setBrush(&pensBrush); - } - - compositionModeDirty = false; - prepareForDraw(false); // Text always causes src pixels to be transparent - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE); - } - compositionModeDirty = true; - } - //### TODO: Gamma correction + prepareForDraw(false); // Text always causes src pixels to be transparent glActiveTexture(GL_TEXTURE0 + QT_MASK_TEXTURE_UNIT); glBindTexture(GL_TEXTURE_2D, cache->texture()); @@ -1374,7 +1274,14 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(const QPointF &p, const QTextIte if (inRenderText) shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::Depth), zValueForRenderText()); #endif + shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::MaskTexture), QT_MASK_TEXTURE_UNIT); + + if (vertexCoordinateArray.data() != oldVertexCoordinateDataPtr) + glVertexAttribPointer(QT_VERTEX_COORDS_ATTR, 2, GL_FLOAT, GL_FALSE, 0, vertexCoordinateArray.data()); + if (textureCoordinateArray.data() != oldTextureCoordinateDataPtr) + glVertexAttribPointer(QT_TEXTURE_COORDS_ATTR, 2, GL_FLOAT, GL_FALSE, 0, textureCoordinateArray.data()); + glDrawArrays(GL_TRIANGLES, 0, 6 * glyphs.size()); } @@ -1433,17 +1340,6 @@ bool QGL2PaintEngineEx::begin(QPaintDevice *pdev) glDisable(GL_MULTISAMPLE); #endif - if (d->device->format().alpha() -#if defined(Q_WS_WIN) - || !qt_cleartype_enabled -#endif - ) { - d->glyphCacheType = QFontEngineGlyphCache::Raster_A8; - } else { - d->glyphCacheType = QFontEngineGlyphCache::Raster_RGBMask; - } - - d->systemStateChanged(); return true; } diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index 8b09f41..a44be90 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -60,7 +60,6 @@ #include <private/qgl2pexvertexarray_p.h> #include <private/qglpaintdevice_p.h> #include <private/qglpixmapfilter_p.h> -#include <private/qfontengine_p.h> enum EngineMode { ImageDrawingMode, @@ -206,7 +205,6 @@ public: int width, height; QGLContext *ctx; EngineMode mode; - QFontEngineGlyphCache::Type glyphCacheType; mutable QOpenGL2PaintEngineState *last_created_state; diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 1a0957c..fe676ea 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -2560,8 +2560,6 @@ static void qDrawTextureRect(const QRectF &target, GLint textureWidth, GLint tex Draws the given texture, \a textureId, to the given target rectangle, \a target, in OpenGL model space. The \a textureTarget should be a 2D texture target. - - Equivalent to the corresponding QGLContext::drawTexture(). */ void QGLContext::drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget) { @@ -2603,8 +2601,6 @@ void QGLContext::drawTexture(const QRectF &target, QMacCompatGLuint textureId, Q Draws the given texture at the given \a point in OpenGL model space. The \a textureTarget should be a 2D texture target. - - Equivalent to the corresponding QGLContext::drawTexture(). */ void QGLContext::drawTexture(const QPointF &point, GLuint textureId, GLenum textureTarget) { diff --git a/src/opengl/qglextensions.cpp b/src/opengl/qglextensions.cpp index c785d8a..3699d62 100644 --- a/src/opengl/qglextensions.cpp +++ b/src/opengl/qglextensions.cpp @@ -391,9 +391,8 @@ bool qt_resolve_version_2_0_functions(QGLContext *ctx) if (glStencilOpSeparate) return gl2supported; - glBlendColor = (_glBlendColor) ctx->getProcAddress(QLatin1String("glBlendColor")); glStencilOpSeparate = (_glStencilOpSeparate) ctx->getProcAddress(QLatin1String("glStencilOpSeparate")); - if (!glBlendColor || !glStencilOpSeparate) + if (!glStencilOpSeparate) gl2supported = false; return gl2supported; diff --git a/src/opengl/qglextensions_p.h b/src/opengl/qglextensions_p.h index 3510765..40840b5 100644 --- a/src/opengl/qglextensions_p.h +++ b/src/opengl/qglextensions_p.h @@ -152,7 +152,6 @@ typedef void (APIENTRY *_glActiveStencilFaceEXT) (GLenum ); // Needed for GL2 engine: typedef void (APIENTRY *_glStencilOpSeparate) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (APIENTRY *_glActiveTexture) (GLenum); -typedef void (APIENTRY *_glBlendColor) (GLclampf, GLclampf, GLclampf, GLclampf); // EXT_GL_framebuffer_object @@ -248,7 +247,6 @@ struct QGLExtensionFuncs // Extras for GL2 engine: qt_glActiveTexture = 0; qt_glStencilOpSeparate = 0; - qt_glBlendColor = 0; qt_glActiveStencilFaceEXT = 0; qt_glMultiTexCoord4f = 0; @@ -362,8 +360,6 @@ struct QGLExtensionFuncs // Extras needed for GL2 engine: _glActiveTexture qt_glActiveTexture; _glStencilOpSeparate qt_glStencilOpSeparate; - _glBlendColor qt_glBlendColor; - #endif // FBOs @@ -578,10 +574,6 @@ struct QGLExtensionFuncs #endif #ifndef GL_VERSION_1_4 -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 #endif @@ -725,7 +717,6 @@ struct QGLExtensionFuncs #if !defined(QT_OPENGL_ES_2) #define glStencilOpSeparate QGLContextPrivate::extensionFuncs(ctx).qt_glStencilOpSeparate -#define glBlendColor QGLContextPrivate::extensionFuncs(ctx).qt_glBlendColor #endif #if defined(QT_OPENGL_ES_2) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp index b5c4cc5..ce9a55c 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpixmap.cpp @@ -250,19 +250,6 @@ bool QDirectFBPixmapData::fromDataBufferDescription(const DFBDataBufferDescripti return false; } - QDirectFBPointer<IDirectFBSurface> surfaceFromDescription; - surfaceFromDescription.reset(screen->createDFBSurface(surfaceDescription, QDirectFBScreen::DontTrackSurface, &result)); - if (!surfaceFromDescription) { - DirectFBError("QDirectFBPixmapData::fromSurfaceDescription(): Can't create surface", result); - return false; - } - - result = provider->RenderTo(provider.data(), surfaceFromDescription.data(), 0); - if (result != DFB_OK) { - DirectFBError("QDirectFBPixmapData::fromSurfaceDescription(): Can't render to surface", result); - return false; - } - DFBImageDescription imageDescription; result = provider->GetImageDescription(provider.data(), &imageDescription); if (result != DFB_OK) { @@ -275,51 +262,19 @@ bool QDirectFBPixmapData::fromDataBufferDescription(const DFBDataBufferDescripti dfbSurface = screen->createDFBSurface(QSize(surfaceDescription.width, surfaceDescription.height), imageFormat, QDirectFBScreen::TrackSurface); - if (alpha) - dfbSurface->Clear(dfbSurface, 0, 0, 0, 0); - - DFBSurfaceBlittingFlags blittingFlags = DSBLIT_NOFX; - if (imageDescription.caps & DICAPS_COLORKEY) { - blittingFlags |= DSBLIT_SRC_COLORKEY; - result = surfaceFromDescription->SetSrcColorKey(surfaceFromDescription.data(), - imageDescription.colorkey_r, - imageDescription.colorkey_g, - imageDescription.colorkey_b); - if (result != DFB_OK) { - DirectFBError("QDirectFBPixmapData::fromSurfaceDescription: Can't set src color key", result); - invalidate(); // release dfbSurface - return false; - } - } - if (imageDescription.caps & DICAPS_ALPHACHANNEL) { - blittingFlags |= DSBLIT_BLEND_ALPHACHANNEL; - } - result = dfbSurface->SetBlittingFlags(dfbSurface, blittingFlags); - if (result != DFB_OK) { - DirectFBError("QDirectFBPixmapData::fromSurfaceDescription: Can't set blitting flags", result); - invalidate(); // release dfbSurface - return false; - } - result = dfbSurface->Blit(dfbSurface, surfaceFromDescription.data(), 0, 0, 0); + result = provider->RenderTo(provider.data(), dfbSurface, 0); if (result != DFB_OK) { - DirectFBError("QDirectFBPixmapData::fromSurfaceDescription: Can't blit to surface", result); - invalidate(); // release dfbSurface + DirectFBError("QDirectFBPixmapData::fromSurfaceDescription(): Can't render to surface", result); return false; } - if (blittingFlags != DSBLIT_NOFX) { - dfbSurface->SetBlittingFlags(dfbSurface, DSBLIT_NOFX); - } - w = surfaceDescription.width; h = surfaceDescription.height; is_null = (w <= 0 || h <= 0); d = QDirectFBScreen::depth(imageFormat); setSerialNumber(++global_ser_no); -#if (Q_DIRECTFB_VERSION >= 0x010000) - dfbSurface->ReleaseSource(dfbSurface); -#endif + #if defined QT_DIRECTFB_IMAGEPROVIDER_KEEPALIVE screen->setDirectFBImageProvider(providerPtr); provider.take(); diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h index febb2b2..5e8c5c6 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h +++ b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h @@ -75,8 +75,8 @@ QT_MODULE(Gui) #if !defined QT_DIRECTFB_WINDOW_AS_CURSOR && !defined QT_NO_DIRECTFB_WINDOW_AS_CURSOR #define QT_NO_DIRECTFB_WINDOW_AS_CURSOR #endif -#if !defined QT_NO_DIRECTFB_PALETTE && !defined QT_DIRECTFB_PALETTE -#define QT_DIRECTFB_PALETTE +#if !defined QT_DIRECTFB_PALETTE && !defined QT_NO_DIRECTFB_PALETTE +#define QT_NO_DIRECTFB_PALETTE #endif #if !defined QT_NO_DIRECTFB_PREALLOCATED && !defined QT_DIRECTFB_PREALLOCATED #define QT_DIRECTFB_PREALLOCATED diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 0ef2f8c..dc41f85 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -2066,7 +2066,7 @@ EXPORTS _ZNK13QFSFileEngine12isSequentialEv @ 2065 NONAME _ZNK13QFSFileEngine13caseSensitiveEv @ 2066 NONAME _ZNK13QFSFileEngine14isRelativePathEv @ 2067 NONAME - _ZNK13QFSFileEngine15fileNameSymbianEN19QAbstractFileEngine8FileNameE @ 2068 NONAME + _ZNK13QFSFileEngine15fileNameSymbianEN19QAbstractFileEngine8FileNameE @ 2068 NONAME ABSENT _ZNK13QFSFileEngine17supportsExtensionEN19QAbstractFileEngine9ExtensionE @ 2069 NONAME _ZNK13QFSFileEngine3posEv @ 2070 NONAME _ZNK13QFSFileEngine4sizeEv @ 2071 NONAME @@ -3723,4 +3723,101 @@ EXPORTS _ZNK19QProcessEnvironment8containsERK7QString @ 3722 NONAME _ZNK19QProcessEnvironmenteqERKS_ @ 3723 NONAME _ZNK8QProcess18processEnvironmentEv @ 3724 NONAME + _Z20qt_symbianLocaleNamei @ 3725 NONAME + _ZN10QByteArray6insertEiPKci @ 3726 NONAME + _ZN10QByteArray7prependEPKci @ 3727 NONAME + _ZN10QEventLoop19getStaticMetaObjectEv @ 3728 NONAME + _ZN11QFinalState19getStaticMetaObjectEv @ 3729 NONAME + _ZN11QThreadPool19getStaticMetaObjectEv @ 3730 NONAME + _ZN11QTranslator19getStaticMetaObjectEv @ 3731 NONAME + _ZN12QEasingCurve19getStaticMetaObjectEv @ 3732 NONAME + _ZN13QHistoryState19getStaticMetaObjectEv @ 3733 NONAME + _ZN13QPluginLoader19getStaticMetaObjectEv @ 3734 NONAME + _ZN13QSharedMemory19getStaticMetaObjectEv @ 3735 NONAME + _ZN13QSignalMapper19getStaticMetaObjectEv @ 3736 NONAME + _ZN13QStateMachine19getStaticMetaObjectEv @ 3737 NONAME + _ZN14QAbstractState19getStaticMetaObjectEv @ 3738 NONAME + _ZN14QFactoryLoader19getStaticMetaObjectEv @ 3739 NONAME + _ZN14QTemporaryFile19getStaticMetaObjectEv @ 3740 NONAME + _ZN15QAnimationGroup19getStaticMetaObjectEv @ 3741 NONAME + _ZN15QPauseAnimation19getStaticMetaObjectEv @ 3742 NONAME + _ZN15QSocketNotifier19getStaticMetaObjectEv @ 3743 NONAME + _ZN16QCoreApplication19getStaticMetaObjectEv @ 3744 NONAME + _ZN16QEventTransition19getStaticMetaObjectEv @ 3745 NONAME + _ZN16QTextCodecPlugin19getStaticMetaObjectEv @ 3746 NONAME + _ZN17QSignalTransition19getStaticMetaObjectEv @ 3747 NONAME + _ZN17QVariantAnimation19getStaticMetaObjectEv @ 3748 NONAME + _ZN18QAbstractAnimation19getStaticMetaObjectEv @ 3749 NONAME + _ZN18QAbstractItemModel11endMoveRowsEv @ 3750 NONAME + _ZN18QAbstractItemModel12columnsMovedERK11QModelIndexiiS2_i @ 3751 NONAME + _ZN18QAbstractItemModel13beginMoveRowsERK11QModelIndexiiS2_i @ 3752 NONAME + _ZN18QAbstractItemModel13endResetModelEv @ 3753 NONAME + _ZN18QAbstractItemModel14endMoveColumnsEv @ 3754 NONAME + _ZN18QAbstractItemModel15beginResetModelEv @ 3755 NONAME + _ZN18QAbstractItemModel16beginMoveColumnsERK11QModelIndexiiS2_i @ 3756 NONAME + _ZN18QAbstractItemModel18rowsAboutToBeMovedERK11QModelIndexiiS2_i @ 3757 NONAME + _ZN18QAbstractItemModel19getStaticMetaObjectEv @ 3758 NONAME + _ZN18QAbstractItemModel21columnsAboutToBeMovedERK11QModelIndexiiS2_i @ 3759 NONAME + _ZN18QAbstractItemModel9rowsMovedERK11QModelIndexiiS2_i @ 3760 NONAME + _ZN18QAbstractListModel19getStaticMetaObjectEv @ 3761 NONAME + _ZN18QFileSystemWatcher19getStaticMetaObjectEv @ 3762 NONAME + _ZN18QPropertyAnimation19getStaticMetaObjectEv @ 3763 NONAME + _ZN19QAbstractTableModel19getStaticMetaObjectEv @ 3764 NONAME + _ZN19QAbstractTransition19getStaticMetaObjectEv @ 3765 NONAME + _ZN21QObjectCleanupHandler19getStaticMetaObjectEv @ 3766 NONAME + _ZN23QParallelAnimationGroup19getStaticMetaObjectEv @ 3767 NONAME + _ZN24QAbstractEventDispatcher19getStaticMetaObjectEv @ 3768 NONAME + _ZN24QNonContiguousByteDevice19getStaticMetaObjectEv @ 3769 NONAME + _ZN25QAbstractItemModelPrivate10itemsMovedERK11QModelIndexiiS2_iN2Qt11OrientationE @ 3770 NONAME + _ZN25QAbstractItemModelPrivate19itemsAboutToBeMovedERK11QModelIndexiiS2_iN2Qt11OrientationE @ 3771 NONAME + _ZN25QAbstractItemModelPrivate21movePersistentIndexesE7QVectorIP25QPersistentModelIndexDataEiRK11QModelIndexN2Qt11OrientationE @ 3772 NONAME + _ZN25QAbstractItemModelPrivate9allowMoveERK11QModelIndexiiS2_iN2Qt11OrientationE @ 3773 NONAME + _ZN25QSequentialAnimationGroup19getStaticMetaObjectEv @ 3774 NONAME + _ZN5QFile19getStaticMetaObjectEv @ 3775 NONAME + _ZN6QEvent19getStaticMetaObjectEv @ 3776 NONAME + _ZN6QState19getStaticMetaObjectEv @ 3777 NONAME + _ZN6QTimer19getStaticMetaObjectEv @ 3778 NONAME + _ZN7QBuffer19getStaticMetaObjectEv @ 3779 NONAME + _ZN7QLocale19getStaticMetaObjectEv @ 3780 NONAME + _ZN7QObject19getStaticMetaObjectEv @ 3781 NONAME + _ZN7QThread19getStaticMetaObjectEv @ 3782 NONAME + _ZN8QLibrary19getStaticMetaObjectEv @ 3783 NONAME + _ZN8QProcess19getStaticMetaObjectEv @ 3784 NONAME + _ZN9QIODevice19getStaticMetaObjectEv @ 3785 NONAME + _ZN9QListData7append2ERKS_ @ 3786 NONAME + _ZN9QListData7detach3Ev @ 3787 NONAME + _ZN9QMimeData19getStaticMetaObjectEv @ 3788 NONAME + _ZN9QSettings19getStaticMetaObjectEv @ 3789 NONAME + _ZN9QTimeLine19getStaticMetaObjectEv @ 3790 NONAME + _ZTI13QUnifiedTimer @ 3791 NONAME ; #<TI># + _ZTI14QProcessActive @ 3792 NONAME ; #<TI># + _ZTI18QNotifyChangeEvent @ 3793 NONAME ; #<TI># + _ZTI20QEasingCurveFunction @ 3794 NONAME ; #<TI># + _ZTI21QFactoryLoaderPrivate @ 3795 NONAME ; #<TI># + _ZTI21QSignalEventGenerator @ 3796 NONAME ; #<TI># + _ZTI22QAnimationGroupPrivate @ 3797 NONAME ; #<TI># + _ZTI23QProcessManagerMediator @ 3798 NONAME ; #<TI># + _ZTI24QSignalTransitionPrivate @ 3799 NONAME ; #<TI># + _ZTI27QByteDeviceWrappingIoDevice @ 3800 NONAME ; #<TI># + _ZTI32QSequentialAnimationGroupPrivate @ 3801 NONAME ; #<TI># + _ZTI34QNonContiguousByteDeviceBufferImpl @ 3802 NONAME ; #<TI># + _ZTI36QNonContiguousByteDeviceIoDeviceImpl @ 3803 NONAME ; #<TI># + _ZTI37QNonContiguousByteDeviceByteArrayImpl @ 3804 NONAME ; #<TI># + _ZTI38QNonContiguousByteDeviceRingBufferImpl @ 3805 NONAME ; #<TI># + _ZTV13QUnifiedTimer @ 3806 NONAME ; #<VT># + _ZTV14QProcessActive @ 3807 NONAME ; #<VT># + _ZTV18QNotifyChangeEvent @ 3808 NONAME ; #<VT># + _ZTV20QEasingCurveFunction @ 3809 NONAME ; #<VT># + _ZTV21QFactoryLoaderPrivate @ 3810 NONAME ; #<VT># + _ZTV21QSignalEventGenerator @ 3811 NONAME ; #<VT># + _ZTV22QAnimationGroupPrivate @ 3812 NONAME ; #<VT># + _ZTV23QProcessManagerMediator @ 3813 NONAME ; #<VT># + _ZTV24QSignalTransitionPrivate @ 3814 NONAME ; #<VT># + _ZTV27QByteDeviceWrappingIoDevice @ 3815 NONAME ; #<VT># + _ZTV32QSequentialAnimationGroupPrivate @ 3816 NONAME ; #<VT># + _ZTV34QNonContiguousByteDeviceBufferImpl @ 3817 NONAME ; #<VT># + _ZTV36QNonContiguousByteDeviceIoDeviceImpl @ 3818 NONAME ; #<VT># + _ZTV37QNonContiguousByteDeviceByteArrayImpl @ 3819 NONAME ; #<VT># + _ZTV38QNonContiguousByteDeviceRingBufferImpl @ 3820 NONAME ; #<VT># + _Zls6QDebugRK8QMargins @ 3821 NONAME diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 0019187..a605f6f 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -4195,7 +4195,7 @@ EXPORTS _ZN19QApplicationPrivate15graphics_systemE @ 4194 NONAME DATA 4 _ZN19QApplicationPrivate15process_cmdlineEv @ 4195 NONAME _ZN19QApplicationPrivate16isBlockedByModalEP7QWidget @ 4196 NONAME - _ZN19QApplicationPrivate16keypadNavigationE @ 4197 NONAME DATA 1 + _ZN19QApplicationPrivate16keypadNavigationE @ 4197 NONAME DATA 1 ABSENT _ZN19QApplicationPrivate16modifier_buttonsE @ 4198 NONAME DATA 4 _ZN19QApplicationPrivate16setSystemPaletteERK8QPalette @ 4199 NONAME _ZN19QApplicationPrivate17cursor_flash_timeE @ 4200 NONAME DATA 4 @@ -11925,12 +11925,12 @@ EXPORTS _ZN19QKeyEventTransitionD1Ev @ 11924 NONAME _ZN19QKeyEventTransitionD2Ev @ 11925 NONAME _ZN20QGraphicsItemPrivate11removeChildEP13QGraphicsItem @ 11926 NONAME - _ZN20QGraphicsItemPrivate11setSubFocusEv @ 11927 NONAME - _ZN20QGraphicsItemPrivate13clearSubFocusEv @ 11928 NONAME + _ZN20QGraphicsItemPrivate11setSubFocusEv @ 11927 NONAME ABSENT + _ZN20QGraphicsItemPrivate13clearSubFocusEv @ 11928 NONAME ABSENT _ZN20QGraphicsItemPrivate15resetFocusProxyEv @ 11929 NONAME _ZN20QGraphicsItemPrivate18setTransformHelperERK10QTransform @ 11930 NONAME _ZN20QGraphicsItemPrivate19setParentItemHelperEP13QGraphicsItem @ 11931 NONAME - _ZN20QGraphicsItemPrivate20ensureSceneTransformEv @ 11932 NONAME + _ZN20QGraphicsItemPrivate20ensureSceneTransformEv @ 11932 NONAME ABSENT _ZN20QGraphicsItemPrivate23appendGraphicsTransformEP18QGraphicsTransform @ 11933 NONAME _ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectF @ 11934 NONAME _ZN20QGraphicsItemPrivate29ensureSceneTransformRecursiveEPP13QGraphicsItem @ 11935 NONAME @@ -11988,7 +11988,7 @@ EXPORTS _ZN25QGraphicsSceneLinearIndex11qt_metacallEN11QMetaObject4CallEiPPv @ 11987 NONAME _ZN25QGraphicsSceneLinearIndex11qt_metacastEPKc @ 11988 NONAME _ZN25QGraphicsSceneLinearIndex16staticMetaObjectE @ 11989 NONAME DATA 16 - _ZN26QAbstractScrollAreaPrivate19_q_gestureTriggeredEv @ 11990 NONAME + _ZN26QAbstractScrollAreaPrivate19_q_gestureTriggeredEv @ 11990 NONAME ABSENT _ZN26QBasicMouseEventTransition11qt_metacallEN11QMetaObject4CallEiPPv @ 11991 NONAME _ZN26QBasicMouseEventTransition11qt_metacastEPKc @ 11992 NONAME _ZN26QBasicMouseEventTransition12onTransitionEP6QEvent @ 11993 NONAME @@ -12046,7 +12046,7 @@ EXPORTS _ZN8QGesture5resetEv @ 12045 NONAME _ZN8QGesture7startedEv @ 12046 NONAME _ZN8QGesture8finishedEv @ 12047 NONAME - _ZN8QGesture9cancelledEv @ 12048 NONAME + _ZN8QGesture8canceledEv @ 12048 NONAME _ZN8QGesture9triggeredEv @ 12049 NONAME _ZN8QGestureC2EP7QObject @ 12050 NONAME ABSENT _ZN8QGestureC2ER15QGesturePrivateP7QObject @ 12051 NONAME ABSENT @@ -12140,7 +12140,7 @@ EXPORTS _ZNK11QTouchEvent10TouchPoint9isPrimaryEv @ 12139 NONAME _ZNK11QTouchEvent10TouchPoint9sceneRectEv @ 12140 NONAME _ZNK11QTouchEvent10TouchPoint9screenPosEv @ 12141 NONAME - _ZNK11QVectorPath20convertToPainterPathEv @ 12142 NONAME + _ZNK11QVectorPath20convertToPainterPathEv @ 12142 NONAME ABSENT _ZNK12QLineControl10cursorRectEv @ 12143 NONAME _ZNK12QLineControl10findInMaskEibb5QChar @ 12144 NONAME _ZNK12QLineControl10maskStringEjRK7QStringb @ 12145 NONAME @@ -12364,11 +12364,11 @@ EXPORTS _ZN21QGraphicsAnchorLayout10invalidateEv @ 12363 NONAME _ZN21QGraphicsAnchorLayout10setSpacingEf @ 12364 NONAME _ZN21QGraphicsAnchorLayout11setGeometryERK6QRectF @ 12365 NONAME - _ZN21QGraphicsAnchorLayout12removeAnchorEP19QGraphicsLayoutItemN2Qt11AnchorPointES1_S3_ @ 12366 NONAME + _ZN21QGraphicsAnchorLayout12removeAnchorEP19QGraphicsLayoutItemN2Qt11AnchorPointES1_S3_ @ 12366 NONAME ABSENT _ZN21QGraphicsAnchorLayout16addCornerAnchorsEP19QGraphicsLayoutItemN2Qt6CornerES1_S3_ @ 12367 NONAME - _ZN21QGraphicsAnchorLayout16setAnchorSpacingEPK19QGraphicsLayoutItemN2Qt11AnchorPointES2_S4_f @ 12368 NONAME + _ZN21QGraphicsAnchorLayout16setAnchorSpacingEPK19QGraphicsLayoutItemN2Qt11AnchorPointES2_S4_f @ 12368 NONAME ABSENT _ZN21QGraphicsAnchorLayout18setVerticalSpacingEf @ 12369 NONAME - _ZN21QGraphicsAnchorLayout18unsetAnchorSpacingEPK19QGraphicsLayoutItemN2Qt11AnchorPointES2_S4_ @ 12370 NONAME + _ZN21QGraphicsAnchorLayout18unsetAnchorSpacingEPK19QGraphicsLayoutItemN2Qt11AnchorPointES2_S4_ @ 12370 NONAME ABSENT _ZN21QGraphicsAnchorLayout20setHorizontalSpacingEf @ 12371 NONAME _ZN21QGraphicsAnchorLayout8removeAtEi @ 12372 NONAME _ZN21QGraphicsAnchorLayout9addAnchorEP19QGraphicsLayoutItemN2Qt11AnchorPointES1_S3_ @ 12373 NONAME @@ -12461,7 +12461,7 @@ EXPORTS _ZNK20QGraphicsItemPrivate21effectiveBoundingRectEv @ 12460 NONAME _ZNK20QGraphicsItemPrivate26sceneEffectiveBoundingRectEv @ 12461 NONAME _ZNK20QGraphicsItemPrivate5depthEv @ 12462 NONAME - _ZNK21QGraphicsAnchorLayout13anchorSpacingEPK19QGraphicsLayoutItemN2Qt11AnchorPointES2_S4_ @ 12463 NONAME + _ZNK21QGraphicsAnchorLayout13anchorSpacingEPK19QGraphicsLayoutItemN2Qt11AnchorPointES2_S4_ @ 12463 NONAME ABSENT _ZNK21QGraphicsAnchorLayout15verticalSpacingEv @ 12464 NONAME _ZNK21QGraphicsAnchorLayout17horizontalSpacingEv @ 12465 NONAME _ZNK21QGraphicsAnchorLayout5countEv @ 12466 NONAME @@ -12510,4 +12510,434 @@ EXPORTS _ZTV23QGraphicsPixelizeEffect @ 12509 NONAME _ZTV24QGraphicsGrayscaleEffect @ 12510 NONAME _ZTV25QGraphicsDropShadowEffect @ 12511 NONAME + _ZN10QBoxLayout19getStaticMetaObjectEv @ 12512 NONAME + _ZN10QClipboard19getStaticMetaObjectEv @ 12513 NONAME + _ZN10QCompleter19getStaticMetaObjectEv @ 12514 NONAME + _ZN10QLCDNumber19getStaticMetaObjectEv @ 12515 NONAME + _ZN10QScrollBar19getStaticMetaObjectEv @ 12516 NONAME + _ZN10QStatusBar19getStaticMetaObjectEv @ 12517 NONAME + _ZN10QTabWidget19getStaticMetaObjectEv @ 12518 NONAME + _ZN10QTableView19getStaticMetaObjectEv @ 12519 NONAME + _ZN10QTextFrame19getStaticMetaObjectEv @ 12520 NONAME + _ZN10QTextTable19getStaticMetaObjectEv @ 12521 NONAME + _ZN10QUndoGroup19getStaticMetaObjectEv @ 12522 NONAME + _ZN10QUndoStack19getStaticMetaObjectEv @ 12523 NONAME + _ZN10QValidator19getStaticMetaObjectEv @ 12524 NONAME + _ZN10QWorkspace19getStaticMetaObjectEv @ 12525 NONAME + _ZN11QColumnView19getStaticMetaObjectEv @ 12526 NONAME + _ZN11QDockWidget19getStaticMetaObjectEv @ 12527 NONAME + _ZN11QFileDialog19getStaticMetaObjectEv @ 12528 NONAME + _ZN11QFocusFrame19getStaticMetaObjectEv @ 12529 NONAME + _ZN11QFontDialog19getStaticMetaObjectEv @ 12530 NONAME + _ZN11QFormLayout19getStaticMetaObjectEv @ 12531 NONAME + _ZN11QGridLayout19getStaticMetaObjectEv @ 12532 NONAME + _ZN11QHBoxLayout19getStaticMetaObjectEv @ 12533 NONAME + _ZN11QHeaderView19getStaticMetaObjectEv @ 12534 NONAME + _ZN11QListWidget19getStaticMetaObjectEv @ 12535 NONAME + _ZN11QMainWindow19getStaticMetaObjectEv @ 12536 NONAME + _ZN11QMessageBox19getStaticMetaObjectEv @ 12537 NONAME + _ZN11QPanGesture19getStaticMetaObjectEv @ 12538 NONAME + _ZN11QPixmapData8fromDataEPKhjPKc6QFlagsIN2Qt19ImageConversionFlagEE @ 12539 NONAME + _ZN11QProxyModel19getStaticMetaObjectEv @ 12540 NONAME + _ZN11QProxyStyle19getStaticMetaObjectEv @ 12541 NONAME + _ZN11QPushButton19getStaticMetaObjectEv @ 12542 NONAME + _ZN11QRubberBand19getStaticMetaObjectEv @ 12543 NONAME + _ZN11QScrollArea19getStaticMetaObjectEv @ 12544 NONAME + _ZN11QSizePolicy19getStaticMetaObjectEv @ 12545 NONAME + _ZN11QTextFormat19getStaticMetaObjectEv @ 12546 NONAME + _ZN11QTextObject19getStaticMetaObjectEv @ 12547 NONAME + _ZN11QToolButton19getStaticMetaObjectEv @ 12548 NONAME + _ZN11QTreeWidget19getStaticMetaObjectEv @ 12549 NONAME + _ZN11QVBoxLayout19getStaticMetaObjectEv @ 12550 NONAME + _ZN11QWizardPage19getStaticMetaObjectEv @ 12551 NONAME + _ZN12QActionGroup19getStaticMetaObjectEv @ 12552 NONAME + _ZN12QApplication14navigationModeEv @ 12553 NONAME + _ZN12QApplication14overrideCursorEv @ 12554 NONAME + _ZN12QApplication17setNavigationModeEN2Qt14NavigationModeE @ 12555 NONAME + _ZN12QApplication17setOverrideCursorERK7QCursor @ 12556 NONAME + _ZN12QApplication19getStaticMetaObjectEv @ 12557 NONAME + _ZN12QApplication20changeOverrideCursorERK7QCursor @ 12558 NONAME + _ZN12QApplication21restoreOverrideCursorEv @ 12559 NONAME + _ZN12QButtonGroup19getStaticMetaObjectEv @ 12560 NONAME + _ZN12QColorDialog19getStaticMetaObjectEv @ 12561 NONAME + _ZN12QCommonStyle19getStaticMetaObjectEv @ 12562 NONAME + _ZN12QImageReader26setDecideFormatFromContentEb @ 12563 NONAME + _ZN12QInputDialog19getStaticMetaObjectEv @ 12564 NONAME + _ZN12QLineControl19getStaticMetaObjectEv @ 12565 NONAME + _ZN12QPaintBuffer13beginNewFrameEv @ 12566 NONAME + _ZN12QPaintBuffer15setBoundingRectERK6QRectF @ 12567 NONAME + _ZN12QPaintBufferC1ERKS_ @ 12568 NONAME + _ZN12QPaintBufferC1Ev @ 12569 NONAME + _ZN12QPaintBufferC2ERKS_ @ 12570 NONAME + _ZN12QPaintBufferC2Ev @ 12571 NONAME + _ZN12QPaintBufferD0Ev @ 12572 NONAME + _ZN12QPaintBufferD1Ev @ 12573 NONAME + _ZN12QPaintBufferD2Ev @ 12574 NONAME + _ZN12QPaintBufferaSERKS_ @ 12575 NONAME + _ZN12QProgressBar19getStaticMetaObjectEv @ 12576 NONAME + _ZN12QRadioButton19getStaticMetaObjectEv @ 12577 NONAME + _ZN12QStylePlugin19getStaticMetaObjectEv @ 12578 NONAME + _ZN12QTableWidget19getStaticMetaObjectEv @ 12579 NONAME + _ZN12QTextBrowser19getStaticMetaObjectEv @ 12580 NONAME + _ZN12QTextControl19getStaticMetaObjectEv @ 12581 NONAME + _ZN13QDateTimeEdit19getStaticMetaObjectEv @ 12582 NONAME + _ZN13QErrorMessage19getStaticMetaObjectEv @ 12583 NONAME + _ZN13QFontComboBox19getStaticMetaObjectEv @ 12584 NONAME + _ZN13QFontDatabase19getStaticMetaObjectEv @ 12585 NONAME + _ZN13QGraphicsItem11unsetCursorEv @ 12586 NONAME + _ZN13QGraphicsItem9setActiveEb @ 12587 NONAME + _ZN13QGraphicsItem9setCursorERK7QCursor @ 12588 NONAME + _ZN13QGraphicsView19getStaticMetaObjectEv @ 12589 NONAME + _ZN13QInputContext19getStaticMetaObjectEv @ 12590 NONAME + _ZN13QIntValidator19getStaticMetaObjectEv @ 12591 NONAME + _ZN13QItemDelegate19getStaticMetaObjectEv @ 12592 NONAME + _ZN13QMdiSubWindow19getStaticMetaObjectEv @ 12593 NONAME + _ZN13QPinchGesture19getStaticMetaObjectEv @ 12594 NONAME + _ZN13QPixmapFilter19getStaticMetaObjectEv @ 12595 NONAME + _ZN13QSplashScreen19getStaticMetaObjectEv @ 12596 NONAME + _ZN13QSwipeGesture11eventFilterEP7QObjectP6QEvent @ 12597 NONAME + _ZN13QSwipeGesture11filterEventEP6QEvent @ 12598 NONAME + _ZN13QSwipeGesture11qt_metacallEN11QMetaObject4CallEiPPv @ 12599 NONAME + _ZN13QSwipeGesture11qt_metacastEPKc @ 12600 NONAME + _ZN13QSwipeGesture16staticMetaObjectE @ 12601 NONAME DATA 16 + _ZN13QSwipeGesture19getStaticMetaObjectEv @ 12602 NONAME + _ZN13QSwipeGesture5resetEv @ 12603 NONAME + _ZN13QSwipeGestureC1EP7QWidgetP7QObject @ 12604 NONAME + _ZN13QSwipeGestureC2EP7QWidgetP7QObject @ 12605 NONAME + _ZN13QTextDocument19getStaticMetaObjectEv @ 12606 NONAME + _ZN13QWidgetAction19getStaticMetaObjectEv @ 12607 NONAME + _ZN13QWindowsStyle19getStaticMetaObjectEv @ 12608 NONAME + _ZN14QDesktopWidget19getStaticMetaObjectEv @ 12609 NONAME + _ZN14QDoubleSpinBox19getStaticMetaObjectEv @ 12610 NONAME + _ZN14QGraphicsScale19getStaticMetaObjectEv @ 12611 NONAME + _ZN14QGraphicsScene14setActivePanelEP13QGraphicsItem @ 12612 NONAME + _ZN14QGraphicsScene19getStaticMetaObjectEv @ 12613 NONAME + _ZN14QImageIOPlugin19getStaticMetaObjectEv @ 12614 NONAME + _ZN14QPlainTextEdit19getStaticMetaObjectEv @ 12615 NONAME + _ZN14QStackedLayout19getStaticMetaObjectEv @ 12616 NONAME + _ZN14QStackedWidget19getStaticMetaObjectEv @ 12617 NONAME + _ZN14QWidgetPrivate13setCursor_sysERK7QCursor @ 12618 NONAME + _ZN14QWidgetPrivate15unsetCursor_sysEv @ 12619 NONAME + _ZN15QAbstractButton19getStaticMetaObjectEv @ 12620 NONAME + _ZN15QAbstractSlider19getStaticMetaObjectEv @ 12621 NONAME + _ZN15QCalendarWidget19getStaticMetaObjectEv @ 12622 NONAME + _ZN15QColumnViewGrip19getStaticMetaObjectEv @ 12623 NONAME + _ZN15QGraphicsAnchor10setSpacingEf @ 12624 NONAME + _ZN15QGraphicsAnchor11qt_metacallEN11QMetaObject4CallEiPPv @ 12625 NONAME + _ZN15QGraphicsAnchor11qt_metacastEPKc @ 12626 NONAME + _ZN15QGraphicsAnchor12unsetSpacingEv @ 12627 NONAME + _ZN15QGraphicsAnchor16staticMetaObjectE @ 12628 NONAME DATA 16 + _ZN15QGraphicsAnchor19getStaticMetaObjectEv @ 12629 NONAME + _ZN15QGraphicsAnchorC1EP21QGraphicsAnchorLayout @ 12630 NONAME + _ZN15QGraphicsAnchorC2EP21QGraphicsAnchorLayout @ 12631 NONAME + _ZN15QGraphicsAnchorD0Ev @ 12632 NONAME + _ZN15QGraphicsAnchorD1Ev @ 12633 NONAME + _ZN15QGraphicsAnchorD2Ev @ 12634 NONAME + _ZN15QGraphicsEffect19getStaticMetaObjectEv @ 12635 NONAME + _ZN15QGraphicsEffect6updateEv @ 12636 NONAME + _ZN15QGraphicsObject19getStaticMetaObjectEv @ 12637 NONAME + _ZN15QGraphicsWidget19getStaticMetaObjectEv @ 12638 NONAME + _ZN15QProgressDialog19getStaticMetaObjectEv @ 12639 NONAME + _ZN15QSessionManager19getStaticMetaObjectEv @ 12640 NONAME + _ZN15QSplitterHandle19getStaticMetaObjectEv @ 12641 NONAME + _ZN15QTextBlockGroup19getStaticMetaObjectEv @ 12642 NONAME + _ZN16QAbstractSpinBox19getStaticMetaObjectEv @ 12643 NONAME + _ZN16QDialogButtonBox19getStaticMetaObjectEv @ 12644 NONAME + _ZN16QDoubleValidator19getStaticMetaObjectEv @ 12645 NONAME + _ZN16QFileSystemModel19getStaticMetaObjectEv @ 12646 NONAME + _ZN16QPainterReplayer14setupTransformEP8QPainter @ 12647 NONAME + _ZN16QPainterReplayer4drawERK12QPaintBufferP8QPainteri @ 12648 NONAME + _ZN16QPainterReplayer7processERK19QPaintBufferCommand @ 12649 NONAME + _ZN16QRegExpValidator19getStaticMetaObjectEv @ 12650 NONAME + _ZN16QStringListModel19getStaticMetaObjectEv @ 12651 NONAME + _ZN16QStyleSheetStyle19getStaticMetaObjectEv @ 12652 NONAME + _ZN17QAbstractItemView19getStaticMetaObjectEv @ 12653 NONAME + _ZN17QDataWidgetMapper19getStaticMetaObjectEv @ 12654 NONAME + _ZN17QDockWidgetLayout19getStaticMetaObjectEv @ 12655 NONAME + _ZN17QFileInfoGatherer19getStaticMetaObjectEv @ 12656 NONAME + _ZN17QGraphicsRotation19getStaticMetaObjectEv @ 12657 NONAME + _ZN17QGraphicsTextItem19getStaticMetaObjectEv @ 12658 NONAME + _ZN17QIconEnginePlugin19getStaticMetaObjectEv @ 12659 NONAME + _ZN17QMainWindowLayout19getStaticMetaObjectEv @ 12660 NONAME + _ZN17QPixmapBlurFilter19getStaticMetaObjectEv @ 12661 NONAME + _ZN18QCommandLinkButton19getStaticMetaObjectEv @ 12662 NONAME + _ZN18QGraphicsTransform19getStaticMetaObjectEv @ 12663 NONAME + _ZN18QStandardItemModel19getStaticMetaObjectEv @ 12664 NONAME + _ZN18QSyntaxHighlighter19getStaticMetaObjectEv @ 12665 NONAME + _ZN19QAbstractProxyModel19getStaticMetaObjectEv @ 12666 NONAME + _ZN19QAbstractScrollArea19getStaticMetaObjectEv @ 12667 NONAME + _ZN19QApplicationPrivate14navigationModeE @ 12668 NONAME DATA 4 + _ZN19QApplicationPrivate17setNavigationModeEN2Qt14NavigationModeE @ 12669 NONAME + _ZN19QCoeFepInputContext19getStaticMetaObjectEv @ 12670 NONAME + _ZN19QEventDispatcherS6019getStaticMetaObjectEv @ 12671 NONAME + _ZN19QGraphicsBlurEffect19getStaticMetaObjectEv @ 12672 NONAME + _ZN19QGraphicsSceneIndex19getStaticMetaObjectEv @ 12673 NONAME + _ZN19QIconEnginePluginV219getStaticMetaObjectEv @ 12674 NONAME + _ZN19QInputContextPlugin19getStaticMetaObjectEv @ 12675 NONAME + _ZN19QItemSelectionModel19getStaticMetaObjectEv @ 12676 NONAME + _ZN19QKeyEventTransition19getStaticMetaObjectEv @ 12677 NONAME + _ZN19QStyledItemDelegate19getStaticMetaObjectEv @ 12678 NONAME + _ZN19QTextDocumentLayout19getStaticMetaObjectEv @ 12679 NONAME + _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItem @ 12680 NONAME + _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItem @ 12681 NONAME + _ZN20QGraphicsItemPrivate14setFocusHelperEN2Qt11FocusReasonEb @ 12682 NONAME + _ZN20QGraphicsItemPrivate18subFocusItemChangeEv @ 12683 NONAME + _ZN20QGraphicsProxyWidget19getStaticMetaObjectEv @ 12684 NONAME + _ZN20QGraphicsViewPrivate20_q_setViewportCursorERK7QCursor @ 12685 NONAME + _ZN20QGraphicsViewPrivate22_q_unsetViewportCursorEv @ 12686 NONAME + _ZN20QPaintBufferResource11qt_metacallEN11QMetaObject4CallEiPPv @ 12687 NONAME + _ZN20QPaintBufferResource11qt_metacastEPKc @ 12688 NONAME + _ZN20QPaintBufferResource16staticMetaObjectE @ 12689 NONAME DATA 16 + _ZN20QPaintBufferResource19getStaticMetaObjectEv @ 12690 NONAME + _ZN20QPaintBufferResource5valueEPK19QPaintBufferPrivate @ 12691 NONAME + _ZN20QPaintBufferResource6insertEPK19QPaintBufferPrivatePv @ 12692 NONAME + _ZN20QPaintBufferResource6removeEPK19QPaintBufferPrivate @ 12693 NONAME + _ZN20QPaintBufferResourceC1EPFvPvEP7QObject @ 12694 NONAME + _ZN20QPaintBufferResourceC2EPFvPvEP7QObject @ 12695 NONAME + _ZN20QPaintBufferResourceD0Ev @ 12696 NONAME + _ZN20QPaintBufferResourceD1Ev @ 12697 NONAME + _ZN20QPaintBufferResourceD2Ev @ 12698 NONAME + _ZN20QPictureFormatPlugin19getStaticMetaObjectEv @ 12699 NONAME + _ZN20QWidgetResizeHandler19getStaticMetaObjectEv @ 12700 NONAME + _ZN21QAbstractItemDelegate19getStaticMetaObjectEv @ 12701 NONAME + _ZN21QGraphicsAnchorLayout10addAnchorsEP19QGraphicsLayoutItemS1_6QFlagsIN2Qt11OrientationEE @ 12702 NONAME + _ZN21QGraphicsAnchorLayout6anchorEP19QGraphicsLayoutItemN2Qt11AnchorPointES1_S3_ @ 12703 NONAME + _ZN21QGraphicsEffectSource19getStaticMetaObjectEv @ 12704 NONAME + _ZN21QGraphicsSystemPlugin19getStaticMetaObjectEv @ 12705 NONAME + _ZN21QMouseEventTransition19getStaticMetaObjectEv @ 12706 NONAME + _ZN21QPixmapColorizeFilter11setStrengthEf @ 12707 NONAME + _ZN21QPixmapColorizeFilter19getStaticMetaObjectEv @ 12708 NONAME + _ZN21QSortFilterProxyModel19getStaticMetaObjectEv @ 12709 NONAME + _ZN22QGraphicsItemAnimation19getStaticMetaObjectEv @ 12710 NONAME + _ZN22QGraphicsOpacityEffect10setOpacityEf @ 12711 NONAME + _ZN22QGraphicsOpacityEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 12712 NONAME + _ZN22QGraphicsOpacityEffect11qt_metacastEPKc @ 12713 NONAME + _ZN22QGraphicsOpacityEffect14opacityChangedEf @ 12714 NONAME + _ZN22QGraphicsOpacityEffect14setOpacityMaskERK6QBrush @ 12715 NONAME + _ZN22QGraphicsOpacityEffect16staticMetaObjectE @ 12716 NONAME DATA 16 + _ZN22QGraphicsOpacityEffect18opacityMaskChangedERK6QBrush @ 12717 NONAME + _ZN22QGraphicsOpacityEffect19getStaticMetaObjectEv @ 12718 NONAME + _ZN22QGraphicsOpacityEffect4drawEP8QPainterP21QGraphicsEffectSource @ 12719 NONAME + _ZN22QGraphicsOpacityEffectC1EP7QObject @ 12720 NONAME + _ZN22QGraphicsOpacityEffectC2EP7QObject @ 12721 NONAME + _ZN22QGraphicsOpacityEffectD0Ev @ 12722 NONAME + _ZN22QGraphicsOpacityEffectD1Ev @ 12723 NONAME + _ZN22QGraphicsOpacityEffectD2Ev @ 12724 NONAME + _ZN22QPaintEngineExReplayer7processERK19QPaintBufferCommand @ 12725 NONAME + _ZN23QGraphicsColorizeEffect11setStrengthEf @ 12726 NONAME + _ZN23QGraphicsColorizeEffect15strengthChangedEf @ 12727 NONAME + _ZN23QGraphicsColorizeEffect19getStaticMetaObjectEv @ 12728 NONAME + _ZN23QGraphicsPixelizeEffect19getStaticMetaObjectEv @ 12729 NONAME + _ZN23QPaintBufferSignalProxy11qt_metacallEN11QMetaObject4CallEiPPv @ 12730 NONAME + _ZN23QPaintBufferSignalProxy11qt_metacastEPKc @ 12731 NONAME + _ZN23QPaintBufferSignalProxy14aboutToDestroyEPK19QPaintBufferPrivate @ 12732 NONAME + _ZN23QPaintBufferSignalProxy16staticMetaObjectE @ 12733 NONAME DATA 16 + _ZN23QPaintBufferSignalProxy19getStaticMetaObjectEv @ 12734 NONAME + _ZN23QPaintBufferSignalProxy8instanceEv @ 12735 NONAME + _ZN23QPixmapDropShadowFilter19getStaticMetaObjectEv @ 12736 NONAME + _ZN24QBasicKeyEventTransition19getStaticMetaObjectEv @ 12737 NONAME + _ZN24QComboBoxPrivateScroller19getStaticMetaObjectEv @ 12738 NONAME + _ZN24QGraphicsGrayscaleEffect11setStrengthEf @ 12739 NONAME + _ZN24QGraphicsGrayscaleEffect15strengthChangedEf @ 12740 NONAME + _ZN24QGraphicsGrayscaleEffect19getStaticMetaObjectEv @ 12741 NONAME + _ZN24QPixmapConvolutionFilter19getStaticMetaObjectEv @ 12742 NONAME + _ZN24QPlainTextDocumentLayout19getStaticMetaObjectEv @ 12743 NONAME + _ZN25QComboBoxPrivateContainer19getStaticMetaObjectEv @ 12744 NONAME + _ZN25QGraphicsDropShadowEffect19getStaticMetaObjectEv @ 12745 NONAME + _ZN25QGraphicsSceneLinearIndex19getStaticMetaObjectEv @ 12746 NONAME + _ZN26QBasicMouseEventTransition19getStaticMetaObjectEv @ 12747 NONAME + _ZN26QGraphicsSceneBspTreeIndex19getStaticMetaObjectEv @ 12748 NONAME + _ZN27QAbstractTextDocumentLayout19getStaticMetaObjectEv @ 12749 NONAME + _ZN5QDial19getStaticMetaObjectEv @ 12750 NONAME + _ZN5QDrag19getStaticMetaObjectEv @ 12751 NONAME + _ZN5QFont19getStaticMetaObjectEv @ 12752 NONAME + _ZN5QMenu19getStaticMetaObjectEv @ 12753 NONAME + _ZN6QColor6setHslEiiii @ 12754 NONAME + _ZN6QColor7fromHslEiiii @ 12755 NONAME + _ZN6QColor7setHslFEffff @ 12756 NONAME + _ZN6QColor8fromHslFEffff @ 12757 NONAME + _ZN6QFrame19getStaticMetaObjectEv @ 12758 NONAME + _ZN6QLabel19getStaticMetaObjectEv @ 12759 NONAME + _ZN6QMovie19getStaticMetaObjectEv @ 12760 NONAME + _ZN6QSound19getStaticMetaObjectEv @ 12761 NONAME + _ZN6QStyle19getStaticMetaObjectEv @ 12762 NONAME + _ZN7QAction19getStaticMetaObjectEv @ 12763 NONAME + _ZN7QCursor8setShapeEN2Qt11CursorShapeE @ 12764 NONAME + _ZN7QCursorC1EN2Qt11CursorShapeE @ 12765 NONAME + _ZN7QCursorC1ERK7QBitmapS2_ii @ 12766 NONAME + _ZN7QCursorC1ERK7QPixmapii @ 12767 NONAME + _ZN7QCursorC1ERKS_ @ 12768 NONAME + _ZN7QCursorC1Ev @ 12769 NONAME + _ZN7QCursorC2EN2Qt11CursorShapeE @ 12770 NONAME + _ZN7QCursorC2ERK7QBitmapS2_ii @ 12771 NONAME + _ZN7QCursorC2ERK7QPixmapii @ 12772 NONAME + _ZN7QCursorC2ERKS_ @ 12773 NONAME + _ZN7QCursorC2Ev @ 12774 NONAME + _ZN7QCursorD1Ev @ 12775 NONAME + _ZN7QCursorD2Ev @ 12776 NONAME + _ZN7QCursoraSERKS_ @ 12777 NONAME + _ZN7QDialog19getStaticMetaObjectEv @ 12778 NONAME + _ZN7QLayout19getStaticMetaObjectEv @ 12779 NONAME + _ZN7QSlider19getStaticMetaObjectEv @ 12780 NONAME + _ZN7QTabBar19getStaticMetaObjectEv @ 12781 NONAME + _ZN7QWidget11unsetCursorEv @ 12782 NONAME + _ZN7QWidget18setContentsMarginsERK8QMargins @ 12783 NONAME + _ZN7QWidget19getStaticMetaObjectEv @ 12784 NONAME + _ZN7QWidget9grabMouseERK7QCursor @ 12785 NONAME + _ZN7QWidget9setCursorERK7QCursor @ 12786 NONAME + _ZN7QWizard19getStaticMetaObjectEv @ 12787 NONAME + _ZN8QGesture19getStaticMetaObjectEv @ 12788 NONAME + _ZN8QMdiArea19getStaticMetaObjectEv @ 12789 NONAME + _ZN8QMenuBar19getStaticMetaObjectEv @ 12790 NONAME + _ZN8QPainter17endNativePaintingEv @ 12791 NONAME + _ZN8QPainter19beginNativePaintingEv @ 12792 NONAME + _ZN8QPainter19getStaticMetaObjectEv @ 12793 NONAME + _ZN8QPalette19getStaticMetaObjectEv @ 12794 NONAME + _ZN8QSidebar19getStaticMetaObjectEv @ 12795 NONAME + _ZN8QSpinBox19getStaticMetaObjectEv @ 12796 NONAME + _ZN8QToolBar19getStaticMetaObjectEv @ 12797 NONAME + _ZN8QToolBox19getStaticMetaObjectEv @ 12798 NONAME + _ZN9QCheckBox19getStaticMetaObjectEv @ 12799 NONAME + _ZN9QComboBox19getStaticMetaObjectEv @ 12800 NONAME + _ZN9QDateEdit19getStaticMetaObjectEv @ 12801 NONAME + _ZN9QDirModel19getStaticMetaObjectEv @ 12802 NONAME + _ZN9QGradient19getStaticMetaObjectEv @ 12803 NONAME + _ZN9QGroupBox19getStaticMetaObjectEv @ 12804 NONAME + _ZN9QLineEdit19getStaticMetaObjectEv @ 12805 NONAME + _ZN9QListView19getStaticMetaObjectEv @ 12806 NONAME + _ZN9QS60Style19getStaticMetaObjectEv @ 12807 NONAME + _ZN9QS60Style5eventEP6QEvent @ 12808 NONAME + _ZN9QShortcut19getStaticMetaObjectEv @ 12809 NONAME + _ZN9QSizeGrip19getStaticMetaObjectEv @ 12810 NONAME + _ZN9QSplitter19getStaticMetaObjectEv @ 12811 NONAME + _ZN9QTextEdit19getStaticMetaObjectEv @ 12812 NONAME + _ZN9QTextList19getStaticMetaObjectEv @ 12813 NONAME + _ZN9QTimeEdit19getStaticMetaObjectEv @ 12814 NONAME + _ZN9QTreeView19getStaticMetaObjectEv @ 12815 NONAME + _ZN9QUndoView19getStaticMetaObjectEv @ 12816 NONAME + _ZN9QUrlModel19getStaticMetaObjectEv @ 12817 NONAME + _ZNK11QPanGesture6offsetEv @ 12818 NONAME + _ZNK12QImageReader23decideFormatFromContentEv @ 12819 NONAME + _ZNK12QPaintBuffer11paintEngineEv @ 12820 NONAME + _ZNK12QPaintBuffer12boundingRectEv @ 12821 NONAME + _ZNK12QPaintBuffer4drawEP8QPainteri @ 12822 NONAME + _ZNK12QPaintBuffer6metricEN12QPaintDevice17PaintDeviceMetricE @ 12823 NONAME + _ZNK12QPaintBuffer7devTypeEv @ 12824 NONAME + _ZNK12QPaintBuffer7isEmptyEv @ 12825 NONAME + _ZNK12QPaintBuffer9numFramesEv @ 12826 NONAME + _ZNK13QGraphicsItem14focusScopeItemEv @ 12827 NONAME + _ZNK13QGraphicsItem5panelEv @ 12828 NONAME + _ZNK13QGraphicsItem6cursorEv @ 12829 NONAME + _ZNK13QGraphicsItem7isPanelEv @ 12830 NONAME + _ZNK13QGraphicsItem8isActiveEv @ 12831 NONAME + _ZNK13QGraphicsItem9hasCursorEv @ 12832 NONAME + _ZNK13QPinchGesture11whatChangedEv @ 12833 NONAME + _ZNK13QPinchGesture16totalScaleFactorEv @ 12834 NONAME + _ZNK13QPinchGesture18totalRotationAngleEv @ 12835 NONAME + _ZNK13QSwipeGesture10metaObjectEv @ 12836 NONAME + _ZNK13QSwipeGesture10swipeAngleEv @ 12837 NONAME + _ZNK13QSwipeGesture17verticalDirectionEv @ 12838 NONAME + _ZNK13QSwipeGesture19horizontalDirectionEv @ 12839 NONAME + _ZNK14QGraphicsScene11activePanelEv @ 12840 NONAME + _ZNK14QGraphicsScene8isActiveEv @ 12841 NONAME + _ZNK15QGraphicsAnchor10metaObjectEv @ 12842 NONAME + _ZNK15QGraphicsAnchor7spacingEv @ 12843 NONAME + _ZNK20QPaintBufferResource10metaObjectEv @ 12844 NONAME + _ZNK21QPixmapColorizeFilter8strengthEv @ 12845 NONAME + _ZNK22QGraphicsOpacityEffect10metaObjectEv @ 12846 NONAME + _ZNK22QGraphicsOpacityEffect11opacityMaskEv @ 12847 NONAME + _ZNK22QGraphicsOpacityEffect7opacityEv @ 12848 NONAME + _ZNK23QGraphicsColorizeEffect8strengthEv @ 12849 NONAME + _ZNK23QPaintBufferSignalProxy10metaObjectEv @ 12850 NONAME + _ZNK24QGraphicsGrayscaleEffect8strengthEv @ 12851 NONAME + _ZNK6QColor10lightnessFEv @ 12852 NONAME + _ZNK6QColor13hslSaturationEv @ 12853 NONAME + _ZNK6QColor13hsvSaturationEv @ 12854 NONAME + _ZNK6QColor14hslSaturationFEv @ 12855 NONAME + _ZNK6QColor14hsvSaturationFEv @ 12856 NONAME + _ZNK6QColor5toHslEv @ 12857 NONAME + _ZNK6QColor6getHslEPiS0_S0_S0_ @ 12858 NONAME + _ZNK6QColor6hslHueEv @ 12859 NONAME + _ZNK6QColor6hsvHueEv @ 12860 NONAME + _ZNK6QColor7getHslFEPfS0_S0_S0_ @ 12861 NONAME + _ZNK6QColor7hslHueFEv @ 12862 NONAME + _ZNK6QColor7hsvHueFEv @ 12863 NONAME + _ZNK6QColor9lightnessEv @ 12864 NONAME + _ZNK7QCursor4maskEv @ 12865 NONAME + _ZNK7QCursor5shapeEv @ 12866 NONAME + _ZNK7QCursor6bitmapEv @ 12867 NONAME + _ZNK7QCursor6handleEv @ 12868 NONAME + _ZNK7QCursor6pixmapEv @ 12869 NONAME + _ZNK7QCursor7hotSpotEv @ 12870 NONAME + _ZNK7QCursorcv8QVariantEv @ 12871 NONAME + _ZNK7QWidget15contentsMarginsEv @ 12872 NONAME + _ZNK7QWidget6cursorEv @ 12873 NONAME + _ZTI10AnchorData @ 12874 NONAME ; #<TI># + _ZTI11PixmapEntry @ 12875 NONAME ; #<TI># + _ZTI12QPaintBuffer @ 12876 NONAME ; #<TI># + _ZTI13QS60MainAppUi @ 12877 NONAME ; #<TI># + _ZTI13QSwipeGesture @ 12878 NONAME ; #<TI># + _ZTI13ScalableEntry @ 12879 NONAME ; #<TI># + _ZTI15QGesturePrivate @ 12880 NONAME ; #<TI># + _ZTI15QGraphicsAnchor @ 12881 NONAME ; #<TI># + _ZTI16QPainterReplayer @ 12882 NONAME ; #<TI># + _ZTI16QS60MainDocument @ 12883 NONAME ; #<TI># + _ZTI16QTreeViewPrivate @ 12884 NONAME ; #<TI># + _ZTI17QIconLoaderEngine @ 12885 NONAME ; #<TI># + _ZTI17QIconModeViewBase @ 12886 NONAME ; #<TI># + _ZTI17QListModeViewBase @ 12887 NONAME ; #<TI># + _ZTI18ParallelAnchorData @ 12888 NONAME ; #<TI># + _ZTI18QHeaderViewPrivate @ 12889 NONAME ; #<TI># + _ZTI18QPaintBufferEngine @ 12890 NONAME ; #<TI># + _ZTI18QPanGesturePrivate @ 12891 NONAME ; #<TI># + _ZTI19QCommonListViewBase @ 12892 NONAME ; #<TI># + _ZTI19QS60MainApplication @ 12893 NONAME ; #<TI># + _ZTI20QPaintBufferResource @ 12894 NONAME ; #<TI># + _ZTI20QPinchGesturePrivate @ 12895 NONAME ; #<TI># + _ZTI20QSwipeGesturePrivate @ 12896 NONAME ; #<TI># + _ZTI20SequentialAnchorData @ 12897 NONAME ; #<TI># + _ZTI22QGraphicsAnchorPrivate @ 12898 NONAME ; #<TI># + _ZTI22QGraphicsOpacityEffect @ 12899 NONAME ; #<TI># + _ZTI22QPaintEngineExReplayer @ 12900 NONAME ; #<TI># + _ZTI23QPaintBufferSignalProxy @ 12901 NONAME ; #<TI># + _ZTI26QGraphicsSceneIndexPrivate @ 12902 NONAME ; #<TI># + _ZTI26QWidgetEffectSourcePrivate @ 12903 NONAME ; #<TI># + _ZTI32QGraphicsItemEffectSourcePrivate @ 12904 NONAME ; #<TI># + _ZTI8QSimplex @ 12905 NONAME ; #<TI># + _ZTV10AnchorData @ 12906 NONAME ; #<VT># + _ZTV11PixmapEntry @ 12907 NONAME ; #<VT># + _ZTV12QPaintBuffer @ 12908 NONAME ; #<VT># + _ZTV13QS60MainAppUi @ 12909 NONAME ; #<VT># + _ZTV13QSwipeGesture @ 12910 NONAME ; #<VT># + _ZTV13ScalableEntry @ 12911 NONAME ; #<VT># + _ZTV15QGesturePrivate @ 12912 NONAME ; #<VT># + _ZTV15QGraphicsAnchor @ 12913 NONAME ; #<VT># + _ZTV16QPainterReplayer @ 12914 NONAME ; #<VT># + _ZTV16QS60MainDocument @ 12915 NONAME ; #<VT># + _ZTV16QTreeViewPrivate @ 12916 NONAME ; #<VT># + _ZTV17QIconLoaderEngine @ 12917 NONAME ; #<VT># + _ZTV17QIconModeViewBase @ 12918 NONAME ; #<VT># + _ZTV17QListModeViewBase @ 12919 NONAME ; #<VT># + _ZTV18ParallelAnchorData @ 12920 NONAME ; #<VT># + _ZTV18QHeaderViewPrivate @ 12921 NONAME ; #<VT># + _ZTV18QPaintBufferEngine @ 12922 NONAME ; #<VT># + _ZTV18QPanGesturePrivate @ 12923 NONAME ; #<VT># + _ZTV19QCommonListViewBase @ 12924 NONAME ; #<VT># + _ZTV19QS60MainApplication @ 12925 NONAME ; #<VT># + _ZTV20QPaintBufferResource @ 12926 NONAME ; #<VT># + _ZTV20QPinchGesturePrivate @ 12927 NONAME ; #<VT># + _ZTV20QSwipeGesturePrivate @ 12928 NONAME ; #<VT># + _ZTV20SequentialAnchorData @ 12929 NONAME ; #<VT># + _ZTV22QGraphicsAnchorPrivate @ 12930 NONAME ; #<VT># + _ZTV22QGraphicsOpacityEffect @ 12931 NONAME ; #<VT># + _ZTV22QPaintEngineExReplayer @ 12932 NONAME ; #<VT># + _ZTV23QPaintBufferSignalProxy @ 12933 NONAME ; #<VT># + _ZTV26QGraphicsSceneIndexPrivate @ 12934 NONAME ; #<VT># + _ZTV26QWidgetEffectSourcePrivate @ 12935 NONAME ; #<VT># + _ZTV32QGraphicsItemEffectSourcePrivate @ 12936 NONAME ; #<VT># + _ZTV8QSimplex @ 12937 NONAME ; #<VT># + _ZlsR11QDataStreamRK12QPaintBuffer @ 12938 NONAME + _ZlsR11QDataStreamRK7QCursor @ 12939 NONAME + _ZrsR11QDataStreamR12QPaintBuffer @ 12940 NONAME + _ZrsR11QDataStreamR7QCursor @ 12941 NONAME diff --git a/src/s60installs/eabi/QtMultimediau.def b/src/s60installs/eabi/QtMultimediau.def index b1cd682..6e5e8ba 100644 --- a/src/s60installs/eabi/QtMultimediau.def +++ b/src/s60installs/eabi/QtMultimediau.def @@ -156,4 +156,136 @@ EXPORTS _ZThn8_N18QAudioEnginePluginD1Ev @ 155 NONAME _ZlsR11QDataStreamRK14QAudioDeviceId @ 156 NONAME _ZrsR11QDataStreamR14QAudioDeviceId @ 157 NONAME + _ZN11QAudioInput19getStaticMetaObjectEv @ 158 NONAME + _ZN11QVideoFrame10setEndTimeEx @ 159 NONAME + _ZN11QVideoFrame12setFieldTypeENS_9FieldTypeE @ 160 NONAME + _ZN11QVideoFrame12setStartTimeEx @ 161 NONAME + _ZN11QVideoFrame21equivalentImageFormatENS_11PixelFormatE @ 162 NONAME + _ZN11QVideoFrame21equivalentPixelFormatEN6QImage6FormatE @ 163 NONAME + _ZN11QVideoFrame3mapEN20QAbstractVideoBuffer7MapModeE @ 164 NONAME + _ZN11QVideoFrame4bitsEv @ 165 NONAME + _ZN11QVideoFrame5unmapEv @ 166 NONAME + _ZN11QVideoFrameC1EP20QAbstractVideoBufferRK5QSizeNS_11PixelFormatE @ 167 NONAME + _ZN11QVideoFrameC1ERK6QImage @ 168 NONAME + _ZN11QVideoFrameC1ERKS_ @ 169 NONAME + _ZN11QVideoFrameC1EiRK5QSizeiNS_11PixelFormatE @ 170 NONAME + _ZN11QVideoFrameC1Ev @ 171 NONAME + _ZN11QVideoFrameC2EP20QAbstractVideoBufferRK5QSizeNS_11PixelFormatE @ 172 NONAME + _ZN11QVideoFrameC2ERK6QImage @ 173 NONAME + _ZN11QVideoFrameC2ERKS_ @ 174 NONAME + _ZN11QVideoFrameC2EiRK5QSizeiNS_11PixelFormatE @ 175 NONAME + _ZN11QVideoFrameC2Ev @ 176 NONAME + _ZN11QVideoFrameD1Ev @ 177 NONAME + _ZN11QVideoFrameD2Ev @ 178 NONAME + _ZN11QVideoFrameaSERKS_ @ 179 NONAME + _ZN12QAudioOutput19getStaticMetaObjectEv @ 180 NONAME + _ZN16QAudioDeviceInfo19getStaticMetaObjectEv @ 181 NONAME + _ZN17QImageVideoBuffer3mapEN20QAbstractVideoBuffer7MapModeEPiS2_ @ 182 NONAME + _ZN17QImageVideoBuffer5unmapEv @ 183 NONAME + _ZN17QImageVideoBufferC1ERK6QImage @ 184 NONAME + _ZN17QImageVideoBufferC2ERK6QImage @ 185 NONAME + _ZN17QImageVideoBufferD0Ev @ 186 NONAME + _ZN17QImageVideoBufferD1Ev @ 187 NONAME + _ZN17QImageVideoBufferD2Ev @ 188 NONAME + _ZN18QAudioEnginePlugin19getStaticMetaObjectEv @ 189 NONAME + _ZN18QMemoryVideoBuffer3mapEN20QAbstractVideoBuffer7MapModeEPiS2_ @ 190 NONAME + _ZN18QMemoryVideoBuffer5unmapEv @ 191 NONAME + _ZN18QMemoryVideoBufferC1ERK10QByteArrayi @ 192 NONAME + _ZN18QMemoryVideoBufferC2ERK10QByteArrayi @ 193 NONAME + _ZN18QMemoryVideoBufferD0Ev @ 194 NONAME + _ZN18QMemoryVideoBufferD1Ev @ 195 NONAME + _ZN18QMemoryVideoBufferD2Ev @ 196 NONAME + _ZN19QAbstractAudioInput19getStaticMetaObjectEv @ 197 NONAME + _ZN19QVideoSurfaceFormat11setPropertyEPKcRK8QVariant @ 198 NONAME + _ZN19QVideoSurfaceFormat11setViewportERK5QRect @ 199 NONAME + _ZN19QVideoSurfaceFormat12setFrameRateERK5QPairIiiE @ 200 NONAME + _ZN19QVideoSurfaceFormat12setFrameRateEii @ 201 NONAME + _ZN19QVideoSurfaceFormat12setFrameSizeERK5QSizeNS_12ViewportModeE @ 202 NONAME + _ZN19QVideoSurfaceFormat12setFrameSizeEiiNS_12ViewportModeE @ 203 NONAME + _ZN19QVideoSurfaceFormat16setYuvColorSpaceENS_13YuvColorSpaceE @ 204 NONAME + _ZN19QVideoSurfaceFormat19setPixelAspectRatioERK5QSize @ 205 NONAME + _ZN19QVideoSurfaceFormat19setPixelAspectRatioEii @ 206 NONAME + _ZN19QVideoSurfaceFormat20setScanLineDirectionENS_9DirectionE @ 207 NONAME + _ZN19QVideoSurfaceFormatC1ERK5QSizeN11QVideoFrame11PixelFormatEN20QAbstractVideoBuffer10HandleTypeE @ 208 NONAME + _ZN19QVideoSurfaceFormatC1ERKS_ @ 209 NONAME + _ZN19QVideoSurfaceFormatC1Ev @ 210 NONAME + _ZN19QVideoSurfaceFormatC2ERK5QSizeN11QVideoFrame11PixelFormatEN20QAbstractVideoBuffer10HandleTypeE @ 211 NONAME + _ZN19QVideoSurfaceFormatC2ERKS_ @ 212 NONAME + _ZN19QVideoSurfaceFormatC2Ev @ 213 NONAME + _ZN19QVideoSurfaceFormatD1Ev @ 214 NONAME + _ZN19QVideoSurfaceFormatD2Ev @ 215 NONAME + _ZN19QVideoSurfaceFormataSERKS_ @ 216 NONAME + _ZN20QAbstractAudioOutput19getStaticMetaObjectEv @ 217 NONAME + _ZN20QAbstractVideoBufferC2ENS_10HandleTypeE @ 218 NONAME + _ZN20QAbstractVideoBufferC2ER27QAbstractVideoBufferPrivateNS_10HandleTypeE @ 219 NONAME + _ZN20QAbstractVideoBufferD0Ev @ 220 NONAME + _ZN20QAbstractVideoBufferD1Ev @ 221 NONAME + _ZN20QAbstractVideoBufferD2Ev @ 222 NONAME + _ZN21QAbstractVideoSurface11qt_metacallEN11QMetaObject4CallEiPPv @ 223 NONAME + _ZN21QAbstractVideoSurface11qt_metacastEPKc @ 224 NONAME + _ZN21QAbstractVideoSurface14startedChangedEb @ 225 NONAME + _ZN21QAbstractVideoSurface16staticMetaObjectE @ 226 NONAME DATA 16 + _ZN21QAbstractVideoSurface19getStaticMetaObjectEv @ 227 NONAME + _ZN21QAbstractVideoSurface20surfaceFormatChangedERK19QVideoSurfaceFormat @ 228 NONAME + _ZN21QAbstractVideoSurface23supportedFormatsChangedEv @ 229 NONAME + _ZN21QAbstractVideoSurface4stopEv @ 230 NONAME + _ZN21QAbstractVideoSurface5startERK19QVideoSurfaceFormat @ 231 NONAME + _ZN21QAbstractVideoSurface8setErrorENS_5ErrorE @ 232 NONAME + _ZN21QAbstractVideoSurfaceC2EP7QObject @ 233 NONAME + _ZN21QAbstractVideoSurfaceC2ER28QAbstractVideoSurfacePrivateP7QObject @ 234 NONAME + _ZN21QAbstractVideoSurfaceD0Ev @ 235 NONAME + _ZN21QAbstractVideoSurfaceD1Ev @ 236 NONAME + _ZN21QAbstractVideoSurfaceD2Ev @ 237 NONAME + _ZN24QAbstractAudioDeviceInfo19getStaticMetaObjectEv @ 238 NONAME + _ZNK11QVideoFrame10handleTypeEv @ 239 NONAME + _ZNK11QVideoFrame10isReadableEv @ 240 NONAME + _ZNK11QVideoFrame10isWritableEv @ 241 NONAME + _ZNK11QVideoFrame11pixelFormatEv @ 242 NONAME + _ZNK11QVideoFrame12bytesPerLineEv @ 243 NONAME + _ZNK11QVideoFrame4bitsEv @ 244 NONAME + _ZNK11QVideoFrame4sizeEv @ 245 NONAME + _ZNK11QVideoFrame5widthEv @ 246 NONAME + _ZNK11QVideoFrame6handleEv @ 247 NONAME + _ZNK11QVideoFrame6heightEv @ 248 NONAME + _ZNK11QVideoFrame7endTimeEv @ 249 NONAME + _ZNK11QVideoFrame7isValidEv @ 250 NONAME + _ZNK11QVideoFrame7mapModeEv @ 251 NONAME + _ZNK11QVideoFrame8isMappedEv @ 252 NONAME + _ZNK11QVideoFrame8numBytesEv @ 253 NONAME + _ZNK11QVideoFrame9fieldTypeEv @ 254 NONAME + _ZNK11QVideoFrame9startTimeEv @ 255 NONAME + _ZNK17QImageVideoBuffer7mapModeEv @ 256 NONAME + _ZNK18QMemoryVideoBuffer7mapModeEv @ 257 NONAME + _ZNK19QVideoSurfaceFormat10frameWidthEv @ 258 NONAME + _ZNK19QVideoSurfaceFormat10handleTypeEv @ 259 NONAME + _ZNK19QVideoSurfaceFormat11frameHeightEv @ 260 NONAME + _ZNK19QVideoSurfaceFormat11pixelFormatEv @ 261 NONAME + _ZNK19QVideoSurfaceFormat13propertyNamesEv @ 262 NONAME + _ZNK19QVideoSurfaceFormat13yuvColorSpaceEv @ 263 NONAME + _ZNK19QVideoSurfaceFormat16pixelAspectRatioEv @ 264 NONAME + _ZNK19QVideoSurfaceFormat17scanLineDirectionEv @ 265 NONAME + _ZNK19QVideoSurfaceFormat7isValidEv @ 266 NONAME + _ZNK19QVideoSurfaceFormat8propertyEPKc @ 267 NONAME + _ZNK19QVideoSurfaceFormat8sizeHintEv @ 268 NONAME + _ZNK19QVideoSurfaceFormat8viewportEv @ 269 NONAME + _ZNK19QVideoSurfaceFormat9frameRateEv @ 270 NONAME + _ZNK19QVideoSurfaceFormat9frameSizeEv @ 271 NONAME + _ZNK19QVideoSurfaceFormateqERKS_ @ 272 NONAME + _ZNK19QVideoSurfaceFormatneERKS_ @ 273 NONAME + _ZNK20QAbstractVideoBuffer10handleTypeEv @ 274 NONAME + _ZNK20QAbstractVideoBuffer6handleEv @ 275 NONAME + _ZNK21QAbstractVideoSurface10metaObjectEv @ 276 NONAME + _ZNK21QAbstractVideoSurface13surfaceFormatEv @ 277 NONAME + _ZNK21QAbstractVideoSurface17isFormatSupportedERK19QVideoSurfaceFormatPS0_ @ 278 NONAME + _ZNK21QAbstractVideoSurface5errorEv @ 279 NONAME + _ZNK21QAbstractVideoSurface9isStartedEv @ 280 NONAME + _ZTI17QImageVideoBuffer @ 281 NONAME ; #<TI># + _ZTI18QMemoryVideoBuffer @ 282 NONAME ; #<TI># + _ZTI20QAbstractVideoBuffer @ 283 NONAME ; #<TI># + _ZTI21QAbstractVideoSurface @ 284 NONAME ; #<TI># + _ZTV17QImageVideoBuffer @ 285 NONAME ; #<VT># + _ZTV18QMemoryVideoBuffer @ 286 NONAME ; #<VT># + _ZTV20QAbstractVideoBuffer @ 287 NONAME ; #<VT># + _ZTV21QAbstractVideoSurface @ 288 NONAME ; #<VT># + _Zls6QDebugRK19QVideoSurfaceFormat @ 289 NONAME diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def index d03e3f8..bd026e0 100644 --- a/src/s60installs/eabi/QtNetworku.def +++ b/src/s60installs/eabi/QtNetworku.def @@ -1364,4 +1364,34 @@ EXPORTS _ZNK13QNetworkReply9isRunningEv @ 1363 NONAME _ZNK17QHttpNetworkReply23bytesAvailableNextBlockEv @ 1364 NONAME _ZNK19QHttpNetworkRequest16uploadByteDeviceEv @ 1365 NONAME + _ZN10QSslSocket19getStaticMetaObjectEv @ 1366 NONAME + _ZN10QTcpServer19getStaticMetaObjectEv @ 1367 NONAME + _ZN10QTcpSocket19getStaticMetaObjectEv @ 1368 NONAME + _ZN10QUdpSocket19getStaticMetaObjectEv @ 1369 NONAME + _ZN12QLocalServer19getStaticMetaObjectEv @ 1370 NONAME + _ZN12QLocalSocket19getStaticMetaObjectEv @ 1371 NONAME + _ZN13QNetworkReply19getStaticMetaObjectEv @ 1372 NONAME + _ZN15QAbstractSocket19getStaticMetaObjectEv @ 1373 NONAME + _ZN17QHttpNetworkReply19getStaticMetaObjectEv @ 1374 NONAME + _ZN17QHttpSocketEngine19getStaticMetaObjectEv @ 1375 NONAME + _ZN17QNetworkCookieJar19getStaticMetaObjectEv @ 1376 NONAME + _ZN17QNetworkDiskCache19getStaticMetaObjectEv @ 1377 NONAME + _ZN19QHttpNetworkRequest20setPipeliningAllowedEb @ 1378 NONAME + _ZN19QNativeSocketEngine19getStaticMetaObjectEv @ 1379 NONAME + _ZN19QSocks5SocketEngine19getStaticMetaObjectEv @ 1380 NONAME + _ZN20QNetworkProxyFactory32setUseSystemConfigurationEnabledEb @ 1381 NONAME + _ZN21QAbstractNetworkCache19getStaticMetaObjectEv @ 1382 NONAME + _ZN21QAbstractSocketEngine19getStaticMetaObjectEv @ 1383 NONAME + _ZN21QNetworkAccessManager19getStaticMetaObjectEv @ 1384 NONAME + _ZN22QHttpNetworkConnection19getStaticMetaObjectEv @ 1385 NONAME + _ZN22QHttpNetworkConnectionC1EtRK7QStringtbP7QObject @ 1386 NONAME + _ZN22QHttpNetworkConnectionC2EtRK7QStringtbP7QObject @ 1387 NONAME + _ZN4QFtp19getStaticMetaObjectEv @ 1388 NONAME + _ZN5QHttp19getStaticMetaObjectEv @ 1389 NONAME + _ZNK17QHttpNetworkReply16isPipeliningUsedEv @ 1390 NONAME + _ZNK19QHttpNetworkRequest19isPipeliningAllowedEv @ 1391 NONAME + _ZTI24QNetworkReplyImplPrivate @ 1392 NONAME ; #<TI># + _ZTI29QHttpNetworkConnectionChannel @ 1393 NONAME ; #<TI># + _ZTV24QNetworkReplyImplPrivate @ 1394 NONAME ; #<VT># + _ZTV29QHttpNetworkConnectionChannel @ 1395 NONAME ; #<VT># diff --git a/src/s60installs/eabi/QtSqlu.def b/src/s60installs/eabi/QtSqlu.def index 4822dce..0dbfc55 100644 --- a/src/s60installs/eabi/QtSqlu.def +++ b/src/s60installs/eabi/QtSqlu.def @@ -473,4 +473,10 @@ EXPORTS _ZNK10QSqlDriver24numericalPrecisionPolicyEv @ 472 NONAME _ZNK10QSqlResult24numericalPrecisionPolicyEv @ 473 NONAME _ZNK12QSqlDatabase24numericalPrecisionPolicyEv @ 474 NONAME + _ZN10QSqlDriver19getStaticMetaObjectEv @ 475 NONAME + _ZN13QSQLiteDriver19getStaticMetaObjectEv @ 476 NONAME + _ZN14QSqlQueryModel19getStaticMetaObjectEv @ 477 NONAME + _ZN14QSqlTableModel19getStaticMetaObjectEv @ 478 NONAME + _ZN16QSqlDriverPlugin19getStaticMetaObjectEv @ 479 NONAME + _ZN24QSqlRelationalTableModel19getStaticMetaObjectEv @ 480 NONAME diff --git a/src/s60installs/eabi/QtSvgu.def b/src/s60installs/eabi/QtSvgu.def index ce93613..4dd3da5 100644 --- a/src/s60installs/eabi/QtSvgu.def +++ b/src/s60installs/eabi/QtSvgu.def @@ -202,4 +202,13 @@ EXPORTS _ZThn8_N16QGraphicsSvgItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget @ 201 NONAME _ZThn8_NK16QGraphicsSvgItem12boundingRectEv @ 202 NONAME _ZThn8_NK16QGraphicsSvgItem4typeEv @ 203 NONAME + _ZN10QSvgWidget19getStaticMetaObjectEv @ 204 NONAME + _ZN12QSvgRenderer19getStaticMetaObjectEv @ 205 NONAME + _ZN16QGraphicsSvgItem19getStaticMetaObjectEv @ 206 NONAME + _ZN16QSvgTinyDocument12addNamedNodeERK7QStringP8QSvgNode @ 207 NONAME + _ZN16QSvgTinyDocument13addNamedStyleERK7QStringP21QSvgFillStyleProperty @ 208 NONAME + _ZNK16QSvgTinyDocument10namedStyleERK7QString @ 209 NONAME + _ZNK16QSvgTinyDocument9namedNodeERK7QString @ 210 NONAME + _ZTI21QSvgFillStyleProperty @ 211 NONAME ; #<TI># + _ZTV21QSvgFillStyleProperty @ 212 NONAME ; #<VT># diff --git a/src/s60installs/eabi/QtTestu.def b/src/s60installs/eabi/QtTestu.def index f4cc77f..ea1b3e1 100644 --- a/src/s60installs/eabi/QtTestu.def +++ b/src/s60installs/eabi/QtTestu.def @@ -80,4 +80,25 @@ EXPORTS _ZTV22QBenchmarkTimeMeasurer @ 79 NONAME ABSENT _ZN5QTest29QBenchmarkIterationControllerC1ENS0_7RunModeE @ 80 NONAME _ZN5QTest29QBenchmarkIterationControllerC2ENS0_7RunModeE @ 81 NONAME + _ZN14QTestEventLoop19getStaticMetaObjectEv @ 82 NONAME + _ZTI11QTestLogger @ 83 NONAME ; #<TI># + _ZTI12QTestElement @ 84 NONAME ; #<TI># + _ZTI13QTestCoreListI12QTestElementE @ 85 NONAME ; #<TI># + _ZTI13QTestCoreListI21QTestElementAttributeE @ 86 NONAME ; #<TI># + _ZTI16QTestCoreElementI12QTestElementE @ 87 NONAME ; #<TI># + _ZTI16QTestXmlStreamer @ 88 NONAME ; #<TI># + _ZTI18QTestBasicStreamer @ 89 NONAME ; #<TI># + _ZTI18QTestXunitStreamer @ 90 NONAME ; #<TI># + _ZTI21QTestElementAttribute @ 91 NONAME ; #<TI># + _ZTI21QTestLightXmlStreamer @ 92 NONAME ; #<TI># + _ZTV11QTestLogger @ 93 NONAME ; #<VT># + _ZTV12QTestElement @ 94 NONAME ; #<VT># + _ZTV13QTestCoreListI12QTestElementE @ 95 NONAME ; #<VT># + _ZTV13QTestCoreListI21QTestElementAttributeE @ 96 NONAME ; #<VT># + _ZTV16QTestCoreElementI12QTestElementE @ 97 NONAME ; #<VT># + _ZTV16QTestXmlStreamer @ 98 NONAME ; #<VT># + _ZTV18QTestBasicStreamer @ 99 NONAME ; #<VT># + _ZTV18QTestXunitStreamer @ 100 NONAME ; #<VT># + _ZTV21QTestElementAttribute @ 101 NONAME ; #<VT># + _ZTV21QTestLightXmlStreamer @ 102 NONAME ; #<VT># diff --git a/src/s60installs/eabi/phononu.def b/src/s60installs/eabi/phononu.def index dde254e..d407ba4 100644 --- a/src/s60installs/eabi/phononu.def +++ b/src/s60installs/eabi/phononu.def @@ -558,4 +558,16 @@ EXPORTS _ZThn8_N6Phonon19AbstractAudioOutputD1Ev @ 557 NONAME _ZThn8_N6Phonon6EffectD0Ev @ 558 NONAME _ZThn8_N6Phonon6EffectD1Ev @ 559 NONAME + _ZN6Phonon10SeekSlider19getStaticMetaObjectEv @ 560 NONAME + _ZN6Phonon11AudioOutput19getStaticMetaObjectEv @ 561 NONAME + _ZN6Phonon11MediaObject19getStaticMetaObjectEv @ 562 NONAME + _ZN6Phonon11VideoPlayer19getStaticMetaObjectEv @ 563 NONAME + _ZN6Phonon11VideoWidget19getStaticMetaObjectEv @ 564 NONAME + _ZN6Phonon12EffectWidget19getStaticMetaObjectEv @ 565 NONAME + _ZN6Phonon12VolumeSlider19getStaticMetaObjectEv @ 566 NONAME + _ZN6Phonon15MediaController19getStaticMetaObjectEv @ 567 NONAME + _ZN6Phonon17VolumeFaderEffect19getStaticMetaObjectEv @ 568 NONAME + _ZN6Phonon19AbstractAudioOutput19getStaticMetaObjectEv @ 569 NONAME + _ZN6Phonon19AbstractMediaStream19getStaticMetaObjectEv @ 570 NONAME + _ZN6Phonon6Effect19getStaticMetaObjectEv @ 571 NONAME |