diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2009-08-11 09:52:05 (GMT) |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2009-08-11 09:52:05 (GMT) |
commit | 0ec7c55b241d7f281e49edbd7b496f7b5be01305 (patch) | |
tree | d0c9d4741327fd1dc57a0ec4755acc7977d5b79c /src | |
parent | f79228b71b05d28b83014f262bc47e3fe9557a14 (diff) | |
parent | 7f7965212438405c64566416c0f8972f06d6dcd1 (diff) | |
download | Qt-0ec7c55b241d7f281e49edbd7b496f7b5be01305.zip Qt-0ec7c55b241d7f281e49edbd7b496f7b5be01305.tar.gz Qt-0ec7c55b241d7f281e49edbd7b496f7b5be01305.tar.bz2 |
Merge branch 'master' of git@scm.dev.troll.no:qt/qt-s60-public
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qdir.cpp | 2 | ||||
-rw-r--r-- | src/corelib/io/qdiriterator.cpp | 19 | ||||
-rw-r--r-- | src/corelib/io/qdiriterator.h | 2 | ||||
-rw-r--r-- | src/corelib/plugin/qfactoryloader.cpp | 13 | ||||
-rw-r--r-- | src/corelib/tools/qdatetime.cpp | 3 | ||||
-rw-r--r-- | src/corelib/tools/qscopedpointer.cpp | 8 | ||||
-rw-r--r-- | src/corelib/tools/qscopedpointer.h | 39 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicsitem.cpp | 149 | ||||
-rw-r--r-- | src/gui/graphicsview/qgraphicsview.cpp | 28 | ||||
-rw-r--r-- | src/gui/kernel/qapplication_s60.cpp | 7 | ||||
-rw-r--r-- | src/gui/kernel/qdesktopwidget_s60.cpp | 1 | ||||
-rw-r--r-- | src/gui/kernel/qt_s60_p.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qwidget_s60.cpp | 11 | ||||
-rw-r--r-- | src/gui/painting/qwindowsurface_s60.cpp | 8 |
14 files changed, 133 insertions, 158 deletions
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 836fa44..5e24bf4 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -86,7 +86,7 @@ class QDirPrivate QDir *q_ptr; Q_DECLARE_PUBLIC(QDir) - friend class QScopedPointerDeleter<QDirPrivate>; + friend struct QScopedPointerDeleter<QDirPrivate>; protected: QDirPrivate(QDir*, const QDir *copy=0); ~QDirPrivate(); diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index 30d2558..2039827 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -99,6 +99,18 @@ QT_BEGIN_NAMESPACE +class QDirIteratorPrivateIteratorStack : public QStack<QAbstractFileEngineIterator *> +{ +public: + ~QDirIteratorPrivateIteratorStack(); +}; + +QDirIteratorPrivateIteratorStack::~QDirIteratorPrivateIteratorStack() +{ + qDeleteAll(*this); +} + + class QDirIteratorPrivate { public: @@ -112,7 +124,7 @@ public: void checkAndPushDirectory(const QFileInfo &); bool matchesFilters(const QString &fileName, const QFileInfo &fi) const; - QAbstractFileEngine * const engine; + QScopedPointer<QAbstractFileEngine> engine; const QString path; const QStringList nameFilters; @@ -123,7 +135,7 @@ public: QVector<QRegExp> nameRegExps; #endif - QStack<QAbstractFileEngineIterator *> fileEngineIterators; + QDirIteratorPrivateIteratorStack fileEngineIterators; QFileInfo currentFileInfo; QFileInfo nextFileInfo; @@ -163,7 +175,6 @@ QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList */ QDirIteratorPrivate::~QDirIteratorPrivate() { - delete engine; } /*! @@ -431,8 +442,6 @@ QDirIterator::QDirIterator(const QString &path, const QStringList &nameFilters, */ QDirIterator::~QDirIterator() { - qDeleteAll(d->fileEngineIterators); - delete d; } /*! diff --git a/src/corelib/io/qdiriterator.h b/src/corelib/io/qdiriterator.h index 3117bf9..2639e02 100644 --- a/src/corelib/io/qdiriterator.h +++ b/src/corelib/io/qdiriterator.h @@ -84,7 +84,7 @@ public: private: Q_DISABLE_COPY(QDirIterator) - QDirIteratorPrivate *d; + QScopedPointer<QDirIteratorPrivate> d; friend class QDir; }; diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp index 3b44b47..2e852f7 100644 --- a/src/corelib/plugin/qfactoryloader.cpp +++ b/src/corelib/plugin/qfactoryloader.cpp @@ -64,6 +64,7 @@ class QFactoryLoaderPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QFactoryLoader) public: QFactoryLoaderPrivate(){} + ~QFactoryLoaderPrivate(); mutable QMutex mutex; QByteArray iid; QList<QLibraryPrivate*> libraryList; @@ -76,6 +77,12 @@ public: void unloadPath(const QString &path); }; +QFactoryLoaderPrivate::~QFactoryLoaderPrivate() +{ + for (int i = 0; i < libraryList.count(); ++i) + libraryList.at(i)->release(); +} + QFactoryLoader::QFactoryLoader(const char *iid, const QString &suffix, Qt::CaseSensitivity cs) @@ -89,8 +96,8 @@ QFactoryLoader::QFactoryLoader(const char *iid, QMutexLocker locker(qt_factoryloader_mutex()); - qt_factory_loaders()->append(this); update(); + qt_factory_loaders()->append(this); } @@ -197,10 +204,6 @@ void QFactoryLoader::update() QFactoryLoader::~QFactoryLoader() { - Q_D(QFactoryLoader); - for (int i = 0; i < d->libraryList.count(); ++i) - d->libraryList.at(i)->release(); - QMutexLocker locker(qt_factoryloader_mutex()); qt_factory_loaders()->removeAll(this); } diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index 74fbe0a..d43b376 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -1842,7 +1842,8 @@ QTime QTime::currentTime() #else t = localtime(<ime); #endif - + Q_CHECK_PTR(t); + ct.mds = MSECS_PER_HOUR * t->tm_hour + MSECS_PER_MIN * t->tm_min + 1000 * t->tm_sec + tv.tv_usec / 1000; #else diff --git a/src/corelib/tools/qscopedpointer.cpp b/src/corelib/tools/qscopedpointer.cpp index 06f9e6f..5b8991e 100644 --- a/src/corelib/tools/qscopedpointer.cpp +++ b/src/corelib/tools/qscopedpointer.cpp @@ -207,4 +207,12 @@ QT_BEGIN_NAMESPACE Callers of this function take ownership of the pointer. */ +/*! \fn bool QScopedPointer::operator!() const + + Returns \c true if the pointer referenced by this object is \c null, otherwise + returns \c false. + + \sa isNull() +*/ + QT_END_NAMESPACE diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h index 923ae1b..344964b 100644 --- a/src/corelib/tools/qscopedpointer.h +++ b/src/corelib/tools/qscopedpointer.h @@ -113,16 +113,21 @@ public: return d; } - inline bool operator==(const QScopedPointer<T> &other) const + inline bool operator==(const QScopedPointer<T, Cleanup> &other) const { return d == other.d; } - inline bool operator!=(const QScopedPointer<T> &other) const + inline bool operator!=(const QScopedPointer<T, Cleanup> &other) const { return d != other.d; } + inline bool operator!() const + { + return !d; + } + #if defined(Q_CC_NOKIAX86) || defined(Q_QDOC) inline operator bool() const { @@ -189,6 +194,16 @@ public: return this->d[i]; } + inline bool operator==(const QScopedArrayPointer<T, Cleanup> &other) const + { + return this->d == other.d; + } + + inline bool operator!=(const QScopedArrayPointer<T, Cleanup> &other) const + { + return this->d != other.d; + } + private: Q_DISABLE_COPY(QScopedArrayPointer) }; @@ -209,6 +224,16 @@ public: return this->d; } + inline bool operator==(const QCustomScopedPointer<T, Cleanup> &other) const + { + return this->d == other.d; + } + + inline bool operator!=(const QCustomScopedPointer<T, Cleanup> &other) const + { + return this->d != other.d; + } + private: Q_DISABLE_COPY(QCustomScopedPointer) }; @@ -253,6 +278,16 @@ public: QScopedPointerSharedDeleter<T>::cleanup(oldD); } + inline bool operator==(const QScopedSharedPointer<T> &other) const + { + return this->d == other.d; + } + + inline bool operator!=(const QScopedSharedPointer<T> &other) const + { + return this->d != other.d; + } + private: Q_DISABLE_COPY(QScopedSharedPointer) }; diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 52f333b..1e7708c 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -577,7 +577,7 @@ #include <QtGui/qpixmapcache.h> #include <QtGui/qstyleoption.h> #include <QtGui/qevent.h> -#include <QInputContext> +#include <QtGui/qinputcontext.h> #include <private/qgraphicsitem_p.h> #include <private/qgraphicswidget_p.h> @@ -8995,7 +8995,42 @@ bool QGraphicsTextItem::sceneEvent(QEvent *event) return true; } } - return QGraphicsItem::sceneEvent(event); + bool result = QGraphicsItem::sceneEvent(event); + + // Ensure input context is updated. + switch (event->type()) { + case QEvent::ContextMenu: + case QEvent::FocusIn: + case QEvent::FocusOut: + case QEvent::GraphicsSceneDragEnter: + case QEvent::GraphicsSceneDragLeave: + case QEvent::GraphicsSceneDragMove: + case QEvent::GraphicsSceneDrop: + case QEvent::GraphicsSceneHoverEnter: + case QEvent::GraphicsSceneHoverLeave: + case QEvent::GraphicsSceneHoverMove: + case QEvent::GraphicsSceneMouseDoubleClick: + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMouseRelease: + case QEvent::KeyPress: + case QEvent::KeyRelease: + // Reset the focus widget's input context, regardless + // of how this item gained or lost focus. + if (QWidget *fw = qApp->focusWidget()) { + if (QInputContext *qic = fw->inputContext()) { + if (event->type() == QEvent::FocusIn || event->type() == QEvent::FocusOut) + qic->reset(); + else + qic->update(); + } + } + break; + default: + break; + } + + return result; } /*! @@ -9021,11 +9056,6 @@ void QGraphicsTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event) } dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9039,11 +9069,6 @@ void QGraphicsTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) } dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9072,14 +9097,7 @@ void QGraphicsTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) QGraphicsItem::mouseReleaseEvent(event); } dd->clickCausedFocus = 0; - dd->sendControlEvent(event); - - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9098,11 +9116,6 @@ void QGraphicsTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) } dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9111,11 +9124,6 @@ void QGraphicsTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) void QGraphicsTextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9124,18 +9132,6 @@ void QGraphicsTextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) void QGraphicsTextItem::keyPressEvent(QKeyEvent *event) { dd->sendControlEvent(event); - QList<QGraphicsView *> views = scene()->views(); - for (int i = 0; i < views.size(); ++i) { - QGraphicsView *view = views.at(i); - Q_ASSERT(view->viewport()); - if(view->viewport()->hasFocus()) { - QInputContext *qic = view->viewport()->inputContext(); - if(qic){ - qic->update(); - } - break; - } - } } /*! @@ -9144,18 +9140,6 @@ void QGraphicsTextItem::keyPressEvent(QKeyEvent *event) void QGraphicsTextItem::keyReleaseEvent(QKeyEvent *event) { dd->sendControlEvent(event); - QList<QGraphicsView *> views = scene()->views(); - for (int i = 0; i < views.size(); ++i) { - QGraphicsView *view = views.at(i); - Q_ASSERT(view->viewport()); - if(view->viewport()->hasFocus()) { - QInputContext *qic = view->viewport()->inputContext(); - if(qic){ - qic->update(); - } - break; - } - } } /*! @@ -9168,18 +9152,6 @@ void QGraphicsTextItem::focusInEvent(QFocusEvent *event) dd->clickCausedFocus = 1; } update(); - QList<QGraphicsView *> views = scene()->views(); - for (int i = 0; i < views.size(); ++i) { - QGraphicsView *view = views.at(i); - Q_ASSERT(view->viewport()); - if(view->viewport()->hasFocus()) { - QInputContext *qic = view->viewport()->inputContext(); - if(qic){ - qic->reset(); - } - break; - } - } } /*! @@ -9189,18 +9161,6 @@ void QGraphicsTextItem::focusOutEvent(QFocusEvent *event) { dd->sendControlEvent(event); update(); - QList<QGraphicsView *> views = scene()->views(); - for (int i = 0; i < views.size(); ++i) { - QGraphicsView *view = views.at(i); - Q_ASSERT(view->viewport()); - if(view->viewport()->hasFocus()) { - QInputContext *qic = view->viewport()->inputContext(); - if(qic){ - qic->reset(); - } - break; - } - } } /*! @@ -9209,11 +9169,6 @@ void QGraphicsTextItem::focusOutEvent(QFocusEvent *event) void QGraphicsTextItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9222,11 +9177,6 @@ void QGraphicsTextItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event) void QGraphicsTextItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9235,11 +9185,6 @@ void QGraphicsTextItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event) void QGraphicsTextItem::dragMoveEvent(QGraphicsSceneDragDropEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9248,11 +9193,6 @@ void QGraphicsTextItem::dragMoveEvent(QGraphicsSceneDragDropEvent *event) void QGraphicsTextItem::dropEvent(QGraphicsSceneDragDropEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9269,11 +9209,6 @@ void QGraphicsTextItem::inputMethodEvent(QInputMethodEvent *event) void QGraphicsTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9282,11 +9217,6 @@ void QGraphicsTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) void QGraphicsTextItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! @@ -9295,11 +9225,6 @@ void QGraphicsTextItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event) void QGraphicsTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { dd->sendControlEvent(event); - Q_ASSERT(event->widget()); - QInputContext *qic = event->widget()->inputContext(); - if(qic) { - qic->update(); - } } /*! diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index 5d8bce5..0af1070 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -1007,10 +1007,10 @@ QList<QGraphicsItem *> QGraphicsViewPrivate::findItems(const QRegion &exposedReg void QGraphicsViewPrivate::updateInputMethodSensitivity() { Q_Q(QGraphicsView); - q->setAttribute( - Qt::WA_InputMethodEnabled, - scene && scene->focusItem() - && scene->focusItem()->flags() & QGraphicsItem::ItemAcceptsInputMethod); + bool enabled = scene && scene->focusItem() + && (scene->focusItem()->flags() & QGraphicsItem::ItemAcceptsInputMethod); + q->setAttribute(Qt::WA_InputMethodEnabled, enabled); + q->viewport()->setAttribute(Qt::WA_InputMethodEnabled, enabled); } /*! @@ -1022,16 +1022,8 @@ QGraphicsView::QGraphicsView(QWidget *parent) setViewport(0); setAcceptDrops(true); setBackgroundRole(QPalette::Base); - - // ### Ideally this would be enabled/disabled depending on whether any - // widgets in the current scene enabled input methods. We could do that - // using a simple reference count. The same goes for acceptDrops and mouse - // tracking. + // Investigate leaving these disabled by default. setAttribute(Qt::WA_InputMethodEnabled); - - // viewport part of the graphics view has to be enabled - // as well, because when events come this widget is asked - // for input context and so on viewport()->setAttribute(Qt::WA_InputMethodEnabled); } @@ -1046,11 +1038,8 @@ QGraphicsView::QGraphicsView(QGraphicsScene *scene, QWidget *parent) setViewport(0); setAcceptDrops(true); setBackgroundRole(QPalette::Base); + // Investigate leaving these disabled by default. setAttribute(Qt::WA_InputMethodEnabled); - - // viewport part of the graphics view has to be enabled - // as well, because when events come this widget is asked - // for input context and so on viewport()->setAttribute(Qt::WA_InputMethodEnabled); } @@ -1063,11 +1052,8 @@ QGraphicsView::QGraphicsView(QGraphicsViewPrivate &dd, QWidget *parent) setViewport(0); setAcceptDrops(true); setBackgroundRole(QPalette::Base); + // Investigate leaving these disabled by default. setAttribute(Qt::WA_InputMethodEnabled); - - // viewport part of the graphics view has to be enabled - // as well, because when events come this widget is asked - // for input context and so on viewport()->setAttribute(Qt::WA_InputMethodEnabled); } diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 54bd44f..d2183d2 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -352,8 +352,13 @@ void QSymbianControl::HandleLongTapEventL( const TPoint& aPenEventLocation, cons void QSymbianControl::HandlePointerEventL(const TPointerEvent& pEvent) { - //### refactor me, getting too complex m_longTapDetector->PointerEventL(pEvent); + QT_TRYCATCH_LEAVING(HandlePointerEvent(pEvent)); +} + +void QSymbianControl::HandlePointerEvent(const TPointerEvent& pEvent) +{ + //### refactor me, getting too complex QMouseEvent::Type type; Qt::MouseButton button; mapS60MouseEventTypeToQt(&type, &button, &pEvent); diff --git a/src/gui/kernel/qdesktopwidget_s60.cpp b/src/gui/kernel/qdesktopwidget_s60.cpp index 226a759..5734ddd 100644 --- a/src/gui/kernel/qdesktopwidget_s60.cpp +++ b/src/gui/kernel/qdesktopwidget_s60.cpp @@ -126,7 +126,6 @@ QDesktopWidget::QDesktopWidget() QDesktopWidget::~QDesktopWidget() { - QDesktopWidgetPrivate::cleanup(); } bool QDesktopWidget::isVirtualDesktop() const diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index a54eeb8..1ac6a8e 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -150,6 +150,7 @@ protected: void FocusChanged(TDrawNow aDrawNow); private: + void HandlePointerEvent(const TPointerEvent& aPointerEvent); TKeyResponse OfferKeyEvent(const TKeyEvent& aKeyEvent,TEventCode aType); TKeyResponse sendKeyEvent(QWidget *widget, QKeyEvent *keyEvent); void sendMouseEvent(QWidget *widget, QMouseEvent *mEvent); diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 4f3a396..a21c0e7 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -323,7 +323,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de } else { stackingFlags = ECoeStackFlagStandard; } - control->ControlEnv()->AppUi()->AddToStackL(control, ECoeStackPriorityDefault, stackingFlags); + QT_TRAP_THROWING(control->ControlEnv()->AppUi()->AddToStackL(control, ECoeStackPriorityDefault, stackingFlags)); QTLWExtra *topExtra = topData(); topExtra->rwindow = control->DrawableWindow(); @@ -356,7 +356,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de } else { stackingFlags = ECoeStackFlagStandard; } - control->ControlEnv()->AppUi()->AddToStackL(control, ECoeStackPriorityDefault, stackingFlags); + QT_TRAP_THROWING(control->ControlEnv()->AppUi()->AddToStackL(control, ECoeStackPriorityDefault, stackingFlags)); WId parentw = parentWidget->effectiveWinId(); QT_TRAP_THROWING(control->SetContainerWindowL(*parentw)); @@ -763,10 +763,11 @@ void QWidgetPrivate::setWindowTitle_sys(const QString &caption) Q_ASSERT(q->testAttribute(Qt::WA_WState_Created)); CAknTitlePane* titlePane = S60->titlePane(); if(titlePane) { - if(caption.isEmpty()) - titlePane->SetTextToDefaultL(); - else + if(caption.isEmpty()) { + QT_TRAP_THROWING(titlePane->SetTextToDefaultL()); + } else { QT_TRAP_THROWING(titlePane->SetTextL(qt_QString2TPtrC(caption))); + } } } #else diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp index ef69c68..d13dc87 100644 --- a/src/gui/painting/qwindowsurface_s60.cpp +++ b/src/gui/painting/qwindowsurface_s60.cpp @@ -85,8 +85,8 @@ QS60WindowSurface::QS60WindowSurface(QWidget* widget) QS60WindowSurface::~QS60WindowSurface() { - // Ensure that locking and unlocking of this surface were symmetrical - Q_ASSERT(QS60WindowSurfacePrivate::lockedSurface != this); + if (QS60WindowSurfacePrivate::lockedSurface == this) + unlockBitmapHeap(); delete d_ptr->bitmap; delete d_ptr; @@ -97,7 +97,9 @@ void QS60WindowSurface::beginPaint(const QRegion &rgn) if(!d_ptr->bitmap) return; - Q_ASSERT(!QS60WindowSurfacePrivate::lockedSurface); + if (QS60WindowSurfacePrivate::lockedSurface) + unlockBitmapHeap(); + QS60WindowSurfacePrivate::lockedSurface = this; lockBitmapHeap(); |