diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-09-16 11:37:18 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-09-16 11:37:18 (GMT) |
commit | b6f28f234ef0d3a29f38c512f810d1235886fc53 (patch) | |
tree | 6f8b53ae8d0c7043bf7d40f97e185d09dcf181ff | |
parent | b891d591505728a6e37dc877c8e08d826504100a (diff) | |
parent | 21be1f662196b38e29ae7d0bcceeba16ed155b61 (diff) | |
download | Qt-b6f28f234ef0d3a29f38c512f810d1235886fc53.zip Qt-b6f28f234ef0d3a29f38c512f810d1235886fc53.tar.gz Qt-b6f28f234ef0d3a29f38c512f810d1235886fc53.tar.bz2 |
Merge branch 'master' of git://scm.dev.nokia.troll.no/qt/qt-symbian-team
* 'master' of git://scm.dev.nokia.troll.no/qt/qt-symbian-team:
runonphone: Implement traceswitch support for coda
Fix missing clean up stack panic for a new thread in Symbian
Regression in QS60Style when drawing webview scrollbars
Cleanup qwidget_s60.cpp
-rw-r--r-- | src/corelib/thread/qthread_symbian.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qwidget_s60.cpp | 22 | ||||
-rw-r--r-- | src/gui/styles/qs60style.cpp | 1 | ||||
-rw-r--r-- | tools/runonphone/codasignalhandler.cpp | 6 | ||||
-rw-r--r-- | tools/runonphone/runonphone.pro | 6 | ||||
-rw-r--r-- | tools/runonphone/symbianutils/codadevice.cpp | 5 | ||||
-rw-r--r-- | tools/runonphone/texttracehandler.cpp | 89 | ||||
-rw-r--r-- | tools/runonphone/texttracehandler.h | 57 |
8 files changed, 165 insertions, 26 deletions
diff --git a/src/corelib/thread/qthread_symbian.cpp b/src/corelib/thread/qthread_symbian.cpp index 46339a6..2ea1b44 100644 --- a/src/corelib/thread/qthread_symbian.cpp +++ b/src/corelib/thread/qthread_symbian.cpp @@ -324,13 +324,14 @@ void *QThreadPrivate::start(void *arg) data->threadId = QThread::currentThreadId(); set_thread_data(data); + CTrapCleanup *cleanup = CTrapCleanup::New(); + q_check_ptr(cleanup); + { QMutexLocker locker(&thr->d_func()->mutex); data->quitNow = thr->d_func()->exited; } - CTrapCleanup *cleanup = CTrapCleanup::New(); - // ### TODO: allow the user to create a custom event dispatcher createEventDispatcher(data); diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 2b51aaa..e06b625 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -84,21 +84,6 @@ CEikButtonGroupContainer *QS60Data::cba = 0; int qt_symbian_create_desktop_on_screen = -1; -static bool isEqual(const QList<QAction*>& a, const QList<QAction*>& b) -{ - if ( a.count() != b.count()) - return false; - int index=0; - while (index<a.count()) { - if (a.at(index)->softKeyRole() != b.at(index)->softKeyRole()) - return false; - if (a.at(index)->text().compare(b.at(index)->text())!=0) - return false; - index++; - } - return true; -} - void QWidgetPrivate::setWSGeometry(bool dontShow, const QRect &) { // Note: based on x11 implementation @@ -231,7 +216,6 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove) QPoint oldPos(q->pos()); QSize oldSize(q->size()); - QRect oldGeom(data.crect); bool checkExtra = true; if (q->isWindow() && (data.window_state & (Qt::WindowFullScreen | Qt::WindowMaximized))) { @@ -348,11 +332,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de bool topLevel = (flags & Qt::Window); bool popup = (type == Qt::Popup); - bool dialog = (type == Qt::Dialog - || type == Qt::Sheet - || (flags & Qt::MSWindowsFixedSizeDialogHint)); bool desktop = (type == Qt::Desktop); - //bool tool = (type == Qt::Tool || type == Qt::Drawer); if (popup) flags |= Qt::WindowStaysOnTopHint; // a popup stays on top @@ -1075,7 +1055,7 @@ void QWidgetPrivate::registerTouchWindow() int QWidget::metric(PaintDeviceMetric m) const { Q_D(const QWidget); - int val; + int val = 0; if (m == PdmWidth) { val = data->crect.width(); } else if (m == PdmHeight) { diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 816c094..eec2d15 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -842,6 +842,7 @@ void QS60StylePrivate::setThemePaletteHash(QPalette *palette) webPalette.setColor(QPalette::WindowText, Qt::black); webPalette.setColor(QPalette::Text, Qt::black); webPalette.setBrush(QPalette::Base, Qt::white); + webPalette.setBrush(QPalette::Window, Qt::white); QApplication::setPalette(webPalette, "QWebView"); QApplication::setPalette(webPalette, "QGraphicsWebView"); diff --git a/tools/runonphone/codasignalhandler.cpp b/tools/runonphone/codasignalhandler.cpp index 0d086b5..7a7284d 100644 --- a/tools/runonphone/codasignalhandler.cpp +++ b/tools/runonphone/codasignalhandler.cpp @@ -46,6 +46,7 @@ #include <QObject> #include <QTimer> #include "codasignalhandler.h" +#include "texttracehandler.h" static const quint64 DEFAULT_CHUNK_SIZE = 40000; @@ -173,6 +174,9 @@ int CodaSignalHandler::run() return 1; } + TextTraceHandler *traceHandler = new TextTraceHandler( + SymbianUtils::SymbianDeviceManager::instance()->getOstChannel(d->serialPortName, 2), this); + if (d->loglevel > 1) { d->codaDevice->setVerbose(1); } @@ -190,6 +194,8 @@ int CodaSignalHandler::run() d->eventLoop->exec(); int result = d->result; reportMessage(tr("Done.")); + + delete traceHandler; disconnect(d->codaDevice.data(), 0, this, 0); SymbianUtils::SymbianDeviceManager::instance()->releaseCodaDevice(d->codaDevice); diff --git a/tools/runonphone/runonphone.pro b/tools/runonphone/runonphone.pro index d006a05..3d6a995 100644 --- a/tools/runonphone/runonphone.pro +++ b/tools/runonphone/runonphone.pro @@ -9,13 +9,15 @@ include(symbianutils/symbianutils.pri) SOURCES += main.cpp \ trksignalhandler.cpp \ ossignalconverter.cpp \ - codasignalhandler.cpp + codasignalhandler.cpp \ + texttracehandler.cpp HEADERS += trksignalhandler.h \ serenum.h \ ossignalconverter.h \ ossignalconverter_p.h \ - codasignalhandler.h + codasignalhandler.h \ + texttracehandler.h DEFINES += SYMBIANUTILS_INCLUDE_PRI diff --git a/tools/runonphone/symbianutils/codadevice.cpp b/tools/runonphone/symbianutils/codadevice.cpp index 751f84e..f1f5db5 100644 --- a/tools/runonphone/symbianutils/codadevice.cpp +++ b/tools/runonphone/symbianutils/codadevice.cpp @@ -71,6 +71,7 @@ static const int maxSerialMessageLength = 0x10000; // given chunking scheme static const char validProtocolIdStart = (char)0x90; static const char validProtocolIdEnd = (char)0x95; static const char codaProtocolId = (char)0x92; +static const char textTraceProtocolId = (char)0x02; static const unsigned char serialChunkingStart = 0xfe; static const unsigned char serialChunkingContinuation = 0x0; enum { SerialChunkHeaderSize = 2 }; @@ -495,7 +496,9 @@ QPair<int, int> CodaDevice::findSerialHeader(QByteArray &in) // Good packet const int length = trk::extractShort(in.constData() + 2); return QPair<int, int>(4, length); - } else if (in.at(0) == header1 && in.at(1) >= validProtocolIdStart && in.at(1) <= validProtocolIdEnd) { + } else if (in.at(0) == header1 + && (in.at(1) == textTraceProtocolId + || (in.at(1) >= validProtocolIdStart && in.at(1) <= validProtocolIdEnd))) { // We recognise it but it's not a TCF message - emit it for any interested party to handle const int length = trk::extractShort(in.constData() + 2); if (4 + length <= in.size()) { diff --git a/tools/runonphone/texttracehandler.cpp b/tools/runonphone/texttracehandler.cpp new file mode 100644 index 0000000..fff02e9 --- /dev/null +++ b/tools/runonphone/texttracehandler.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QTextStream> +#include "texttracehandler.h" +#include "trkutils.h" + +class TextTraceHandlerPrivate +{ +public: + TextTraceHandlerPrivate(); + ~TextTraceHandlerPrivate(); + QIODevice *device; + QTextStream out; +}; + +TextTraceHandlerPrivate::TextTraceHandlerPrivate() +: out(stdout) +{ +} + +TextTraceHandlerPrivate::~TextTraceHandlerPrivate() +{ + delete device; +} + +TextTraceHandler::TextTraceHandler(QIODevice *device, QObject *parent) +: QObject(parent) +{ + d = new TextTraceHandlerPrivate; + d->device = device; + connect(device, SIGNAL(readyRead()), this, SLOT(dataAvailable())); +} + +TextTraceHandler::~TextTraceHandler() +{ + delete d; +} + +void TextTraceHandler::dataAvailable() +{ + QByteArray result = d->device->readAll(); + quint64 secs = 0; + quint64 ns = 0; + if (result.length() >= 8) { + quint64 timestamp = trk::extractInt64(result.constData()) & 0x0FFFFFFFFFFFFFFFULL; + secs = timestamp / 1000000000; + ns = timestamp % 1000000000; + } + d->out << QString("[%1.%2] %3").arg(secs).arg(ns).arg(QString(result.mid(8))) << endl; +} diff --git a/tools/runonphone/texttracehandler.h b/tools/runonphone/texttracehandler.h new file mode 100644 index 0000000..2b9359c --- /dev/null +++ b/tools/runonphone/texttracehandler.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the tools applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QObject> +#include <QIODevice> + +class TextTraceHandlerPrivate; +class TextTraceHandler : public QObject +{ + Q_OBJECT +public: + TextTraceHandler(QIODevice *device, QObject *parent = 0); + ~TextTraceHandler(); + +public slots: + void dataAvailable(); +private: + TextTraceHandlerPrivate *d; +}; |