From 9ff84982005a1a0fd5cbc1b014f4eac3c03b52be Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 16 Jun 2010 12:18:40 +0200 Subject: Fix autoScroll implementation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The scrolling should not be calculated inside the paint event, this leads to some incorrect behaviour. It is now calculated separately when needed. Patch actually written by Alexis, and I reviewed it. Task-number: QTBUG-11127 Reviewed-by: Alexis Ménard (cherry picked from commit bc4c5a2d9c5d3841948bc4443f2229d8d6ec0e95) --- .../graphicsitems/qdeclarativetextinput.cpp | 88 +++++++++++++--------- .../graphicsitems/qdeclarativetextinput_p_p.h | 1 + .../tst_qdeclarativetextinput.cpp | 1 - 3 files changed, 54 insertions(+), 36 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index 633c01e..624a5aa 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -100,6 +100,7 @@ void QDeclarativeTextInput::setText(const QString &s) if(s == text()) return; d->control->setText(s); + d->updateHorizontalScroll(); //emit textChanged(); } @@ -337,6 +338,7 @@ void QDeclarativeTextInput::setHAlign(HAlignment align) return; d->hAlign = align; updateRect(); + d->updateHorizontalScroll(); emit horizontalAlignmentChanged(d->hAlign); } @@ -554,7 +556,9 @@ void QDeclarativeTextInput::setAutoScroll(bool b) return; d->autoScroll = b; - + d->updateHorizontalScroll(); + //We need to repaint so that the scrolling is taking into account. + updateSize(true); emit autoScrollChanged(d->autoScroll); } @@ -836,6 +840,7 @@ void QDeclarativeTextInput::moveCursor() Q_D(QDeclarativeTextInput); if(!d->cursorItem) return; + d->updateHorizontalScroll(); d->cursorItem->setX(d->control->cursorToX() - d->hscroll); } @@ -845,7 +850,6 @@ void QDeclarativeTextInput::moveCursor() QRectF QDeclarativeTextInput::positionToRectangle(int x) const { Q_D(const QDeclarativeTextInput); - QFontMetrics fm = QFontMetrics(d->font); return QRectF(d->control->cursorToX(x)-d->hscroll, 0.0, d->control->cursorWidth(), @@ -1012,61 +1016,73 @@ void QDeclarativeTextInput::geometryChanged(const QRectF &newGeometry, QDeclarativePaintedItem::geometryChanged(newGeometry, oldGeometry); } -void QDeclarativeTextInput::drawContents(QPainter *p, const QRect &r) +void QDeclarativeTextInputPrivate::updateHorizontalScroll() { - Q_D(QDeclarativeTextInput); - p->setRenderHint(QPainter::TextAntialiasing, true); - p->save(); - p->setPen(QPen(d->color)); - int flags = QLineControl::DrawText; - if(!isReadOnly() && d->cursorVisible && !d->cursorItem) - flags |= QLineControl::DrawCursor; - if (d->control->hasSelectedText()) - flags |= QLineControl::DrawSelections; - QPoint offset = QPoint(0,0); - QFontMetrics fm = QFontMetrics(d->font); - int cix = qRound(d->control->cursorToX()); - QRect br(boundingRect().toRect()); + Q_Q(QDeclarativeTextInput); + QFontMetrics fm = QFontMetrics(font); + int cix = qRound(control->cursorToX()); + QRect br(q->boundingRect().toRect()); //###Is this using bearing appropriately? int minLB = qMax(0, -fm.minLeftBearing()); int minRB = qMax(0, -fm.minRightBearing()); - int widthUsed = qRound(d->control->naturalTextWidth()) + 1 + minRB; - if (d->autoScroll) { + int widthUsed = qRound(control->naturalTextWidth()) + 1 + minRB; + if (autoScroll) { if ((minLB + widthUsed) <= br.width()) { // text fits in br; use hscroll for alignment - switch (d->hAlign & ~(Qt::AlignAbsolute|Qt::AlignVertical_Mask)) { + switch (hAlign & ~(Qt::AlignAbsolute|Qt::AlignVertical_Mask)) { case Qt::AlignRight: - d->hscroll = widthUsed - br.width() + 1; + hscroll = widthUsed - br.width() + 1; break; case Qt::AlignHCenter: - d->hscroll = (widthUsed - br.width()) / 2; + hscroll = (widthUsed - br.width()) / 2; break; default: // Left - d->hscroll = 0; + hscroll = 0; break; } - d->hscroll -= minLB; - } else if (cix - d->hscroll >= br.width()) { + hscroll -= minLB; + } else if (cix - hscroll >= br.width()) { // text doesn't fit, cursor is to the right of br (scroll right) - d->hscroll = cix - br.width() + 1; - } else if (cix - d->hscroll < 0 && d->hscroll < widthUsed) { + hscroll = cix - br.width() + 1; + } else if (cix - hscroll < 0 && hscroll < widthUsed) { // text doesn't fit, cursor is to the left of br (scroll left) - d->hscroll = cix; - } else if (widthUsed - d->hscroll < br.width()) { + hscroll = cix; + } else if (widthUsed - hscroll < br.width()) { // text doesn't fit, text document is to the left of br; align // right - d->hscroll = widthUsed - br.width() + 1; + hscroll = widthUsed - br.width() + 1; + } + } else { + if(hAlign == QDeclarativeTextInput::AlignRight){ + hscroll = q->width() - widthUsed; + }else if(hAlign == QDeclarativeTextInput::AlignHCenter){ + hscroll = (q->width() - widthUsed) / 2; + } else { + hscroll = 0; } + hscroll -= minLB; + } +} + +void QDeclarativeTextInput::drawContents(QPainter *p, const QRect &r) +{ + Q_D(QDeclarativeTextInput); + p->setRenderHint(QPainter::TextAntialiasing, true); + p->save(); + p->setPen(QPen(d->color)); + int flags = QLineControl::DrawText; + if(!isReadOnly() && d->cursorVisible && !d->cursorItem) + flags |= QLineControl::DrawCursor; + if (d->control->hasSelectedText()) + flags |= QLineControl::DrawSelections; + QPoint offset = QPoint(0,0); + QFontMetrics fm = QFontMetrics(d->font); + QRect br(boundingRect().toRect()); + if (d->autoScroll) { // the y offset is there to keep the baseline constant in case we have script changes in the text. offset = br.topLeft() - QPoint(d->hscroll, d->control->ascent() - fm.ascent()); } else { - if(d->hAlign == AlignRight){ - d->hscroll = width() - widthUsed; - }else if(d->hAlign == AlignHCenter){ - d->hscroll = (width() - widthUsed) / 2; - } - d->hscroll -= minLB; offset = QPoint(d->hscroll, 0); } d->control->draw(p, offset, r, flags); @@ -1236,6 +1252,7 @@ void QDeclarativeTextInput::moveCursorSelection(int position) { Q_D(QDeclarativeTextInput); d->control->moveCursor(position, true); + d->updateHorizontalScroll(); } /*! @@ -1426,6 +1443,7 @@ void QDeclarativeTextInput::selectionChanged() void QDeclarativeTextInput::q_textChanged() { Q_D(QDeclarativeTextInput); + d->updateHorizontalScroll(); updateSize(); emit textChanged(); if(hasAcceptableInput() != d->oldValidity){ diff --git a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h index 6865147..8b74bcc 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h @@ -99,6 +99,7 @@ public: void init(); void startCreatingCursor(); void focusChanged(bool hasFocus); + void updateHorizontalScroll(); QLineControl* control; diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp index 3143580..a55b42e 100644 --- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp +++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp @@ -396,7 +396,6 @@ void tst_qdeclarativetextinput::positionAt() #endif // Check without autoscroll... - QEXPECT_FAIL("", "QTBUG-11127", Abort); textinputObject->setAutoScroll(false); pos = textinputObject->positionAt(textinputObject->width()/2); diff = abs(fm.width(textinputObject->text().left(pos))-textinputObject->width()/2); -- cgit v0.12 From 46e8e2afc6b351b1024f94f5146814bfe866607e Mon Sep 17 00:00:00 2001 From: Kim Motoyoshi Kalland Date: Wed, 16 Jun 2010 12:10:03 +0200 Subject: Fixed infinite recursion when drawing very large painter paths. Task-number: QTBUG-11291 Reviewed-by: Gunnar (cherry picked from commit 7619c210217c85ef6e8d3571cce5d1272b1cb437) --- src/gui/painting/qoutlinemapper.cpp | 8 ++++++-- src/gui/painting/qoutlinemapper_p.h | 4 +++- src/gui/painting/qpaintengine_raster.cpp | 11 +++++------ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/gui/painting/qoutlinemapper.cpp b/src/gui/painting/qoutlinemapper.cpp index 1b01960..6038a2a 100644 --- a/src/gui/painting/qoutlinemapper.cpp +++ b/src/gui/painting/qoutlinemapper.cpp @@ -234,12 +234,12 @@ void QOutlineMapper::endOutline() // Check for out of dev bounds... - const bool do_clip = (controlPointRect.left() < -QT_RASTER_COORD_LIMIT + const bool do_clip = !m_in_clip_elements && ((controlPointRect.left() < -QT_RASTER_COORD_LIMIT || controlPointRect.right() > QT_RASTER_COORD_LIMIT || controlPointRect.top() < -QT_RASTER_COORD_LIMIT || controlPointRect.bottom() > QT_RASTER_COORD_LIMIT || controlPointRect.width() > QT_RASTER_COORD_LIMIT - || controlPointRect.height() > QT_RASTER_COORD_LIMIT); + || controlPointRect.height() > QT_RASTER_COORD_LIMIT)); if (do_clip) { clipElements(elements, elementTypes(), element_count); @@ -353,6 +353,8 @@ void QOutlineMapper::clipElements(const QPointF *elements, // instead of going through convenience functionallity, but since // this part of code hardly every used, it shouldn't matter. + m_in_clip_elements = true; + QPainterPath path; if (types) { for (int i=0; ioutlineMapper->m_clip_rect = d->deviceRect.adjusted(-10, -10, 10, 10); - - // This is the upp - QRect bounds(-QT_RASTER_COORD_LIMIT, -QT_RASTER_COORD_LIMIT, - QT_RASTER_COORD_LIMIT*2 - 1, QT_RASTER_COORD_LIMIT * 2 - 1); - d->outlineMapper->m_clip_rect = bounds.intersected(d->outlineMapper->m_clip_rect); + d->outlineMapper->m_clip_rect = d->deviceRect; + if (d->outlineMapper->m_clip_rect.width() > QT_RASTER_COORD_LIMIT) + d->outlineMapper->m_clip_rect.setWidth(QT_RASTER_COORD_LIMIT); + if (d->outlineMapper->m_clip_rect.height() > QT_RASTER_COORD_LIMIT) + d->outlineMapper->m_clip_rect.setHeight(QT_RASTER_COORD_LIMIT); d->rasterizer->setClipRect(d->deviceRect); -- cgit v0.12 From 7b1822dad8091e69a5c0eafb489444d2b7552a5e Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 17 Jun 2010 10:26:13 +1000 Subject: clearFocus() shouldn't mess with focus if it doesn't have focus removing an item from the view caused the focus to change even if the removed item didn't have focus. Task-number: QTBUG-11341 Reviewed-by: Yoann Lopes (cherry picked from commit 7a577ff67388413a882435c5cbd1ad6d1fa8393d) --- src/gui/graphicsview/qgraphicsitem.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 8042c46..c9176d1 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -3277,7 +3277,8 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim */ void QGraphicsItem::clearFocus() { - d_ptr->clearFocusHelper(/* giveFocusToParent = */ true); + if (hasFocus()) + d_ptr->clearFocusHelper(/* giveFocusToParent = */ true); } /*! -- cgit v0.12 From ef6d2ab56754eac8d65bc7a1c851a840f129fa87 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 16 Jun 2010 16:33:19 +1000 Subject: Stopping a flick resulted in the next click being consumed. Task-number: QTBUG-11390 (cherry picked from commit cfbca0bd925b76fff533dc093c67ad72dbd73de5) --- src/declarative/graphicsitems/qdeclarativeflickable.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index fdc1444..6dfd4d9 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -1214,6 +1214,7 @@ bool QDeclarativeFlickable::sendMouseEvent(QGraphicsSceneMouseEvent *event) default: break; } + stealThisEvent = d->stealMouse; // Update stealThisEvent and grabber in case changed by function calls above grabber = qobject_cast(s->mouseGrabberItem()); if (grabber && stealThisEvent && !grabber->keepMouseGrab() && grabber != this) { d->clearDelayedPress(); -- cgit v0.12 From 5a549780710cfb2e5110b068dd93f5a8393b0a86 Mon Sep 17 00:00:00 2001 From: Thierry Bastian Date: Fri, 18 Jun 2010 16:01:54 +0200 Subject: Fix a possible crash with the EVR video renderer in windows This can happn when the component can be instanciated but not all the services are available on it. The code is now more robust. Reviewed-By: gabi (cherry picked from commit cf5971503ee1f7a5ce96758e33796dfdf48375bf) --- src/3rdparty/phonon/ds9/videorenderer_evr.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/3rdparty/phonon/ds9/videorenderer_evr.cpp b/src/3rdparty/phonon/ds9/videorenderer_evr.cpp index d23d9ce..de3f46f 100644 --- a/src/3rdparty/phonon/ds9/videorenderer_evr.cpp +++ b/src/3rdparty/phonon/ds9/videorenderer_evr.cpp @@ -43,14 +43,12 @@ namespace Phonon { //normally we should use IID_IMFGetService but this introduces another dependency //so here we simply define our own IId with the same value + ComPointer ret; ComPointer getService(filter, IID_IMFGetService); - Q_ASSERT(getService); - T *ptr = 0; - HRESULT hr = getService->GetService(guidService, riid, reinterpret_cast(&ptr)); - if (!SUCCEEDED(hr) || ptr == 0) - Q_ASSERT(!SUCCEEDED(hr) && ptr != 0); - ComPointer service(ptr); - return service; + if (getService) { + getService->GetService(guidService, riid, reinterpret_cast(ret.pparam())); + } + return ret; } VideoRendererEVR::~VideoRendererEVR() @@ -70,6 +68,10 @@ namespace Phonon } ComPointer filterControl = getService(m_filter, MR_VIDEO_RENDER_SERVICE, IID_IMFVideoDisplayControl); + if (!filterControl) { + m_filter = Filter(); //will release the interface + return; + } filterControl->SetVideoWindow(reinterpret_cast(target->winId())); filterControl->SetAspectRatioMode(MFVideoARMode_None); // We're in control of the size -- cgit v0.12 From 9c2bf58de3c014345a47013386a84e8a41cf609b Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 21 Jun 2010 14:22:38 +0100 Subject: Update 4.7-beta2 def files Task-number: QTBUG-11585 Reviewed-by: Trust Me (cherry picked from commit 09b770aee2a39e7445d5154e7b8ba3ccc249d55f) --- src/s60installs/bwins/QtCoreu.def | 1 + src/s60installs/bwins/QtDeclarativeu.def | 13 +++++++++++-- src/s60installs/bwins/QtGuiu.def | 7 +++++++ src/s60installs/eabi/QtCoreu.def | 2 ++ src/s60installs/eabi/QtDeclarativeu.def | 17 +++++++++++++---- src/s60installs/eabi/QtGuiu.def | 5 +++++ 6 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index c6d7a2c..45caeb0 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -4479,4 +4479,5 @@ EXPORTS ?trUtf8@QEventDispatcherSymbian@@SA?AVQString@@PBD0@Z @ 4478 NONAME ; class QString QEventDispatcherSymbian::trUtf8(char const *, char const *) ?trUtf8@QEventDispatcherSymbian@@SA?AVQString@@PBD0H@Z @ 4479 NONAME ; class QString QEventDispatcherSymbian::trUtf8(char const *, char const *, int) ?staticMetaObject@QEventDispatcherSymbian@@2UQMetaObject@@B @ 4480 NONAME ; struct QMetaObject const QEventDispatcherSymbian::staticMetaObject + ?textDirection@QLocale@@QBE?AW4LayoutDirection@Qt@@XZ @ 4481 NONAME ; enum Qt::LayoutDirection QLocale::textDirection(void) const diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def index 2992cf6..0aac72b 100644 --- a/src/s60installs/bwins/QtDeclarativeu.def +++ b/src/s60installs/bwins/QtDeclarativeu.def @@ -4025,7 +4025,7 @@ EXPORTS ?get@QDeclarativeXmlListModel@@QBE?AVQScriptValue@@H@Z @ 4024 NONAME ; class QScriptValue QDeclarativeXmlListModel::get(int) const ?setScale@QDeclarativeParentChange@@QAEXVQDeclarativeScriptString@@@Z @ 4025 NONAME ; void QDeclarativeParentChange::setScale(class QDeclarativeScriptString) ?showInputPanelOnFocusChanged@QDeclarativeTextEdit@@IAEX_N@Z @ 4026 NONAME ABSENT ; void QDeclarativeTextEdit::showInputPanelOnFocusChanged(bool) - ?focusOutEvent@QDeclarativeTextInput@@MAEXPAVQFocusEvent@@@Z @ 4027 NONAME ; void QDeclarativeTextInput::focusOutEvent(class QFocusEvent *) + ?focusOutEvent@QDeclarativeTextInput@@MAEXPAVQFocusEvent@@@Z @ 4027 NONAME ABSENT ; void QDeclarativeTextInput::focusOutEvent(class QFocusEvent *) ?height@QDeclarativeParentChange@@QBE?AVQDeclarativeScriptString@@XZ @ 4028 NONAME ; class QDeclarativeScriptString QDeclarativeParentChange::height(void) const ?showInputPanelOnFocus@QDeclarativeTextEdit@@QBE_NXZ @ 4029 NONAME ABSENT ; bool QDeclarativeTextEdit::showInputPanelOnFocus(void) const ?errorString@QDeclarativeComponent@@QBE?AVQString@@XZ @ 4030 NONAME ; class QString QDeclarativeComponent::errorString(void) const @@ -4035,7 +4035,7 @@ EXPORTS ?rotation@QDeclarativeParentChange@@QBE?AVQDeclarativeScriptString@@XZ @ 4034 NONAME ; class QDeclarativeScriptString QDeclarativeParentChange::rotation(void) const ?paintedHeight@QDeclarativeTextEdit@@QBEMXZ @ 4035 NONAME ; float QDeclarativeTextEdit::paintedHeight(void) const ?paintedWidth@QDeclarativeTextEdit@@QBEMXZ @ 4036 NONAME ; float QDeclarativeTextEdit::paintedWidth(void) const - ?focusOutEvent@QDeclarativeTextEdit@@MAEXPAVQFocusEvent@@@Z @ 4037 NONAME ; void QDeclarativeTextEdit::focusOutEvent(class QFocusEvent *) + ?focusOutEvent@QDeclarativeTextEdit@@MAEXPAVQFocusEvent@@@Z @ 4037 NONAME ABSENT ; void QDeclarativeTextEdit::focusOutEvent(class QFocusEvent *) ??0QDeclarativeExpression@@IAE@PAVQDeclarativeContextData@@PAVQObject@@ABVQString@@AAVQDeclarativeExpressionPrivate@@@Z @ 4038 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContextData *, class QObject *, class QString const &, class QDeclarativeExpressionPrivate &) ??0QDeclarativeExpression@@QAE@PAVQDeclarativeContext@@PAVQObject@@ABVQString@@1@Z @ 4039 NONAME ; QDeclarativeExpression::QDeclarativeExpression(class QDeclarativeContext *, class QObject *, class QString const &, class QObject *) ?queryError@QDeclarativeXmlListModel@@AAEXPAXABVQString@@@Z @ 4040 NONAME ; void QDeclarativeXmlListModel::queryError(void *, class QString const &) @@ -4088,4 +4088,13 @@ EXPORTS ?positionToRectangle@QDeclarativeTextInput@@QBE?AVQRectF@@H@Z @ 4087 NONAME ; class QRectF QDeclarativeTextInput::positionToRectangle(int) const ?positionAt@QDeclarativeTextInput@@QBEHH@Z @ 4088 NONAME ; int QDeclarativeTextInput::positionAt(int) const ?selectWord@QDeclarativeTextEdit@@QAEXXZ @ 4089 NONAME ; void QDeclarativeTextEdit::selectWord(void) + ?setFooter@QDeclarativeGridView@@QAEXPAVQDeclarativeComponent@@@Z @ 4090 NONAME ; void QDeclarativeGridView::setFooter(class QDeclarativeComponent *) + ?isNamed@QDeclarativeState@@QBE_NXZ @ 4091 NONAME ; bool QDeclarativeState::isNamed(void) const + ?initialSize@QDeclarativeView@@QBE?AVQSize@@XZ @ 4092 NONAME ; class QSize QDeclarativeView::initialSize(void) const + ?childAt@QDeclarativeItem@@QBEPAV1@MM@Z @ 4093 NONAME ; class QDeclarativeItem * QDeclarativeItem::childAt(float, float) const + ?footer@QDeclarativeGridView@@QBEPAVQDeclarativeComponent@@XZ @ 4094 NONAME ; class QDeclarativeComponent * QDeclarativeGridView::footer(void) const + ?headerChanged@QDeclarativeGridView@@IAEXXZ @ 4095 NONAME ; void QDeclarativeGridView::headerChanged(void) + ?setHeader@QDeclarativeGridView@@QAEXPAVQDeclarativeComponent@@@Z @ 4096 NONAME ; void QDeclarativeGridView::setHeader(class QDeclarativeComponent *) + ?header@QDeclarativeGridView@@QBEPAVQDeclarativeComponent@@XZ @ 4097 NONAME ; class QDeclarativeComponent * QDeclarativeGridView::header(void) const + ?footerChanged@QDeclarativeGridView@@IAEXXZ @ 4098 NONAME ; void QDeclarativeGridView::footerChanged(void) diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 9b4ecc2..d439927 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -12813,4 +12813,11 @@ EXPORTS ?setVerticalMovementX@QTextCursor@@QAEXH@Z @ 12812 NONAME ; void QTextCursor::setVerticalMovementX(int) ?invertedAppearance@QProgressBar@@QBE_NXZ @ 12813 NONAME ; bool QProgressBar::invertedAppearance(void) const ?width@QFontMetrics@@QBEHABVQString@@HH@Z @ 12814 NONAME ; int QFontMetrics::width(class QString const &, int, int) const + ?aboutToDestroy@QWidgetPrivate@@UAEXXZ @ 12815 NONAME ; void QWidgetPrivate::aboutToDestroy(void) + ?setTextOption@QStaticText@@QAEXABVQTextOption@@@Z @ 12816 NONAME ; void QStaticText::setTextOption(class QTextOption const &) + ?pointInsideRectAndMask@QWidgetPrivate@@QBE_NABVQPoint@@@Z @ 12817 NONAME ; bool QWidgetPrivate::pointInsideRectAndMask(class QPoint const &) const + ?childAtRecursiveHelper@QWidgetPrivate@@QBEPAVQWidget@@ABVQPoint@@_N1@Z @ 12818 NONAME ; class QWidget * QWidgetPrivate::childAtRecursiveHelper(class QPoint const &, bool, bool) const + ?textOption@QStaticText@@QBE?AVQTextOption@@XZ @ 12819 NONAME ; class QTextOption QStaticText::textOption(void) const + ?isRightToLeft@QTextEngine@@QBE_NXZ @ 12820 NONAME ; bool QTextEngine::isRightToLeft(void) const + ?textDirection@QTextBlock@@QBE?AW4LayoutDirection@Qt@@XZ @ 12821 NONAME ; enum Qt::LayoutDirection QTextBlock::textDirection(void) const diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 0590d39..48cad39 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3705,4 +3705,6 @@ EXPORTS _ZlsR11QDataStreamRK12QEasingCurve @ 3704 NONAME _ZltRK13QElapsedTimerS1_ @ 3705 NONAME _ZrsR11QDataStreamR12QEasingCurve @ 3706 NONAME + _ZNK7QLocale13textDirectionEv @ 3707 NONAME + _ZNK7QString13isRightToLeftEv @ 3708 NONAME diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index 1c4cd5d..f997454 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -3605,7 +3605,7 @@ EXPORTS _ZN16QDeclarativeText18paintedSizeChangedEv @ 3604 NONAME _ZN20QDeclarativePathView5eventEP6QEvent @ 3605 NONAME _ZN20QDeclarativeTextEdit12focusInEventEP11QFocusEvent @ 3606 NONAME - _ZN20QDeclarativeTextEdit13focusOutEventEP11QFocusEvent @ 3607 NONAME + _ZN20QDeclarativeTextEdit13focusOutEventEP11QFocusEvent @ 3607 NONAME ABSENT _ZN20QDeclarativeTextEdit16setSelectByMouseEb @ 3608 NONAME _ZN20QDeclarativeTextEdit18paintedSizeChangedEv @ 3609 NONAME _ZN20QDeclarativeTextEdit20selectByMouseChangedEb @ 3610 NONAME @@ -3615,7 +3615,7 @@ EXPORTS _ZN20QDeclarativeTextEdit24setShowInputPanelOnFocusEb @ 3614 NONAME ABSENT _ZN20QDeclarativeTextEdit28showInputPanelOnFocusChangedEb @ 3615 NONAME ABSENT _ZN21QDeclarativeTextInput12focusInEventEP11QFocusEvent @ 3616 NONAME - _ZN21QDeclarativeTextInput13focusOutEventEP11QFocusEvent @ 3617 NONAME + _ZN21QDeclarativeTextInput13focusOutEventEP11QFocusEvent @ 3617 NONAME ABSENT _ZN21QDeclarativeTextInput16setSelectByMouseEb @ 3618 NONAME _ZN21QDeclarativeTextInput20selectByMouseChangedEb @ 3619 NONAME _ZN21QDeclarativeTextInput22openSoftwareInputPanelEv @ 3620 NONAME @@ -3653,9 +3653,9 @@ EXPORTS _ZNK24QDeclarativeXmlListModel11errorStringEv @ 3652 NONAME _ZNK24QDeclarativeXmlListModel3getEi @ 3653 NONAME _ZThn8_N20QDeclarativeTextEdit12focusInEventEP11QFocusEvent @ 3654 NONAME - _ZThn8_N20QDeclarativeTextEdit13focusOutEventEP11QFocusEvent @ 3655 NONAME + _ZThn8_N20QDeclarativeTextEdit13focusOutEventEP11QFocusEvent @ 3655 NONAME ABSENT _ZThn8_N21QDeclarativeTextInput12focusInEventEP11QFocusEvent @ 3656 NONAME - _ZThn8_N21QDeclarativeTextInput13focusOutEventEP11QFocusEvent @ 3657 NONAME + _ZThn8_N21QDeclarativeTextInput13focusOutEventEP11QFocusEvent @ 3657 NONAME ABSENT _ZThn8_NK23QDeclarativePaintedItem12boundingRectEv @ 3658 NONAME _ZN20QDeclarativeTextEdit10selectWordEv @ 3659 NONAME _ZN20QDeclarativeTextEdit19moveCursorSelectionEi @ 3660 NONAME @@ -3672,4 +3672,13 @@ EXPORTS _ZNK21QDeclarativeTextInput15cursorRectangleEv @ 3671 NONAME _ZNK21QDeclarativeTextInput19positionToRectangleEi @ 3672 NONAME _ZThn8_N21QDeclarativeTextInput21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent @ 3673 NONAME + _ZN20QDeclarativeGridView13footerChangedEv @ 3674 NONAME + _ZN20QDeclarativeGridView13headerChangedEv @ 3675 NONAME + _ZN20QDeclarativeGridView9setFooterEP21QDeclarativeComponent @ 3676 NONAME + _ZN20QDeclarativeGridView9setHeaderEP21QDeclarativeComponent @ 3677 NONAME + _ZNK16QDeclarativeItem7childAtEff @ 3678 NONAME + _ZNK16QDeclarativeView11initialSizeEv @ 3679 NONAME + _ZNK17QDeclarativeState7isNamedEv @ 3680 NONAME + _ZNK20QDeclarativeGridView6footerEv @ 3681 NONAME + _ZNK20QDeclarativeGridView6headerEv @ 3682 NONAME diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 9c1002d..b59ddee 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12012,4 +12012,9 @@ EXPORTS _ZNK11QTextCursor17verticalMovementXEv @ 12011 NONAME _ZNK11QTextCursor20keepPositionOnInsertEv @ 12012 NONAME _ZNK12QFontMetrics5widthERK7QStringii @ 12013 NONAME + _ZN11QStaticText13setTextOptionERK11QTextOption @ 12014 NONAME + _ZNK10QTextBlock13textDirectionEv @ 12015 NONAME + _ZNK11QStaticText10textOptionEv @ 12016 NONAME + _ZNK11QTextEngine13isRightToLeftEv @ 12017 NONAME + _ZNK14QWidgetPrivate22childAtRecursiveHelperERK6QPointbb @ 12018 NONAME -- cgit v0.12 From 4effb0832834659ebb5bb7cf7d64e272647efeed Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 17 Jun 2010 14:11:18 -0700 Subject: Assigning 0xA UID3s to the new standalone qml demos Task-number: QTBUG-10148 Reviewed-by: Aleksandar Sasha Babic (cherry picked from commit 3ab8e763a4ddf076dec48d71f0bae098325e1e50) --- demos/embedded/qmlcalculator/deployment.pri | 2 +- demos/embedded/qmlclocks/deployment.pri | 2 +- demos/embedded/qmldialcontrol/deployment.pri | 2 +- demos/embedded/qmleasing/deployment.pri | 2 +- demos/embedded/qmlflickr/deployment.pri | 2 +- demos/embedded/qmlphotoviewer/deployment.pri | 2 +- demos/embedded/qmltwitter/deployment.pri | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/demos/embedded/qmlcalculator/deployment.pri b/demos/embedded/qmlcalculator/deployment.pri index d5078f6..a0bfbb6 100644 --- a/demos/embedded/qmlcalculator/deployment.pri +++ b/demos/embedded/qmlcalculator/deployment.pri @@ -1,6 +1,6 @@ qmlcalculator_src = $$PWD/../../declarative/calculator symbian { - qmlcalculator_uid3 = EA8EBD98 + qmlcalculator_uid3 = A000E3FB qmlcalculator_files.path = ../$$qmlcalculator_uid3 } qmlcalculator_files.sources = $$qmlcalculator_src/calculator.qml $$qmlcalculator_src/Core diff --git a/demos/embedded/qmlclocks/deployment.pri b/demos/embedded/qmlclocks/deployment.pri index 84803ec..a30e403 100644 --- a/demos/embedded/qmlclocks/deployment.pri +++ b/demos/embedded/qmlclocks/deployment.pri @@ -1,6 +1,6 @@ qmlclocks_src = $$PWD/../../../examples/declarative/toys/clocks symbian { - qmlclocks_uid3 = E19225B9 + qmlclocks_uid3 = A000E3FC qmlclocks_files.path = ../$$qmlclocks_uid3 } qmlclocks_files.sources = $$qmlclocks_src/clocks.qml $$qmlclocks_src/content diff --git a/demos/embedded/qmldialcontrol/deployment.pri b/demos/embedded/qmldialcontrol/deployment.pri index 8eb39b2..c04ed05 100644 --- a/demos/embedded/qmldialcontrol/deployment.pri +++ b/demos/embedded/qmldialcontrol/deployment.pri @@ -1,6 +1,6 @@ qmldialcontrol_src = $$PWD/../../../examples/declarative/ui-components/dialcontrol symbian { - qmldialcontrol_uid3 = E59A9283 + qmldialcontrol_uid3 = A000E3FD qmldialcontrol_files.path = ../$$qmldialcontrol_uid3 } qmldialcontrol_files.sources = $$qmldialcontrol_src/dialcontrol.qml $$qmldialcontrol_src/content diff --git a/demos/embedded/qmleasing/deployment.pri b/demos/embedded/qmleasing/deployment.pri index ddab1ba..bc37348 100644 --- a/demos/embedded/qmleasing/deployment.pri +++ b/demos/embedded/qmleasing/deployment.pri @@ -1,6 +1,6 @@ qmleasing_src = $$PWD/../../../examples/declarative/animation/easing symbian { - qmleasing_uid3 = E8E8E725 + qmleasing_uid3 = A000E3FE qmleasing_files.path = ../$$qmleasing_uid3 } qmleasing_files.sources = $$qmleasing_src/easing.qml diff --git a/demos/embedded/qmlflickr/deployment.pri b/demos/embedded/qmlflickr/deployment.pri index aef3198..c1f82df 100644 --- a/demos/embedded/qmlflickr/deployment.pri +++ b/demos/embedded/qmlflickr/deployment.pri @@ -1,6 +1,6 @@ qmlflickr_src = $$PWD/../../declarative/flickr symbian { - qmlflickr_uid3 = E56D5A92 + qmlflickr_uid3 = A000E3FF qmlflickr_files.path = ../$$qmlflickr_uid3 } qmlflickr_files.sources = $$qmlflickr_src/flickr.qml $$qmlflickr_src/common $$qmlflickr_src/mobile diff --git a/demos/embedded/qmlphotoviewer/deployment.pri b/demos/embedded/qmlphotoviewer/deployment.pri index 99475cc..0a457de 100644 --- a/demos/embedded/qmlphotoviewer/deployment.pri +++ b/demos/embedded/qmlphotoviewer/deployment.pri @@ -1,6 +1,6 @@ qmlphotoviewer_src = $$PWD/../../declarative/photoviewer symbian { - qmlphotoviewer_uid3 = E8567E72 + qmlphotoviewer_uid3 = A000E400 qmlphotoviewer_files.path = ../$$qmlphotoviewer_uid3 } qmlphotoviewer_files.sources = $$qmlphotoviewer_src/photoviewer.qml $$qmlphotoviewer_src/PhotoViewerCore diff --git a/demos/embedded/qmltwitter/deployment.pri b/demos/embedded/qmltwitter/deployment.pri index e5bd884..34c8cd1 100644 --- a/demos/embedded/qmltwitter/deployment.pri +++ b/demos/embedded/qmltwitter/deployment.pri @@ -1,6 +1,6 @@ qmltwitter_src = $$PWD/../../declarative/twitter symbian { - qmltwitter_uid3 = EEF6D468 + qmltwitter_uid3 = A000E401 qmltwitter_files.path = ../$$qmltwitter_uid3 } qmltwitter_files.sources = $$qmltwitter_src/twitter.qml $$qmltwitter_src/TwitterCore -- cgit v0.12 From 869623866464f3ac3a3f03c3e135f1101ad31c94 Mon Sep 17 00:00:00 2001 From: Gareth Stockwell Date: Wed, 23 Jun 2010 09:20:54 +0100 Subject: Updated UIDs for spectrum demo Resolving UID clash with other example apps Reviewed-by: Miikka Heikkinen (cherry picked from commit 19ee05c994af7d0c55ec9e4a44e7e485eafc8c66) --- demos/spectrum/3rdparty/fftreal/fftreal.pro | 2 +- demos/spectrum/app/app.pro | 2 +- demos/spectrum/spectrum.pro | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/demos/spectrum/3rdparty/fftreal/fftreal.pro b/demos/spectrum/3rdparty/fftreal/fftreal.pro index 8d9f46e..6801b42 100644 --- a/demos/spectrum/3rdparty/fftreal/fftreal.pro +++ b/demos/spectrum/3rdparty/fftreal/fftreal.pro @@ -29,7 +29,7 @@ DEFINES += FFTREAL_LIBRARY symbian { # Provide unique ID for the generated binary, required by Symbian OS - TARGET.UID3 = 0xA000E3FB + TARGET.UID3 = 0xA000E403 TARGET.CAPABILITY = UserEnvironment } else { macx { diff --git a/demos/spectrum/app/app.pro b/demos/spectrum/app/app.pro index c4b0943..c15edf9 100644 --- a/demos/spectrum/app/app.pro +++ b/demos/spectrum/app/app.pro @@ -48,7 +48,7 @@ symbian { TARGET.CAPABILITY = UserEnvironment # Provide unique ID for the generated binary, required by Symbian OS - TARGET.UID3 = 0xA000E3FA + TARGET.UID3 = 0xA000E402 } diff --git a/demos/spectrum/spectrum.pro b/demos/spectrum/spectrum.pro index a8f09de..12bdec1 100644 --- a/demos/spectrum/spectrum.pro +++ b/demos/spectrum/spectrum.pro @@ -21,7 +21,7 @@ symbian { include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) # UID for the SIS file - TARGET.UID3 = 0xA000E3FA + TARGET.UID3 = 0xA000E402 } sources.files = README.txt spectrum.pri spectrum.pro TODO.txt -- cgit v0.12 From 898b7599a71ab14b54af80defe8c701c34c85907 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 23 Jun 2010 12:00:59 +0300 Subject: Fix "missing store_build" errors Create a dummy store_build target in projects that do not deploy anything when building for symbian-abld. Task-number: QTBUG-11656 Reviewed-by: Janne Koskinen (cherry picked from commit 4f6a7f7e480dc0c7fada475c1ab04cc3d082e490) --- mkspecs/features/sis_targets.prf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mkspecs/features/sis_targets.prf b/mkspecs/features/sis_targets.prf index b149a22..349a027 100644 --- a/mkspecs/features/sis_targets.prf +++ b/mkspecs/features/sis_targets.prf @@ -145,6 +145,12 @@ equals(GENERATE_SIS_TARGETS, true) { sis_target.commands = sis_target.target = sis QMAKE_EXTRA_TARGETS += sis_target + + symbian-abld { + # Create dummy store_build target to avoid errors from .mk callbacks during build + store_build_target.target = store_build + QMAKE_EXTRA_TARGETS += store_build_target + } } QMAKE_DISTCLEAN += $${sis_destdir}$${TARGET}.sis -- cgit v0.12 From f14b9b1bbb023ba8f28839bab456e09040449851 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 23 Jun 2010 14:41:26 +0200 Subject: Provide Qml plugins with UID3s on Symbian ...otherwise we cannot Symbian sign them. (cherry picked from commit 808c045dd351dab32b8add07d45fd77f5a061f61) --- src/imports/folderlistmodel/folderlistmodel.pro | 1 + src/imports/gestures/gestures.pro | 1 + src/imports/particles/particles.pro | 1 + src/imports/webkit/webkit.pro | 1 + 4 files changed, 4 insertions(+) diff --git a/src/imports/folderlistmodel/folderlistmodel.pro b/src/imports/folderlistmodel/folderlistmodel.pro index 781dfc2..9a1be61 100644 --- a/src/imports/folderlistmodel/folderlistmodel.pro +++ b/src/imports/folderlistmodel/folderlistmodel.pro @@ -14,6 +14,7 @@ qmldir.files += $$PWD/qmldir qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH symbian:{ + TARGET.UID3 = 0x20021320 load(data_caging_paths) include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/src/imports/gestures/gestures.pro b/src/imports/gestures/gestures.pro index 4ef7931..ac49b76 100644 --- a/src/imports/gestures/gestures.pro +++ b/src/imports/gestures/gestures.pro @@ -14,6 +14,7 @@ qmldir.files += $$PWD/qmldir qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH symbian:{ + TARGET.UID3 = 0x2002131F load(data_caging_paths) include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/src/imports/particles/particles.pro b/src/imports/particles/particles.pro index 9fd4db5..400c526 100644 --- a/src/imports/particles/particles.pro +++ b/src/imports/particles/particles.pro @@ -18,6 +18,7 @@ qmldir.files += $$PWD/qmldir qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH symbian:{ + TARGET.UID3 = 0x2002131E load(data_caging_paths) include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) diff --git a/src/imports/webkit/webkit.pro b/src/imports/webkit/webkit.pro index 7b2ac66..3661690 100644 --- a/src/imports/webkit/webkit.pro +++ b/src/imports/webkit/webkit.pro @@ -15,6 +15,7 @@ qmldir.files += $$PWD/qmldir qmldir.path += $$[QT_INSTALL_IMPORTS]/$$TARGETPATH symbian:{ + TARGET.UID3 = 0x20021321 load(data_caging_paths) include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) -- cgit v0.12 From 0fef3b8463a3d3b9bb0e4e08b964794eb40bd55d Mon Sep 17 00:00:00 2001 From: Kim Motoyoshi Kalland Date: Fri, 18 Jun 2010 15:09:12 +0200 Subject: Fixed device context leak in QGLWidget on Windows. Commit 392123ef5432643d1047d1e1dd71512ec39d382d introduced the leak. Task-number: QTBUG-11432 Reviewed-by: Trond (cherry picked from commit 38adb59a9e80a23d37ff0820ef62ebd45ab1e4ae) --- src/gui/kernel/qapplication_win.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index 09535fa..cf28893 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -957,6 +957,9 @@ const QString qt_reg_winclass(QWidget *w) // register window class if (qt_widget_private(w)->isGLWidget) { cname = QLatin1String("QGLWidget"); style = CS_DBLCLKS; +#ifndef Q_WS_WINCE + style |= CS_OWNDC; +#endif icon = true; } else if (flags & Qt::MSWindowsOwnDC) { cname = QLatin1String("QWidgetOwnDC"); -- cgit v0.12 From 7bf890a45139c06a66eb362dec9fa6e17205291d Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 29 Jun 2010 16:36:04 +0200 Subject: don't complain multiple times about same abuse of //% meta strings Reviewed-by: Kent Hansen Task-number: QTBUG-11818 (cherry picked from commit f08b60f4ca52d525c1dc9890cb0c6661ee34b069) --- .../lupdate/testdata/good/parsecpp2/expectedoutput.txt | 2 ++ .../auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp | 13 +++++++++++++ .../lupdate/testdata/good/parsecpp2/project.ts.result | 12 ++++++++++++ tools/linguist/lupdate/cpp.cpp | 3 +++ 4 files changed, 30 insertions(+) diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt index 195c0e6..959938c 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/expectedoutput.txt @@ -2,3 +2,5 @@ .*/lupdate/testdata/good/parsecpp2/main.cpp:55: Excess closing brace .* .*/lupdate/testdata/good/parsecpp2/main.cpp:61: Excess closing brace .* .*/lupdate/testdata/good/parsecpp2/main.cpp:65: Excess closing brace .* +.*/lupdate/testdata/good/parsecpp2/main.cpp:120: //% cannot be used with tr\(\) / QT_TR_NOOP\(\)\. Ignoring +.*/lupdate/testdata/good/parsecpp2/main.cpp:123: //% cannot be used with translate\(\) / QT_TRANSLATE_NOOP\(\)\. Ignoring diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp index feb885c..06e6fe0 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp @@ -112,3 +112,16 @@ void ToBeUsed::caller() { tr("NameSpace::ToBeUsed"); } + + + +// QTBUG-11818 +//% "Foo" +QObject::tr("Hello World"); +QObject::tr("Hello World"); +//% "Bar" +QApplication::translate("QObject", "Hello World"); +QApplication::translate("QObject", "Hello World"); +//% "Baz" +clear = me; +QObject::tr("Hello World"); diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result index 6f48e27..806f56f 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result +++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result @@ -10,6 +10,18 @@ + QObject + + + + + + + Hello World + + + + TopLevel diff --git a/tools/linguist/lupdate/cpp.cpp b/tools/linguist/lupdate/cpp.cpp index b3e7e84..97fa04c 100644 --- a/tools/linguist/lupdate/cpp.cpp +++ b/tools/linguist/lupdate/cpp.cpp @@ -1858,6 +1858,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet &inclusions) gotctx: recordMessage(line, context, text, comment, extracomment, msgid, extra, utf8, plural); } + sourcetext.clear(); // Will have warned about that already extracomment.clear(); msgid.clear(); extra.clear(); @@ -1913,6 +1914,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet &inclusions) } recordMessage(line, context, text, comment, extracomment, msgid, extra, utf8, plural); } + sourcetext.clear(); // Will have warned about that already extracomment.clear(); msgid.clear(); extra.clear(); @@ -2079,6 +2081,7 @@ void CppParser::parseInternal(ConversionData &cd, QSet &inclusions) case Tok_Semicolon: prospectiveContext.clear(); prefix.clear(); + sourcetext.clear(); extracomment.clear(); msgid.clear(); extra.clear(); -- cgit v0.12 From fd75bec667e011c0700e0e6bcd45ff2fc29beb8d Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 29 Jun 2010 14:38:42 +0300 Subject: Fix s60main linking issue with gcce applications MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA must not be included in s60main build, otherwise some symbols will not be relocatable when linked against from gcce build. Task-number: QTBUG-11804 Reviewed-by: Alessandro Portale (cherry picked from commit ce57d92ef5723f54c1e3a1b50d66eb74273b995b) --- src/s60main/s60main.pro | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/s60main/s60main.pro b/src/s60main/s60main.pro index 1ba105d..9ea3080 100644 --- a/src/s60main/s60main.pro +++ b/src/s60main/s60main.pro @@ -25,6 +25,10 @@ symbian { # Workaround for abld toolchain problem to make ARMV6 qtmain.lib link with GCCE apps symbian-abld: QMAKE_CXXFLAGS.ARMCC += --dllimport_runtime + + # Having MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA will cause s60main.lib be unlinkable + # against GCCE apps, so remove it + MMP_RULES -= $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA } else { error("$$_FILE_ is intended only for Symbian!") } -- cgit v0.12 From d7513a5994c734ed48e95ec55d1abd9147c75405 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Fri, 11 Jun 2010 12:36:34 +0200 Subject: Changed the way we detect touch screen on Windows. Instead of using the IInkTablets interface (which sometimes freezes in the get_Count() call for 10 seconds), we just check if there is digitizer support. Task-number: QTBUG-6007 Reviewed-by: Prasanth (cherry picked from commit 7f338180e88b71e793069e2fbe9a70f3c434e126) --- src/gui/kernel/qapplication_win.cpp | 36 +++------------------- .../kernel/qwinnativepangesturerecognizer_win_p.h | 32 +++++++++++++++++++ 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index cf28893..610dec5 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -118,8 +118,6 @@ extern void qt_wince_hide_taskbar(HWND hwnd); //defined in qguifunctions_wince.c # include #endif -#include "private/qwinnativepangesturerecognizer_win_p.h" - #ifndef WM_TOUCH # define WM_TOUCH 0x0240 @@ -4069,36 +4067,10 @@ PtrCloseTouchInputHandle QApplicationPrivate::CloseTouchInputHandle = 0; void QApplicationPrivate::initializeMultitouch_sys() { - static const IID QT_IID_IInkTablets = {0x112086D9, 0x7779, 0x4535, {0xA6, 0x99, 0x86, 0x2B, 0x43, 0xAC, 0x18, 0x63} }; - static const IID QT_IID_IInkTablet2 = {0x90c91ad2, 0xfa36, 0x49d6, {0x95, 0x16, 0xce, 0x8d, 0x57, 0x0f, 0x6f, 0x85} }; - static const CLSID QT_CLSID_InkTablets = {0x6E4FCB12, 0x510A, 0x4d40, {0x93, 0x04, 0x1D, 0xA1, 0x0A, 0xE9, 0x14, 0x7C} }; - - IInkTablets *iInkTablets = 0; - HRESULT hr = CoCreateInstance(QT_CLSID_InkTablets, NULL, CLSCTX_ALL, QT_IID_IInkTablets, (void**)&iInkTablets); - if (SUCCEEDED(hr)) { - long count = 0; - iInkTablets->get_Count(&count); - for (long i = 0; i < count; ++i) { - IInkTablet *iInkTablet = 0; - hr = iInkTablets->Item(i, &iInkTablet); - if (FAILED(hr)) - continue; - IInkTablet2 *iInkTablet2 = 0; - hr = iInkTablet->QueryInterface(QT_IID_IInkTablet2, (void**)&iInkTablet2); - iInkTablet->Release(); - if (FAILED(hr)) - continue; - TabletDeviceKind kind; - hr = iInkTablet2->get_DeviceKind(&kind); - iInkTablet2->Release(); - if (FAILED(hr)) - continue; - if (kind == TDK_Touch) { - QApplicationPrivate::HasTouchSupport = true; - break; - } - } - iInkTablets->Release(); + if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) { + static const int QT_SM_DIGITIZER = 94; + QApplicationPrivate::HasTouchSupport = GetSystemMetrics(QT_SM_DIGITIZER); + qDebug() << "QApplicationPrivate::HasTouchSupport " << QApplicationPrivate::HasTouchSupport; } QLibrary library(QLatin1String("user32")); diff --git a/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h b/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h index 64addeb..eb99b74 100644 --- a/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h +++ b/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h @@ -54,6 +54,38 @@ // #include +#include + +class IInkRectangle; +class TabletHardwareCapabilities; +class TabletPropertyMetricUnit; +DECLARE_INTERFACE_(IInkTablet, IDispatch) +{ + STDMETHOD(get_Name)(THIS_ BSTR *Name) PURE; + STDMETHOD(get_PlugAndPlayId)(THIS_ BSTR *Id) PURE; + STDMETHOD(get_MaximumInputRectangle)(THIS_ IInkRectangle **Rectangle) PURE; + STDMETHOD(get_HardwareCapabilities)(THIS_ TabletHardwareCapabilities *Capabilities) PURE; + STDMETHOD(IsPacketPropertySupported)(THIS_ BSTR packetPropertyName) PURE; + STDMETHOD(GetPropertyMetrics)(THIS_ BSTR propertyName, long *Minimum, long *Maximum, TabletPropertyMetricUnit *Units, float *Resolution) PURE; +}; +enum TabletDeviceKind +{ + TDK_Mouse = 0, + TDK_Pen = 1, + TDK_Touch = 2 +}; +DECLARE_INTERFACE_(IInkTablet2, IDispatch) +{ + STDMETHOD(get_DeviceKind)(THIS_ TabletDeviceKind *Kind) PURE; +}; +DECLARE_INTERFACE_(IInkTablets, IDispatch) +{ + STDMETHOD(get_Count)(THIS_ long *Count) PURE; + STDMETHOD(get__NewEnum)(THIS_ IUnknown **_NewEnum) PURE; + STDMETHOD(get_DefaultTablet)(THIS_ IInkTablet **DefaultTablet) PURE; + STDMETHOD(Item)(THIS_ long Index, IInkTablet **Tablet) PURE; + STDMETHOD(IsPacketPropertySupported)(THIS_ BSTR packetPropertyName, VARIANT_BOOL *Supported) PURE; +}; #include -- cgit v0.12 From 53c58703223bdc8cef84b0d26f80573be3de91fb Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Fri, 11 Jun 2010 13:26:05 +0200 Subject: Fixed a broken merge. Reviewed-by: trustme (cherry picked from commit 24bcac9de46c89f4d8b533946e7b0feeacca1b0d) --- src/gui/kernel/qapplication_win.cpp | 1 - .../kernel/qwinnativepangesturerecognizer_win_p.h | 65 ---------------------- 2 files changed, 66 deletions(-) diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp index 610dec5..2a85fdc 100644 --- a/src/gui/kernel/qapplication_win.cpp +++ b/src/gui/kernel/qapplication_win.cpp @@ -4070,7 +4070,6 @@ void QApplicationPrivate::initializeMultitouch_sys() if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) { static const int QT_SM_DIGITIZER = 94; QApplicationPrivate::HasTouchSupport = GetSystemMetrics(QT_SM_DIGITIZER); - qDebug() << "QApplicationPrivate::HasTouchSupport " << QApplicationPrivate::HasTouchSupport; } QLibrary library(QLatin1String("user32")); diff --git a/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h b/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h index eb99b74..9d0e6f7 100644 --- a/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h +++ b/src/gui/kernel/qwinnativepangesturerecognizer_win_p.h @@ -54,71 +54,6 @@ // #include -#include - -class IInkRectangle; -class TabletHardwareCapabilities; -class TabletPropertyMetricUnit; -DECLARE_INTERFACE_(IInkTablet, IDispatch) -{ - STDMETHOD(get_Name)(THIS_ BSTR *Name) PURE; - STDMETHOD(get_PlugAndPlayId)(THIS_ BSTR *Id) PURE; - STDMETHOD(get_MaximumInputRectangle)(THIS_ IInkRectangle **Rectangle) PURE; - STDMETHOD(get_HardwareCapabilities)(THIS_ TabletHardwareCapabilities *Capabilities) PURE; - STDMETHOD(IsPacketPropertySupported)(THIS_ BSTR packetPropertyName) PURE; - STDMETHOD(GetPropertyMetrics)(THIS_ BSTR propertyName, long *Minimum, long *Maximum, TabletPropertyMetricUnit *Units, float *Resolution) PURE; -}; -enum TabletDeviceKind -{ - TDK_Mouse = 0, - TDK_Pen = 1, - TDK_Touch = 2 -}; -DECLARE_INTERFACE_(IInkTablet2, IDispatch) -{ - STDMETHOD(get_DeviceKind)(THIS_ TabletDeviceKind *Kind) PURE; -}; -DECLARE_INTERFACE_(IInkTablets, IDispatch) -{ - STDMETHOD(get_Count)(THIS_ long *Count) PURE; - STDMETHOD(get__NewEnum)(THIS_ IUnknown **_NewEnum) PURE; - STDMETHOD(get_DefaultTablet)(THIS_ IInkTablet **DefaultTablet) PURE; - STDMETHOD(Item)(THIS_ long Index, IInkTablet **Tablet) PURE; - STDMETHOD(IsPacketPropertySupported)(THIS_ BSTR packetPropertyName, VARIANT_BOOL *Supported) PURE; -}; - -#include - -class IInkRectangle; -class TabletHardwareCapabilities; -class TabletPropertyMetricUnit; -DECLARE_INTERFACE_(IInkTablet, IDispatch) -{ - STDMETHOD(get_Name)(THIS_ BSTR *Name) PURE; - STDMETHOD(get_PlugAndPlayId)(THIS_ BSTR *Id) PURE; - STDMETHOD(get_MaximumInputRectangle)(THIS_ IInkRectangle **Rectangle) PURE; - STDMETHOD(get_HardwareCapabilities)(THIS_ TabletHardwareCapabilities *Capabilities) PURE; - STDMETHOD(IsPacketPropertySupported)(THIS_ BSTR packetPropertyName) PURE; - STDMETHOD(GetPropertyMetrics)(THIS_ BSTR propertyName, long *Minimum, long *Maximum, TabletPropertyMetricUnit *Units, float *Resolution) PURE; -}; -enum TabletDeviceKind -{ - TDK_Mouse = 0, - TDK_Pen = 1, - TDK_Touch = 2 -}; -DECLARE_INTERFACE_(IInkTablet2, IDispatch) -{ - STDMETHOD(get_DeviceKind)(THIS_ TabletDeviceKind *Kind) PURE; -}; -DECLARE_INTERFACE_(IInkTablets, IDispatch) -{ - STDMETHOD(get_Count)(THIS_ long *Count) PURE; - STDMETHOD(get__NewEnum)(THIS_ IUnknown **_NewEnum) PURE; - STDMETHOD(get_DefaultTablet)(THIS_ IInkTablet **DefaultTablet) PURE; - STDMETHOD(Item)(THIS_ long Index, IInkTablet **Tablet) PURE; - STDMETHOD(IsPacketPropertySupported)(THIS_ BSTR packetPropertyName, VARIANT_BOOL *Supported) PURE; -}; #ifndef QT_NO_GESTURES -- cgit v0.12