From fb5361e27e2c48d52c2fe26fc48f8ef1438755f5 Mon Sep 17 00:00:00 2001 From: Frans Englich Date: Tue, 17 Nov 2009 17:19:52 +0100 Subject: Incorporate feedback by Espen. Reviewed-by: Espen Riskedal --- doc/src/platforms/symbian-support.qdoc | 57 ++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/doc/src/platforms/symbian-support.qdoc b/doc/src/platforms/symbian-support.qdoc index 9362aea..916eda5 100644 --- a/doc/src/platforms/symbian-support.qdoc +++ b/doc/src/platforms/symbian-support.qdoc @@ -52,8 +52,9 @@ \section1 Source Compatibility Qt for Symbian provides the same level of source compatibility guarantee as - given for other platforms.  That is, a program which compiles against a - given version of Qt for Symbian will also compile against all future versions. + given for other platforms.  That is, a program which compiles against a given + version of Qt for Symbian will also compile against all future versions of the + same major release. \section1 Binary Compatibility @@ -62,32 +63,37 @@ the Qt 4.x series. However, due to the fact that Symbian support is newly added in 4.6.0, it is possible that minor corrections to the behavior and to the ABI in 4.6.1 will be required in order to ensure - compatibility going forward. - + compatibility going forward. If we break the binary compatiblity promise, + we will document such changes in the 4.6.1 release. \section1 Supported Devices - Qt should work on all phones which run one of the following versions of S60: + Qt should generally work on any device which runs one of the following + versions of Symbian: \table - \header \o S60 version - \row \o 3.1 - \row \o 3.2 - \row \o 5.0 + \header \o Symbian Version + \row \o S60 3.1 + \row \o S60 3.2 + \row \o S60 5.0 (Symbian ^1) \endtable Qt has received Tier 1 testing on the following phone models: \table \header \o Phone + \row \o Nokia 5800 \row \o Nokia E71 \row \o Nokia E72 - \row \o Nokia 5800 + \row \o Nokia N78 + \row \o Nokia N95 + \row \o Nokia N97 + \row \o Samsung i8910 \endtable \section1 Supported Functionality - The following technologies and classes are not supported: + The following technologies and classes are not currently supported: \table \header \o Technology @@ -95,29 +101,32 @@ \row \o QtConcurrent \o \row \o QtDBus - \o Will never be supported. + \o No current plans to support this feature. \row \o QtOpenGL - \o Support for OpenGL ES may arrive in a future release. + \o Support for OpenGL ES planned for a future release. \row \o Printing support - \o - \row \o Backend for QtMultimedia - \o Although the module itself is supported, no backend for Symbian - is available. However, there is a backend available for Phonon. + \o No current plans to support this feature. \row \o Qt3Support - \o Will never be supported. - \row \o QtSql: SQLite as driver - \o The only driver supported is SQLite. - \row \o Developer Tools - \o Developer tools such as Designer, Assistant and Creator do not - run on Symbian OS. + \o No current plans to support this feature. \endtable + The following technologies have limited support: + + \table + \header \o Technology + \o Note + \row \o QtSql + \o The only driver supported is SQLite. + \row \o QtMultimedia + \o Although the module itself is supported, no backend for Symbian + is available. However, there is a backend available for Phonon. + \endtable \section1 Known Issues Known issues can be found by visiting the \l{http://qt.gitorious.org/qt/pages/Qt460KnownIssues}{wiki page} with an - up-to-date list of known issues, or by + up-to-date list of known issues, and the list of bugs can be found by \l{http://bugreports.qt.nokia.com/browse/QTBUG/component/19171}{browsing} the S60 component in Qt's public task tracker, located at \l{http://bugreports.qt.nokia.com/}{http://bugreports.qt.nokia.com/}. -- cgit v0.12 From 330d0bb75af1ffc534015d63af3dcd81ca971ce1 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 17 Nov 2009 16:45:08 +0100 Subject: QS60Style returns hint QFormLayout::WrapLongRows To get a mobile friendly 1-column layout, we can set QFormLayout's rowWrapPolicy. S60Style should return QFormLayout::WrapLongRows as the SH_FormLayoutWrapPolicy styleHint. Reviewed-by: Jason Barron --- src/gui/kernel/qformlayout.cpp | 9 +++++---- src/gui/styles/qs60style.cpp | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/gui/kernel/qformlayout.cpp b/src/gui/kernel/qformlayout.cpp index 3e5dadc..33f5489 100644 --- a/src/gui/kernel/qformlayout.cpp +++ b/src/gui/kernel/qformlayout.cpp @@ -1124,14 +1124,15 @@ QStyle* QFormLayoutPrivate::getStyle() const \value DontWrapRows Fields are always laid out next to their label. This is - the default policy for all styles except Qt Extended styles. + the default policy for all styles except Qt Extended styles + and QS60Style. \value WrapLongRows Labels are given enough horizontal space to fit the widest label, and the rest of the space is given to the fields. If the minimum size of a field pair is wider than the available space, the field is wrapped to the next line. This is the default policy for - Qt Extended styles. + Qt Extended styles and and QS60Style. \value WrapAllRows Fields are always laid out below their label. @@ -1720,8 +1721,8 @@ QFormLayout::FieldGrowthPolicy QFormLayout::fieldGrowthPolicy() const \brief the way in which the form's rows wrap The default value depends on the widget or application style. For - Qt Extended styles, the default is WrapLongRows; for the other styles, - the default is DontWrapRows. + Qt Extended styles and QS60Style, the default is WrapLongRows; + for the other styles, the default is DontWrapRows. If you want to display each label above its associated field (instead of next to it), set this property to WrapAllRows. diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 467cc84..b5c0d4f 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -67,6 +67,7 @@ #include "qtoolbar.h" #include "qtoolbutton.h" #include "qfocusframe.h" +#include "qformlayout.h" #include "private/qtoolbarextension_p.h" #include "private/qcombobox_p.h" @@ -2401,6 +2402,9 @@ int QS60Style::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w case SH_RequestSoftwareInputPanel: retValue = RSIP_OnMouseClickAndAlreadyFocused; break; + case SH_FormLayoutWrapPolicy: + retValue = QFormLayout::WrapLongRows; + break; default: break; } -- cgit v0.12 From d95d77d40ad6ef82b9c043307fa72969c369938b Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 17 Nov 2009 16:46:28 +0100 Subject: showMaximized() lets us see SoftKeys The current implementation would not show Softkeys as long as we show a widget via showFullScreen. Therefore, on Symbian we will for now use showMaximized Reviewed-By: Jason Barron --- examples/sql/drilldown/view.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/sql/drilldown/view.cpp b/examples/sql/drilldown/view.cpp index ff4c511..abc31c9 100644 --- a/examples/sql/drilldown/view.cpp +++ b/examples/sql/drilldown/view.cpp @@ -134,7 +134,7 @@ void View::showInformation(ImageItem *image) #ifndef Q_OS_SYMBIAN window->show(); #else - window->showFullScreen(); + window->showMaximized(); #endif } else { InformationWindow *window; @@ -147,7 +147,7 @@ void View::showInformation(ImageItem *image) window->move(pos() + QPoint(20, 40)); window->show(); #else - window->showFullScreen(); + window->showMaximized(); #endif informationWindows.append(window); } -- cgit v0.12 From 2fb8eee9324dbaed07a1dbab4702f4ffa2e356b1 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 17 Nov 2009 16:48:12 +0100 Subject: Fix DrillDown for moblie devices. 1) Use QFormLayout instead of QGridLayout 2) Remove Symbian specific size hack 3) Give button box a parent, so that it's buttons get properly added as the dialog's softkeys. 4) Add submitButton with a positive button role Task-number: QTBUG-5685 Reviewed-by: Jason Barron --- examples/sql/drilldown/informationwindow.cpp | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/examples/sql/drilldown/informationwindow.cpp b/examples/sql/drilldown/informationwindow.cpp index 08fe2ac..a440aad 100644 --- a/examples/sql/drilldown/informationwindow.cpp +++ b/examples/sql/drilldown/informationwindow.cpp @@ -83,16 +83,15 @@ InformationWindow::InformationWindow(int id, QSqlRelationalTableModel *offices, connect(imageFileEditor, SIGNAL(currentIndexChanged(int)), this, SLOT(enableButtons())); - QGridLayout *layout = new QGridLayout; - layout->addWidget(locationLabel, 0, 0, Qt::AlignLeft | Qt::AlignTop); - layout->addWidget(countryLabel, 1, 0, Qt::AlignLeft | Qt::AlignTop); - layout->addWidget(imageFileLabel, 2, 0, Qt::AlignLeft | Qt::AlignTop); - layout->addWidget(descriptionLabel, 3, 0, Qt::AlignLeft | Qt::AlignTop); - layout->addWidget(locationText, 0, 1); - layout->addWidget(countryText, 1, 1); - layout->addWidget(imageFileEditor, 2, 1); - layout->addWidget(descriptionEditor, 3, 1); - layout->addWidget(buttonBox, 4, 0, 1, 2); + QFormLayout *formLayout = new QFormLayout; + formLayout->addRow(locationLabel, locationText); + formLayout->addRow(countryLabel, countryText); + formLayout->addRow(imageFileLabel, imageFileEditor); + formLayout->addRow(descriptionLabel, descriptionEditor); + + QVBoxLayout *layout = new QVBoxLayout; + layout->addLayout(formLayout); + layout->addWidget(buttonBox); setLayout(layout); locationId = id; @@ -101,9 +100,6 @@ InformationWindow::InformationWindow(int id, QSqlRelationalTableModel *offices, setWindowFlags(Qt::Window); enableButtons(false); setWindowTitle(tr("Office: %1").arg(locationText->text())); -#ifndef Q_OS_SYMBIAN - resize(320, sizeHint().height()); -#endif } //! [4] @@ -154,8 +150,8 @@ void InformationWindow::createButtons() //! [8] //! [9] - buttonBox = new QDialogButtonBox; - buttonBox->addButton(submitButton, QDialogButtonBox::ResetRole); + buttonBox = new QDialogButtonBox(this); + buttonBox->addButton(submitButton, QDialogButtonBox::AcceptRole); buttonBox->addButton(revertButton, QDialogButtonBox::ResetRole); buttonBox->addButton(closeButton, QDialogButtonBox::RejectRole); } -- cgit v0.12 From e11e25b779c346e67c2f00acb8ecdcf022e32c8d Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 12 Nov 2009 00:35:31 +0100 Subject: Build without QT_KEYPAD_NAVIGATION There is actually not much of a point to run a keypadnavigation test without QT_KEYPAD_NAVIGATION being enabled. But let's at least build the app. Reviewed-By: TrustMe --- tests/manual/keypadnavigation/keypadnavigation.ui | 4 ++-- tests/manual/keypadnavigation/main.cpp | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/manual/keypadnavigation/keypadnavigation.ui b/tests/manual/keypadnavigation/keypadnavigation.ui index 039889b..13e257d 100644 --- a/tests/manual/keypadnavigation/keypadnavigation.ui +++ b/tests/manual/keypadnavigation/keypadnavigation.ui @@ -1155,7 +1155,7 @@ As a reward you can try out the QDial, below. - + Navigation mode @@ -1166,7 +1166,7 @@ As a reward you can try out the QDial, below. - + diff --git a/tests/manual/keypadnavigation/main.cpp b/tests/manual/keypadnavigation/main.cpp index d1cc8a7..84b3d78 100644 --- a/tests/manual/keypadnavigation/main.cpp +++ b/tests/manual/keypadnavigation/main.cpp @@ -70,6 +70,7 @@ public: } connect(&m_layoutSignalMapper, SIGNAL(mapped(QWidget*)), ui->m_stackWidget, SLOT(setCurrentWidget(QWidget*))); +#ifdef QT_KEYPAD_NAVIGATION const struct { QObject *action; Qt::NavigationMode mode; @@ -85,6 +86,9 @@ public: m_modeSignalMapper.setMapping(modeMappings[i].action, int(modeMappings[i].mode)); } connect(&m_modeSignalMapper, SIGNAL(mapped(int)), SLOT(setNavigationMode(int))); +#else // QT_KEYPAD_NAVIGATION + ui->m_menuNavigation_mode->deleteLater(); +#endif // QT_KEYPAD_NAVIGATION const struct { QObject *button; @@ -112,10 +116,12 @@ public: } protected slots: +#ifdef QT_KEYPAD_NAVIGATION void setNavigationMode(int mode) { QApplication::setNavigationMode(Qt::NavigationMode(mode)); } +#endif // QT_KEYPAD_NAVIGATION void openDialog(int dialog) { @@ -163,7 +169,9 @@ private: Ui_KeypadNavigation *ui; QSignalMapper m_layoutSignalMapper; +#ifdef QT_KEYPAD_NAVIGATION QSignalMapper m_modeSignalMapper; +#endif // QT_KEYPAD_NAVIGATION QSignalMapper m_dialogSignalMapper; }; -- cgit v0.12 From 24946ec561ccbbe05f95288cf3fb92d0a772b79a Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 12 Nov 2009 00:53:52 +0100 Subject: Put the dialog buttons into a scrollarea. Now, they fit into a smallscreen. Reviewed-By: TrustMe --- tests/manual/keypadnavigation/keypadnavigation.ui | 153 +++++++++++++--------- 1 file changed, 89 insertions(+), 64 deletions(-) diff --git a/tests/manual/keypadnavigation/keypadnavigation.ui b/tests/manual/keypadnavigation/keypadnavigation.ui index 13e257d..8b456d9 100644 --- a/tests/manual/keypadnavigation/keypadnavigation.ui +++ b/tests/manual/keypadnavigation/keypadnavigation.ui @@ -1060,75 +1060,100 @@ As a reward you can try out the QDial, below. + + 0 + - - - getOpenFileName() - - - - - - - getSaveFileName() - - - - - - - getExistingDirectory() - - - - - - - getColor() - - - - - - - getFont() - - - - - - - question() - - - - - - - aboutQt() + + + QFrame::NoFrame - - - - - - getItem() + + true + + + + 0 + 0 + 264 + 356 + + + + + + + getOpenFileName() + + + + + + + getSaveFileName() + + + + + + + getExistingDirectory() + + + + + + + getColor() + + + + + + + getFont() + + + + + + + question() + + + + + + + aboutQt() + + + + + + + getItem() + + + + + + + Qt::Vertical + + + + 20 + 103 + + + + + + - - - - Qt::Vertical - - - - 20 - 104 - - - - -- cgit v0.12 From 31d29b227a7609ab0dadca4244cafec919264ba8 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 18 Nov 2009 10:07:17 +0200 Subject: Removed Browser demo from Symbian builds Browser demo isn't currently compiling for Symbian GCCE builds because ARMV5 built static uitools.lib apparently isn't compatible with linking into GCCE application. Removed the browser from Symbian builds as a hotfix for 4.6.0. Task-number: QTBUG-5692 Reviewed-by: Janne Anttila --- demos/demos.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/demos.pro b/demos/demos.pro index 5e400ea..a943bfd 100644 --- a/demos/demos.pro +++ b/demos/demos.pro @@ -37,7 +37,7 @@ wince*: SUBDIRS += demos_sqlbrowser } } contains(QT_CONFIG, phonon):!static:SUBDIRS += demos_mediaplayer -contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS += demos_browser +contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):!symbian:SUBDIRS += demos_browser # install sources.files = README *.pro -- cgit v0.12