summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2009-11-25 08:44:57 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-11-25 08:44:57 (GMT)
commit426e3daa9ebca56650607189ce77aa98545805aa (patch)
tree788248fb98deca9e2b00f64973cf21e39c8f962c
parentad87a761207ac1155c55773270bb6583677ccd30 (diff)
parentb2a87b03bdad9f3f038ce6d19db71eb6074842e2 (diff)
downloadQt-426e3daa9ebca56650607189ce77aa98545805aa.zip
Qt-426e3daa9ebca56650607189ce77aa98545805aa.tar.gz
Qt-426e3daa9ebca56650607189ce77aa98545805aa.tar.bz2
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6
-rw-r--r--INSTALL14
-rw-r--r--dist/README4
-rw-r--r--doc/src/getting-started/installation.qdoc7
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc4
-rw-r--r--src/corelib/io/qfsfileengine_unix.cpp2
-rw-r--r--src/gui/widgets/qdialogbuttonbox.cpp24
-rw-r--r--src/gui/widgets/qmdiarea.cpp6
-rw-r--r--tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp60
8 files changed, 93 insertions, 28 deletions
diff --git a/INSTALL b/INSTALL
index b62f21d..7279f06 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,14 +1,14 @@
INSTALLING Qt Source Package Version %VERSION%.
For full installation instructions for each supported platform, please
-see http://qt.nokia.com/doc/%VERSION%/installation.html, the file
+see http://qt.nokia.com/doc/%SHORTVERSION%/installation.html, the file
doc/html/installation.html in this package, or follow one of the following
links:
-Embedded Linux: http://qt.nokia.com/doc/%VERSION%/qt-embedded-install.html
-Mac OS X: http://qt.nokia.com/doc/%VERSION%/install-mac.html
-Windows: http://qt.nokia.com/doc/%VERSION%/install-win.html
-Windows CE: http://qt.nokia.com/doc/%VERSION%/install-wince.html
-X11 Platforms: http://qt.nokia.com/doc/%VERSION%/install-x11.html
-Symbian Platform: http://qt.nokia.com/doc/%VERSION%/install-symbian.html
+Embedded Linux: http://qt.nokia.com/doc/%SHORTVERSION%/qt-embedded-install.html
+Mac OS X: http://qt.nokia.com/doc/%SHORTVERSION%/install-mac.html
+Windows: http://qt.nokia.com/doc/%SHORTVERSION%/install-win.html
+Windows CE: http://qt.nokia.com/doc/%SHORTVERSION%/install-wince.html
+X11 Platforms: http://qt.nokia.com/doc/%SHORTVERSION%/install-x11.html
+Symbian Platform: http://qt.nokia.com/doc/%SHORTVERSION%/install-symbian.html
diff --git a/dist/README b/dist/README
index 529d2bd..e7dfb19 100644
--- a/dist/README
+++ b/dist/README
@@ -52,7 +52,7 @@ documentation is available at http://qt.nokia.com/doc/.
SUPPORTED PLATFORMS
For a complete list of supported platforms, see
-http://qt.nokia.com/doc/%VERSION%/supported-platforms.html.
+http://qt.nokia.com/doc/%SHORTVERSION%/supported-platforms.html.
COMMERCIAL EDITIONS
@@ -65,7 +65,7 @@ the QtCore, QtGui (except QGraphicsView), QtTest, QtDBus and
Qt3Support modules.
For a full listing of the contents of each module, please refer to
-http://qt.nokia.com/doc/%VERSION%/modules.html
+http://qt.nokia.com/doc/%SHORTVERSION%/modules.html
HOW TO REPORT A BUG
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index 1a5cd99..057629d 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -599,6 +599,13 @@ If you are using pre-built binaries, follow the instructions given in the
emulator. This is done by locating the Carbide.c++ submenu on the Start
menu, and choosing "Configure environment for WINSCW command line".
+ If you are planning to use abld (the default build system that comes with the S60 SDK)
+ to build Qt, you will also need to set the following environment variable:
+
+ \snippet doc/src/snippets/code/doc_src_installation.qdoc 33
+
+ This is not necessary for other applications, only when building Qt.
+
\o Configure Qt
To configure Qt for the Symbian platform, do:
diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc
index 3563a64..50e29d0 100644
--- a/doc/src/snippets/code/doc_src_installation.qdoc
+++ b/doc/src/snippets/code/doc_src_installation.qdoc
@@ -216,3 +216,7 @@ bldmake bldfiles
abld build winscw udeb
abld build gcce urel
//! [32]
+
+//! [33]
+SYMBIANBUILD_DEPENDENCYOFF=1
+//! [33]
diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp
index 35737b3..8cbf6a3 100644
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
@@ -1245,7 +1245,7 @@ uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFla
}
if (offset < 0 || offset != qint64(QT_OFF_T(offset))
- || size < 0 || size > qint64(size_t(-1))) {
+ || size < 0 || quint64(size) > quint64(size_t(-1))) {
q->setError(QFile::UnspecifiedError, qt_error_string(int(EINVAL)));
return 0;
}
diff --git a/src/gui/widgets/qdialogbuttonbox.cpp b/src/gui/widgets/qdialogbuttonbox.cpp
index 2ee5751..0e859f1 100644
--- a/src/gui/widgets/qdialogbuttonbox.cpp
+++ b/src/gui/widgets/qdialogbuttonbox.cpp
@@ -1215,6 +1215,30 @@ bool QDialogButtonBox::event(QEvent *event)
}else if (event->type() == QEvent::LanguageChange) {
d->retranslateStrings();
}
+#ifdef QT_SOFTKEYS_ENABLED
+ else if (event->type() == QEvent::ParentChange) {
+ QWidget *dialog = 0;
+ QWidget *p = this;
+ while (p && !p->isWindow()) {
+ p = p->parentWidget();
+ if ((dialog = qobject_cast<QDialog *>(p)))
+ break;
+ }
+
+ // If the parent changes, then move the softkeys
+ for (QHash<QAbstractButton *, QAction *>::const_iterator it = d->softKeyActions.constBegin();
+ it != d->softKeyActions.constEnd(); ++it) {
+ QAction *current = it.value();
+ QList<QWidget *> widgets = current->associatedWidgets();
+ foreach (QWidget *w, widgets)
+ w->removeAction(current);
+ if (dialog)
+ dialog->addAction(current);
+ else
+ addAction(current);
+ }
+ }
+#endif
return QWidget::event(event);
}
diff --git a/src/gui/widgets/qmdiarea.cpp b/src/gui/widgets/qmdiarea.cpp
index b3288c3..f3dbe34 100644
--- a/src/gui/widgets/qmdiarea.cpp
+++ b/src/gui/widgets/qmdiarea.cpp
@@ -1947,8 +1947,10 @@ QMdiSubWindow *QMdiArea::addSubWindow(QWidget *widget, Qt::WindowFlags windowFla
/*!
Removes \a widget from the MDI area. The \a widget must be
either a QMdiSubWindow or a widget that is the internal widget of
- a subwindow. Note that the subwindow is not deleted by QMdiArea
- and that its parent is set to 0.
+ a subwindow. Note \a widget is never actually deleted by QMdiArea.
+ If a QMdiSubWindow is passed in its parent is set to 0 and it is
+ removed, but if an internal widget is passed in the child widget
+ is set to 0 but the QMdiSubWindow is not removed.
\sa addSubWindow()
*/
diff --git a/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp b/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
index 936ebf7..2c49fc8 100644
--- a/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
+++ b/tests/auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
@@ -111,6 +111,9 @@ private slots:
void testDefaultButton_data();
void testDefaultButton();
void testS60SoftKeys();
+#ifdef QT_SOFTKEYS_ENABLED
+ void testSoftKeyReparenting();
+#endif
void task191642_default();
private:
@@ -715,6 +718,17 @@ void tst_QDialogButtonBox::testDefaultButton_data()
QTest::newRow("third accept explicit after add") << 0 << 2 << 2;
}
+static int softKeyCount(QWidget *widget)
+{
+ int softkeyCount = 0;
+ QList<QAction *> actions = widget->actions();
+ foreach (QAction *action, actions) {
+ if (action->softKeyRole() != QAction::NoSoftKey)
+ softkeyCount++;
+ }
+ return softkeyCount;
+}
+
void tst_QDialogButtonBox::testS60SoftKeys()
{
#ifdef Q_WS_S60
@@ -722,33 +736,47 @@ void tst_QDialogButtonBox::testS60SoftKeys()
QDialogButtonBox buttonBox(&dialog);
buttonBox.setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
dialog.show();
-
- int softkeyCount = 0;
- QList<QAction *> actions = dialog.actions();
- foreach (QAction *action, actions) {
- if (action->softKeyRole() != QAction::NoSoftKey)
- softkeyCount++;
- }
- QCOMPARE( softkeyCount, 2);
+
+ QCOMPARE( softKeyCount(&dialog), 2);
QDialog dialog2(0);
QDialogButtonBox buttonBox2(&dialog2);
buttonBox2.setStandardButtons(QDialogButtonBox::Cancel);
dialog2.show();
- int softkeyCount2 = 0;
- QList<QAction *> actions2 = dialog2.actions();
- foreach (QAction *action, actions2) {
- if (action->softKeyRole() != QAction::NoSoftKey)
- softkeyCount2++;
- }
- QCOMPARE( softkeyCount2, 1);
-
+ QCOMPARE( softKeyCount(&dialog2), 1);
+
#else
QSKIP("S60-specific test", SkipAll );
#endif
}
+#ifdef QT_SOFTKEYS_ENABLED
+void tst_QDialogButtonBox::testSoftKeyReparenting()
+{
+ QDialog dialog;
+ QDialogButtonBox *buttonBox = new QDialogButtonBox;
+ buttonBox->addButton(QDialogButtonBox::Ok);
+ buttonBox->addButton(QDialogButtonBox::Cancel);
+
+ QCOMPARE(softKeyCount(&dialog), 0);
+ QCOMPARE(softKeyCount(buttonBox), 2);
+
+ // Were the softkeys re-parented correctly?
+ dialog.setLayout(new QVBoxLayout);
+ dialog.layout()->addWidget(buttonBox);
+ QCOMPARE(softKeyCount(&dialog), 2);
+ QCOMPARE(softKeyCount(buttonBox), 0);
+
+ // Softkeys are only added to QDialog, not QWidget
+ QWidget *nested = new QWidget;
+ nested->setLayout(new QVBoxLayout);
+ nested->layout()->addWidget(buttonBox);
+ QCOMPARE(softKeyCount(nested), 0);
+ QCOMPARE(softKeyCount(buttonBox), 2);
+}
+#endif
+
void tst_QDialogButtonBox::testDefaultButton()
{
QFETCH(int, whenToSetDefault);