summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/dialogs/qfontdialog_mac.mm9
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp4
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp11
-rw-r--r--src/gui/kernel/qcursor_s60.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_ssse3.cpp2
-rw-r--r--src/gui/painting/qdrawingprimitive_sse2_p.h4
-rw-r--r--src/gui/painting/qpaintengine.cpp2
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp4
-rw-r--r--src/gui/painting/qpainter.cpp2
-rw-r--r--src/gui/painting/qprintengine_ps.cpp2
-rw-r--r--src/gui/styles/qs60style.cpp3
-rw-r--r--src/gui/styles/qs60style_feedbackinterface_p.h50
-rw-r--r--src/gui/styles/qs60style_p.h4
-rw-r--r--src/gui/styles/qs60style_s60.cpp24
-rw-r--r--src/gui/text/qfontengine_p.h2
-rw-r--r--src/gui/text/qtextdocument_p.cpp2
-rw-r--r--src/gui/text/qtextdocumentlayout.cpp2
-rw-r--r--src/gui/text/qtextengine.cpp2
-rw-r--r--src/gui/text/qtextlist.cpp2
-rw-r--r--src/gui/text/qzip.cpp2
-rw-r--r--src/gui/widgets/qabstractscrollarea.cpp2
-rw-r--r--src/gui/widgets/qabstractslider.cpp2
-rw-r--r--src/gui/widgets/qdatetimeedit.cpp2
-rw-r--r--src/gui/widgets/qdockarealayout.cpp2
-rw-r--r--src/gui/widgets/qdockarealayout_p.h2
-rw-r--r--src/gui/widgets/qdockwidget_p.h2
-rw-r--r--src/gui/widgets/qlinecontrol_p.h2
-rw-r--r--src/gui/widgets/qscrollarea.cpp2
-rw-r--r--src/gui/widgets/qsplitter.cpp2
-rw-r--r--src/plugins/s60/feedback/feedback.pro18
-rw-r--r--src/plugins/s60/feedback/qtactileFeedback.h54
-rw-r--r--src/plugins/s60/feedback/qtactileFeedback_s60.cpp83
-rw-r--r--src/plugins/s60/s60.pro4
-rw-r--r--src/s60installs/qt.iby5
-rw-r--r--src/s60installs/s60installs.pro6
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp53
36 files changed, 100 insertions, 278 deletions
diff --git a/src/gui/dialogs/qfontdialog_mac.mm b/src/gui/dialogs/qfontdialog_mac.mm
index 9c63dfa..e2c0ef5 100644
--- a/src/gui/dialogs/qfontdialog_mac.mm
+++ b/src/gui/dialogs/qfontdialog_mac.mm
@@ -116,6 +116,7 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin
- (void)showModelessPanel;
- (void)showWindowModalSheet:(QWidget *)docWidget;
- (void)runApplicationModalPanel;
+- (BOOL)isAppModal;
- (void)changeFont:(id)sender;
- (void)changeAttributes:(id)sender;
- (BOOL)windowShouldClose:(id)window;
@@ -226,6 +227,7 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
QBoolBlocker nativeDialogOnTop(QApplicationPrivate::native_modal_dialog_active);
mAppModal = true;
NSWindow *ourPanel = [mStolenContentView window];
+ [ourPanel setReleasedWhenClosed:NO];
[NSApp runModalForWindow:ourPanel];
QAbstractEventDispatcher::instance()->interrupt();
@@ -235,6 +237,11 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
mPriv->fontDialog()->reject();
}
+- (BOOL)isAppModal
+{
+ return mAppModal;
+}
+
- (void)showWindowModalSheet:(QWidget *)docWidget
{
#ifdef QT_MAC_USE_COCOA
@@ -485,6 +492,8 @@ void QFontDialogPrivate::closeCocoaFontPanel()
QT_MANGLE_NAMESPACE(QCocoaFontPanelDelegate) *theDelegate = static_cast<QT_MANGLE_NAMESPACE(QCocoaFontPanelDelegate) *>(delegate);
NSWindow *ourPanel = [theDelegate actualPanel];
[ourPanel close];
+ if ([theDelegate isAppModal])
+ [ourPanel release];
[theDelegate cleanUpAfterMyself];
[theDelegate release];
this->delegate = 0;
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 94e1a72..e52c970 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -5589,9 +5589,11 @@ void QGraphicsItemPrivate::clearSubFocus(QGraphicsItem *rootItem, QGraphicsItem
// Reset sub focus chain.
QGraphicsItem *parent = rootItem ? rootItem : q_ptr;
do {
- if (parent->d_ptr->subFocusItem != q_ptr || parent == stopItem)
+ if (parent->d_ptr->subFocusItem != q_ptr)
break;
parent->d_ptr->subFocusItem = 0;
+ if (parent == stopItem)
+ break;
parent->d_ptr->subFocusItemChange();
} while (!parent->isPanel() && (parent = parent->d_ptr->parent));
}
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 177b088..a7960ae 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -595,8 +595,15 @@ QAbstractItemView::QAbstractItemView(QAbstractItemViewPrivate &dd, QWidget *pare
*/
QAbstractItemView::~QAbstractItemView()
{
- // stop this timer here before ~QObject
- d_func()->delayedReset.stop();
+ Q_D(QAbstractItemView);
+ // stop these timers here before ~QObject
+ d->delayedReset.stop();
+ d->updateTimer.stop();
+ d->delayedEditing.stop();
+ d->delayedAutoScroll.stop();
+ d->autoScrollTimer.stop();
+ d->delayedLayout.stop();
+ d->fetchMoreTimer.stop();
}
/*!
diff --git a/src/gui/kernel/qcursor_s60.cpp b/src/gui/kernel/qcursor_s60.cpp
index 68e079e..6369f25 100644
--- a/src/gui/kernel/qcursor_s60.cpp
+++ b/src/gui/kernel/qcursor_s60.cpp
@@ -472,9 +472,9 @@ void qt_symbian_setWindowGroupCursor(const QCursor &cursor, RWindowTreeNode &nod
if (handle) {
RWsPointerCursor *pcurs = reinterpret_cast<RWsPointerCursor *> (handle);
node.SetCustomPointerCursor(*pcurs);
- }
+ } else
#ifdef Q_SYMBIAN_HAS_SYSTEM_CURSORS
- else {
+ {
TInt shape = qt_symbian_translate_cursor_shape(cursor.shape());
node.SetPointerCursor(shape);
}
diff --git a/src/gui/painting/qdrawhelper_ssse3.cpp b/src/gui/painting/qdrawhelper_ssse3.cpp
index fb5602e..01e0ccf 100644
--- a/src/gui/painting/qdrawhelper_ssse3.cpp
+++ b/src/gui/painting/qdrawhelper_ssse3.cpp
@@ -80,7 +80,7 @@ inline static void blend_pixel(quint32 &dst, const quint32 src)
// Basically blend src over dst with the const alpha defined as constAlphaVector.
-// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
+// nullVector, half, one, colorMask are constant across the whole image/texture, and should be defined as:
//const __m128i nullVector = _mm_set1_epi32(0);
//const __m128i half = _mm_set1_epi16(0x80);
//const __m128i one = _mm_set1_epi16(0xff);
diff --git a/src/gui/painting/qdrawingprimitive_sse2_p.h b/src/gui/painting/qdrawingprimitive_sse2_p.h
index d8f6bf5..a4614ad 100644
--- a/src/gui/painting/qdrawingprimitive_sse2_p.h
+++ b/src/gui/painting/qdrawingprimitive_sse2_p.h
@@ -129,7 +129,7 @@ QT_BEGIN_NAMESPACE
}
// Basically blend src over dst with the const alpha defined as constAlphaVector.
-// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
+// nullVector, half, one, colorMask are constant across the whole image/texture, and should be defined as:
//const __m128i nullVector = _mm_set1_epi32(0);
//const __m128i half = _mm_set1_epi16(0x80);
//const __m128i one = _mm_set1_epi16(0xff);
@@ -186,7 +186,7 @@ QT_BEGIN_NAMESPACE
}
// Basically blend src over dst with the const alpha defined as constAlphaVector.
-// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
+// nullVector, half, one, colorMask are constant across the whole image/texture, and should be defined as:
//const __m128i nullVector = _mm_set1_epi32(0);
//const __m128i half = _mm_set1_epi16(0x80);
//const __m128i one = _mm_set1_epi16(0xff);
diff --git a/src/gui/painting/qpaintengine.cpp b/src/gui/painting/qpaintengine.cpp
index a2d0337..58bba35 100644
--- a/src/gui/painting/qpaintengine.cpp
+++ b/src/gui/painting/qpaintengine.cpp
@@ -992,7 +992,7 @@ void QPaintEngine::setSystemRect(const QRect &rect)
/*!
\internal
- Retreives the rect for drawing within the backing store. This
+ Retrieves the rect for drawing within the backing store. This
function should ONLY be used by the backing store.
*/
QRect QPaintEngine::systemRect() const
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 4d06c9f..a5d647d 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -1815,7 +1815,7 @@ void QRasterPaintEngine::fill(const QVectorPath &path, const QBrush &brush)
ensureState();
if (s->flags.tx_noshear) {
d->initializeRasterizer(&s->brushData);
- // ### Is normalizing really nessesary here?
+ // ### Is normalizing really necessary here?
const qreal *p = path.points();
QRectF r = QRectF(p[0], p[1], p[2] - p[0], p[7] - p[1]).normalized();
if (!r.isEmpty()) {
@@ -3193,7 +3193,7 @@ void QRasterPaintEngine::drawGlyphsS60(const QPointF &p, const QTextItemInt &ti)
#endif // Q_OS_SYMBIAN && QT_NO_FREETYPE
/*!
- * Returns true if the rectangle is completly within the current clip
+ * Returns true if the rectangle is completely within the current clip
* state of the paint engine.
*/
bool QRasterPaintEnginePrivate::isUnclipped_normalized(const QRect &r) const
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index ab9707d..3f6586d 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -9085,7 +9085,7 @@ void QPainter::drawPixmapFragments(const PixmapFragment *fragments, int fragment
QPainter::drawPixmapFragments() function. The variables \a x, \a y, \a
width and \a height are used to calculate the target rectangle that is
drawn. \a x and \a y denotes the center of the target rectangle. The \a
- width and \a heigth in the target rectangle is scaled by the \a scaleX and
+ width and \a height in the target rectangle is scaled by the \a scaleX and
\a scaleY values. The resulting target rectangle is then rotated \a
rotation degrees around the \a x, \a y center point.
diff --git a/src/gui/painting/qprintengine_ps.cpp b/src/gui/painting/qprintengine_ps.cpp
index ca694ae..6fb2db5 100644
--- a/src/gui/painting/qprintengine_ps.cpp
+++ b/src/gui/painting/qprintengine_ps.cpp
@@ -908,7 +908,7 @@ void QPSPrintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, con
if (d->clipEnabled && d->allClipped)
return;
- // ### Optimise implementation!
+ // ### Optimize implementation!
qreal yPos = r.y();
qreal yOff = p.y();
while(yPos < r.y() + r.height()) {
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 56d2d19..040ca4f 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -3464,9 +3464,6 @@ bool QS60Style::eventFilter(QObject *object, QEvent *event)
if (d->m_pressedWidget)
d->m_pressedWidget->update();
-#ifdef Q_WS_S60
- d->touchFeedback(event, w);
-#endif
}
break;
}
diff --git a/src/gui/styles/qs60style_feedbackinterface_p.h b/src/gui/styles/qs60style_feedbackinterface_p.h
deleted file mode 100644
index 81fcdc3..0000000
--- a/src/gui/styles/qs60style_feedbackinterface_p.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QObject>
-
-class TactileFeedbackInterface : public QObject
-{
- public:
- virtual void touchFeedback(QEvent *event, const QWidget *widget) = 0;
-};
-
-Q_DECLARE_INTERFACE(TactileFeedbackInterface, "com.trolltech.Qt.TactileFeedbackInterface/1.0")
diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h
index db4285d..721fbd9 100644
--- a/src/gui/styles/qs60style_p.h
+++ b/src/gui/styles/qs60style_p.h
@@ -387,7 +387,6 @@ private: //data members
class QFocusFrame;
class QProgressBar;
class QS60StyleAnimation;
-class TactileFeedbackInterface;
// Private class
#ifdef Q_OS_SYMBIAN
@@ -576,8 +575,6 @@ public:
void stopAnimation(QS60StyleEnums::SkinParts animation);
static QS60StyleAnimation* animationDefinition(QS60StyleEnums::SkinParts part);
static void removeAnimations();
- //No support for tactile feedback in emulated style
- void touchFeedback(QEvent *event, const QWidget *widget);
#endif
@@ -632,7 +629,6 @@ private:
#ifdef Q_WS_S60
//list of progress bars having animation running
QList<QProgressBar *> m_bars;
- TactileFeedbackInterface *m_feedbackPlugin;
#endif
};
diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp
index 92f53ff..4e3f5da 100644
--- a/src/gui/styles/qs60style_s60.cpp
+++ b/src/gui/styles/qs60style_s60.cpp
@@ -50,10 +50,6 @@
#include "qapplication.h"
#include "qsettings.h"
-#include "qpluginloader.h"
-#include "qlibraryinfo.h"
-#include "private/qs60style_feedbackinterface_p.h"
-
#include <w32std.h>
#include <AknsConstants.h>
#include <aknconsts.h>
@@ -1221,25 +1217,13 @@ void QS60StylePrivate::setActiveLayout()
Q_GLOBAL_STATIC(QList<QS60StyleAnimation *>, m_animations)
-QS60StylePrivate::QS60StylePrivate() : m_feedbackPlugin(0)
+QS60StylePrivate::QS60StylePrivate()
{
//Animation defaults need to be created when style is instantiated
QS60StyleAnimation* progressBarAnimation = new QS60StyleAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim, 7, 100);
m_animations()->append(progressBarAnimation);
// No need to set active layout, if dynamic metrics API is available
setActiveLayout();
-
- //Tactile feedback plugin is only available for touch devices.
- if (isTouchSupported()) {
- QString pluginsPath = QLibraryInfo::location(QLibraryInfo::PluginsPath);
- pluginsPath += QLatin1String("/feedback/qtactilefeedback.dll");
-
- // Create plugin loader
- QPluginLoader pluginLoader(pluginsPath);
- // Load plugin and store pointer to the plugin implementation
- if (pluginLoader.load())
- m_feedbackPlugin = qobject_cast<TactileFeedbackInterface*>(pluginLoader.instance());
- }
}
void QS60StylePrivate::removeAnimations()
@@ -1529,12 +1513,6 @@ void QS60StylePrivate::stopAnimation(QS60StyleEnums::SkinParts animationPart)
}
}
-void QS60StylePrivate::touchFeedback(QEvent *event, const QWidget *widget)
-{
- if (m_feedbackPlugin)
- m_feedbackPlugin->touchFeedback(event, widget);
-}
-
QVariant QS60StyleModeSpecifics::themeDefinition(
QS60StyleEnums::ThemeDefinitions definition, QS60StyleEnums::SkinParts part)
{
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h
index fc26eef..c9dd5bc 100644
--- a/src/gui/text/qfontengine_p.h
+++ b/src/gui/text/qfontengine_p.h
@@ -180,7 +180,7 @@ public:
void addBitmapFontToPath(qreal x, qreal y, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags);
/**
* Create a qimage with the alpha values for the glyph.
- * Returns an image indexed_8 with index values ranging from 0=fully transparant to 255=opaque
+ * Returns an image indexed_8 with index values ranging from 0=fully transparent to 255=opaque
*/
virtual QImage alphaMapForGlyph(glyph_t);
virtual QImage alphaMapForGlyph(glyph_t, const QTransform &t);
diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp
index 0bdd20d..14d85b7 100644
--- a/src/gui/text/qtextdocument_p.cpp
+++ b/src/gui/text/qtextdocument_p.cpp
@@ -91,7 +91,7 @@ QT_BEGIN_NAMESPACE
END_OF_PARA/START_OF_FRAME/END_OF_FRAME (see below).
Lists are not in here, as they are treated specially. A list is just
- a collection of (not neccessarily connected) blocks, that share the
+ a collection of (not necessarily connected) blocks, that share the
same objectIndex() in the format that refers to the list format and
object.
diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp
index ff14490..a1bea12 100644
--- a/src/gui/text/qtextdocumentlayout.cpp
+++ b/src/gui/text/qtextdocumentlayout.cpp
@@ -327,7 +327,7 @@ static inline bool isLineSeparatorBlockAfterTable(const QTextBlock &block, const
/*
-Optimisation strategies:
+Optimization strategies:
HTML layout:
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 17d5fc1..18066fc 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -1879,7 +1879,7 @@ void QTextEngine::justify(const QScriptLine &line)
if (end == layoutData->string.length())
return; // no justification at end of paragraph
if (end && layoutData->items[findItem(end-1)].analysis.flags == QScriptAnalysis::LineOrParagraphSeparator)
- return; // no justification at the end of an explicitely separated line
+ return; // no justification at the end of an explicitly separated line
}
// justify line
diff --git a/src/gui/text/qtextlist.cpp b/src/gui/text/qtextlist.cpp
index a0ff520..b66766e 100644
--- a/src/gui/text/qtextlist.cpp
+++ b/src/gui/text/qtextlist.cpp
@@ -235,7 +235,7 @@ QString QTextList::itemText(const QTextBlock &blockIt) const
if (i % 4) {
// c[i] == 4|5|9|40|50|90|400|500|900
if ((i-2) % 4) {
- // c[i] == 4|9|40|90|400|900 => with substraction (IV, IX, XL, XC, ...)
+ // c[i] == 4|9|40|90|400|900 => with subtraction (IV, IX, XL, XC, ...)
numDigits = 2;
}
else {
diff --git a/src/gui/text/qzip.cpp b/src/gui/text/qzip.cpp
index 6f099a9..c449588 100644
--- a/src/gui/text/qzip.cpp
+++ b/src/gui/text/qzip.cpp
@@ -825,7 +825,7 @@ int QZipReader::count() const
/*!
Returns a FileInfo of an entry in the zipfile.
- The \a index is the index into the directoy listing of the zipfile.
+ The \a index is the index into the directory listing of the zipfile.
Returns an invalid FileInfo if \a index is out of boundaries.
\sa fileInfoList()
diff --git a/src/gui/widgets/qabstractscrollarea.cpp b/src/gui/widgets/qabstractscrollarea.cpp
index 30ce23b..4edbf2d 100644
--- a/src/gui/widgets/qabstractscrollarea.cpp
+++ b/src/gui/widgets/qabstractscrollarea.cpp
@@ -1012,7 +1012,7 @@ bool QAbstractScrollArea::event(QEvent *e)
You can reimplement this function in a subclass, but we recommend
using one of the specialized event handlers instead.
- Specialised handlers for viewport events are: paintEvent(),
+ Specialized handlers for viewport events are: paintEvent(),
mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(),
mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(),
dragLeaveEvent(), dropEvent(), contextMenuEvent(), and
diff --git a/src/gui/widgets/qabstractslider.cpp b/src/gui/widgets/qabstractslider.cpp
index a8b39f4..ee9a861 100644
--- a/src/gui/widgets/qabstractslider.cpp
+++ b/src/gui/widgets/qabstractslider.cpp
@@ -717,7 +717,7 @@ bool QAbstractSliderPrivate::scrollByDelta(Qt::Orientation orientation, Qt::Keyb
offset_accumulated += stepsToScrollF;
#ifndef Q_WS_MAC
- // Dont't scroll more than one page in any case:
+ // Don't scroll more than one page in any case:
stepsToScroll = qBound(-pageStep, int(offset_accumulated), pageStep);
#else
// Native UI-elements on Mac can scroll hundreds of lines at a time as
diff --git a/src/gui/widgets/qdatetimeedit.cpp b/src/gui/widgets/qdatetimeedit.cpp
index 8043747..4d52e38 100644
--- a/src/gui/widgets/qdatetimeedit.cpp
+++ b/src/gui/widgets/qdatetimeedit.cpp
@@ -902,7 +902,7 @@ void QDateTimeEdit::setDisplayFormat(const QString &format)
/*!
\property QDateTimeEdit::calendarPopup
- \brief the current calender pop-up showing mode.
+ \brief the current calendar pop-up showing mode.
\since 4.2
The calendar pop-up will be shown upon clicking the arrow button.
diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp
index b540e76..867e5a3 100644
--- a/src/gui/widgets/qdockarealayout.cpp
+++ b/src/gui/widgets/qdockarealayout.cpp
@@ -3163,7 +3163,7 @@ int QDockAreaLayout::separatorMove(const QList<int> &separator, const QPoint &or
}
#ifndef QT_NO_TABBAR
-// Sets the correct positions for the seperator widgets
+// Sets the correct positions for the separator widgets
// Allocates new sepearator widgets with getSeparatorWidget
void QDockAreaLayout::updateSeparatorWidgets() const
{
diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h
index 9cb77ba..37f3783 100644
--- a/src/gui/widgets/qdockarealayout_p.h
+++ b/src/gui/widgets/qdockarealayout_p.h
@@ -83,7 +83,7 @@ class QTabBar;
// which then has one QDockAreaLayoutInfo as a child. (QDockAreaLayoutItem::subInfo) or
// a widgetItem if this is a node of the tree (QDockAreaLayoutItem::widgetItem)
//
-// A path indetifies uniquely one object in this tree, the first number beeing the side and all the following
+// A path indetifies uniquely one object in this tree, the first number being the side and all the following
// indexes into the QDockAreaLayoutInfo::item_list.
struct QDockAreaLayoutItem
diff --git a/src/gui/widgets/qdockwidget_p.h b/src/gui/widgets/qdockwidget_p.h
index d272b2c..655e216 100644
--- a/src/gui/widgets/qdockwidget_p.h
+++ b/src/gui/widgets/qdockwidget_p.h
@@ -169,7 +169,7 @@ private:
QRect _titleArea;
};
-/* The size hints of a QDockWidget will depend on wether it is docked or not.
+/* The size hints of a QDockWidget will depend on whether it is docked or not.
This layout item always returns the size hints as if the dock widget was docked. */
class QDockWidgetItem : public QWidgetItem
diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h
index d881acf..dd8fb97 100644
--- a/src/gui/widgets/qlinecontrol_p.h
+++ b/src/gui/widgets/qlinecontrol_p.h
@@ -239,7 +239,7 @@ public:
#ifndef QT_NO_COMPLETER
QCompleter *completer() const { return m_completer; }
- /* Note that you must set the widget for the completer seperately */
+ /* Note that you must set the widget for the completer separately */
void setCompleter(const QCompleter *c) { m_completer = const_cast<QCompleter*>(c); }
void complete(int key);
#endif
diff --git a/src/gui/widgets/qscrollarea.cpp b/src/gui/widgets/qscrollarea.cpp
index 38e799e..64a0049 100644
--- a/src/gui/widgets/qscrollarea.cpp
+++ b/src/gui/widgets/qscrollarea.cpp
@@ -121,7 +121,7 @@ QT_BEGIN_NAMESPACE
If a scroll area is used to display the contents of a widget that
contains child widgets arranged in a layout, it is important to
- realise that the size policy of the layout will also determine the
+ realize that the size policy of the layout will also determine the
size of the widget. This is especially useful to know if you intend
to dynamically change the contents of the layout. In such cases,
setting the layout's \l{QLayout::sizeConstraint}{size constraint}
diff --git a/src/gui/widgets/qsplitter.cpp b/src/gui/widgets/qsplitter.cpp
index 88b7517..7775f39 100644
--- a/src/gui/widgets/qsplitter.cpp
+++ b/src/gui/widgets/qsplitter.cpp
@@ -124,7 +124,7 @@ QSplitterHandle::QSplitterHandle(Qt::Orientation orientation, QSplitter *parent)
/*!
Sets the orientation of the splitter handle to \a orientation.
- This is usually propogated from the QSplitter.
+ This is usually propagated from the QSplitter.
\sa QSplitter::setOrientation()
*/
diff --git a/src/plugins/s60/feedback/feedback.pro b/src/plugins/s60/feedback/feedback.pro
deleted file mode 100644
index 5e577ec..0000000
--- a/src/plugins/s60/feedback/feedback.pro
+++ /dev/null
@@ -1,18 +0,0 @@
-include(../../qpluginbase.pri)
-
-TARGET = qtactilefeedback$${QT_LIBINFIX}
-
-QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/s60/feedback
-
-INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-
-!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
- HEADERS += qtactileFeedback.h
- SOURCES += qtactileFeedback_s60.cpp
-
- LIBS += -ltouchfeedback
-}
-
-load(data_caging_paths)
-
-TARGET.UID3=0x200315B4
diff --git a/src/plugins/s60/feedback/qtactileFeedback.h b/src/plugins/s60/feedback/qtactileFeedback.h
deleted file mode 100644
index 7c4cc29..0000000
--- a/src/plugins/s60/feedback/qtactileFeedback.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QEvent>
-#include <QWidget>
-
-#include "private/qs60style_feedbackinterface_p.h"
-
-class QTactileFeedback : public TactileFeedbackInterface
-{
- Q_OBJECT
- Q_INTERFACES(TactileFeedbackInterface)
-
- public:
- void touchFeedback(QEvent *event, const QWidget *widget);
- };
diff --git a/src/plugins/s60/feedback/qtactileFeedback_s60.cpp b/src/plugins/s60/feedback/qtactileFeedback_s60.cpp
deleted file mode 100644
index c2f1d34..0000000
--- a/src/plugins/s60/feedback/qtactileFeedback_s60.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include <QObject>
-#include <QSlider>
-#include <QScrollBar>
-
-#include <QtCore/qplugin.h>
-#include "qtactileFeedback.h"
-
-#include <touchfeedback.h>
-
-void QTactileFeedback::touchFeedback(QEvent *event, const QWidget *widget)
-{
- //Lets share the global instance for touch feedback (you are NOT allowed to try and delete it!).
- MTouchFeedback* feedback = MTouchFeedback::Instance();
-
- //If the widget itself is not handling focus, try to use focusProxy widget.
- const QWidget *w = ((widget->focusPolicy() == Qt::NoFocus) && (widget->focusProxy())) ? widget->focusProxy() : widget;
-
- //Only give tactile feedback for enabled widgets that take focus.
- if (feedback && w && w->isEnabled() && w->isWidgetType() && w->isVisible()) {
- //Scrollbars are 'special' that they don't take focus (nor they have focusProxy), yet we'd like to have tactile feedback for them
- if (w->focusPolicy() == Qt::NoFocus)
- if (!qobject_cast<const QScrollBar *>(w))
- return;
-
- //Don't give tactile feedback for widgets that are outside topmost dialog.
- QWidget *dialog = QApplication::activeModalWidget();
- if (dialog) {
- QList<const QWidget *> allChildren = dialog->findChildren<const QWidget *>();
- if (!allChildren.contains(w))
- return;
- }
-
- //Widget specific tactile feedback.
- if (qobject_cast<const QSlider *>(w) || qobject_cast<const QScrollBar *>(w))
- feedback->InstantFeedback(ETouchFeedbackSensitive);
- else
- feedback->InstantFeedback(ETouchFeedbackBasic);
- }
-}
-
-Q_EXPORT_PLUGIN2("feedback", QTactileFeedback);
diff --git a/src/plugins/s60/s60.pro b/src/plugins/s60/s60.pro
index 1ddf326..c999fff 100644
--- a/src/plugins/s60/s60.pro
+++ b/src/plugins/s60/s60.pro
@@ -6,10 +6,6 @@ symbian {
SUBDIRS += 3_1 3_2
}
- !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
- SUBDIRS += feedback
- }
-
# 5.0 is used also for Symbian3 and later
SUBDIRS += 5_0
} \ No newline at end of file
diff --git a/src/s60installs/qt.iby b/src/s60installs/qt.iby
index 2b3be0a..4afbf05 100644
--- a/src/s60installs/qt.iby
+++ b/src/s60installs/qt.iby
@@ -60,8 +60,6 @@ file=ABI_DIR\BUILD_DIR\qsymbianbearer.dll SHARED_LIB_DIR\qsymbianbearer.dll
// so don't bother including those plugins
file=ABI_DIR\BUILD_DIR\qts60plugin_5_0.dll SHARED_LIB_DIR\qts60plugin_5_0.dll
-file=ABI_DIR\BUILD_DIR\qtactilefeedback.dll SHARED_LIB_DIR\qtactilefeedback.dll
-
S60_APP_RESOURCE(s60main)
// imageformats stubs
@@ -107,9 +105,6 @@ data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplug
// bearer stub
data=\epoc32\data\z\resource\qt\plugins\bearer\qsymbianbearer.qtplugin resource\qt\plugins\bearer\qsymbianbearer.qtplugin
-// feedback
-data=\epoc32\data\z\resource\qt\plugins\feedback\qtactilefeedback.qtplugin resource\qt\plugins\feedback\qtactilefeedback.qtplugin
-
// Stub sis file
data=ZSYSTEM\install\qt_stub.sis System\Install\qt_stub.sis
data=ZSYSTEM\install\qtwebkit_stub.sis System\Install\qtwebkit_stub.sis
diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro
index 5a435cd..be7ed97 100644
--- a/src/s60installs/s60installs.pro
+++ b/src/s60installs/s60installs.pro
@@ -87,12 +87,6 @@ symbian: {
DEPLOYMENT += bearer_plugin
}
- !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
- feedback_plugin.sources = $$QT_BUILD_TREE/plugins/s60/feedback/qtactilefeedback$${QT_LIBINFIX}.dll
- feedback_plugin.path = c:$$QT_PLUGINS_BASE_DIR/feedback
- DEPLOYMENT += feedback_plugin
- }
-
qtlibraries.pkg_postrules += qts60plugindeployment
qtlibraries.path = c:/sys/bin
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 0b29410..5daafd8 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -65,6 +65,7 @@
#include <QInputContext>
#include <QPushButton>
#include <QLineEdit>
+#include <QGraphicsLinearLayout>
#include "../../shared/util.h"
@@ -469,6 +470,7 @@ private slots:
void itemDiesDuringDraggingOperation();
void QTBUG_12112_focusItem();
void QTBUG_13473_sceneposchange();
+ void QTBUG_16374_crashInDestructor();
private:
QList<QGraphicsItem *> paintedItems;
@@ -11077,5 +11079,56 @@ void tst_QGraphicsItem::QTBUG_13473_sceneposchange()
QCOMPARE(child->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 2);
}
+class MyGraphicsWidget : public QGraphicsWidget {
+Q_OBJECT
+public:
+ MyGraphicsWidget()
+ : QGraphicsWidget(0)
+ {
+ QGraphicsLinearLayout *lay = new QGraphicsLinearLayout(Qt::Vertical);
+ QLatin1String wiseWords("AZ BUKI VEDI");
+ QString sentence(wiseWords);
+ QStringList words = sentence.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < words.count(); ++i) {
+ QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget(this);
+ QLabel *label = new QLabel(words.at(i));
+ proxy->setWidget(label);
+ proxy->setFocusPolicy(Qt::StrongFocus);
+ proxy->setFlag(QGraphicsItem::ItemAcceptsInputMethod, true);
+ if (i%2 == 0)
+ proxy->setVisible(false);
+ proxy->setFocus();
+ lay->addItem(proxy);
+ }
+ setLayout(lay);
+ }
+
+};
+
+class MyWidgetWindow : public QGraphicsWidget
+{
+public:
+ MyWidgetWindow()
+ : QGraphicsWidget(0, Qt::Window)
+ {
+ QGraphicsLinearLayout *lay = new QGraphicsLinearLayout(Qt::Vertical);
+ MyGraphicsWidget *widget = new MyGraphicsWidget();
+ lay->addItem(widget);
+ setLayout(lay);
+ }
+};
+
+void tst_QGraphicsItem::QTBUG_16374_crashInDestructor()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+
+ MyWidgetWindow win;
+ scene.addItem(&win);
+
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+}
+
QTEST_MAIN(tst_QGraphicsItem)
#include "tst_qgraphicsitem.moc"