From eeb43433043dbcaa38177438cb6cba203fb01c96 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Mon, 4 Apr 2011 11:39:58 +0300 Subject: Native dialog softkeys are covered by QApplication softkeys Dialog softkeys are covered by Qt Application's Softkeys Updating softkeys while showing a native dialog, pushes Qt application CBA on top of dialog CBA. Therefore, native dialog can not be dismissed. As a workaround, when gaining focus to a window, do not update application softkeys, if there is a native dialog shown. Task-number: QTBUG-18486 Reviewed-by: mread --- src/gui/kernel/qapplication_s60.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 1856ead..21b50b6 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -2198,7 +2198,8 @@ int QApplicationPrivate::symbianProcessWsEvent(const QSymbianEvent *symbianEvent } #endif #ifdef QT_SOFTKEYS_ENABLED - QSoftKeyManager::updateSoftKeys(); + if (!CEikonEnv::Static()->EikAppUi()->IsDisplayingMenuOrDialog()) + QSoftKeyManager::updateSoftKeys(); #endif break; case EEventFocusLost: -- cgit v0.12 From e708c337a7856195bb567746f028112fdb4de515 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Mon, 4 Apr 2011 11:42:29 +0300 Subject: QApplication does not define flag for "single touch" Qt application was previously not setting a native framework's flag to indicate that is supports "single touch" (i.e. activating an item would only need one tap, instead of one tap to highlight and another to activate) for Sym^3. This was causing the native dialogs launched from within the application to behave as Sym^1 dialogs. As a fix, set the native flag when running Qt in Sym^3. Task-number: QT-4569 Reviewed-by: Jani Hautakangas --- src/gui/s60framework/qs60mainappui.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp index b5b8b81..4842bc5 100644 --- a/src/gui/s60framework/qs60mainappui.cpp +++ b/src/gui/s60framework/qs60mainappui.cpp @@ -61,6 +61,7 @@ //Animated wallpapers in Qt applications are not supported. const TInt KAknDisableAnimationBackground = 0x02000000; +const TInt KAknSingleClickCompatible = 0x01000000; QT_BEGIN_NAMESPACE @@ -117,8 +118,12 @@ void QS60MainAppUi::ConstructL() // After 5th Edition S60, native side supports animated wallpapers. // However, there is no support for that feature on Qt side, so indicate to // native UI framework that this application will not support background animations. - if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0) - flags |= KAknDisableAnimationBackground; + + // Also, add support for single touch for post 5th edition platforms. + // This has only impact when launching native dialogs/menus from inside QApplication. + if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0) { + flags |= (KAknDisableAnimationBackground | KAknSingleClickCompatible); + } #endif BaseConstructL(flags); } -- cgit v0.12 From ae99d577f788d57a3f4a37ee300872556c57b77c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 4 Apr 2011 11:58:24 +0300 Subject: Do not add project path to SYMBIAN_MATCHED_TRANSLATIONS if not needed If the path to translation file is already absolute, do not add the $$_PRO_FILE_PWD_ to it in symbian.conf Task-number: QT-4842 Reviewed-by: axis --- mkspecs/common/symbian/symbian.conf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 117f332..e35786b 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -241,9 +241,12 @@ defineTest(matchSymbianLanguages) { language = $$replace(translation, "^(.*/)?[^/]+_(([^_]{2,3}_)?[^_]{2,3})\\.ts$", \\2) !contains(HANDLED_LANGUAGES, $$language) { HANDLED_LANGUAGES += $$language + # Make sure translation path is absolute or shadow builds will not work + !contains(translation, "(^/|^\\\\|^.:).*"): translation = $$_PRO_FILE_PWD_/$$translation + contains(SYMBIAN_SUPPORTED_LANGUAGES, $$language) { SYMBIAN_MATCHED_LANGUAGES += $$language - SYMBIAN_MATCHED_TRANSLATIONS += $$_PRO_FILE_PWD_/$$translation + SYMBIAN_MATCHED_TRANSLATIONS += $$translation } else { # No direct mapping for specified language found. Check if a fallback language code can be used. strippedLanguage = $$replace(language, "_.*$",) @@ -251,7 +254,7 @@ defineTest(matchSymbianLanguages) { HANDLED_LANGUAGES += $$strippedLanguage SYMBIAN_UNMAPPED_LANGUAGES += $$language SYMBIAN_MATCHED_LANGUAGES += $$language - SYMBIAN_MATCHED_TRANSLATIONS += $$_PRO_FILE_PWD_/$$translation + SYMBIAN_MATCHED_TRANSLATIONS += $$translation SYMBIAN_LANGUAGE_FALLBACK.$$language = $$strippedLanguage export(SYMBIAN_LANGUAGE_FALLBACK.$$language) } -- cgit v0.12 From eb20a7341827b5590fbd891ca1b82ea7ba37d679 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 4 Apr 2011 14:50:16 +0300 Subject: Fix QGradient stop with NaN position on Symbian. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The qbrush autotest was failing on Symbian, because gradient stops with NaN position cannot be inserted on Symbian. This is caused by the pos > 1 || pos < 0 check in setColorAt() which is incorrect on ARM as NaN > 1 will evaluate to true. Task-number: QTBUG-17874 Reviewed-by: Samuel Rødal --- src/gui/painting/qbrush.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp index dc61e34..8f965c2 100644 --- a/src/gui/painting/qbrush.cpp +++ b/src/gui/painting/qbrush.cpp @@ -49,6 +49,7 @@ #include "qdebug.h" #include #include "private/qstylehelper_p.h" +#include QT_BEGIN_NAMESPACE @@ -1360,13 +1361,14 @@ QGradient::QGradient() void QGradient::setColorAt(qreal pos, const QColor &color) { - if (pos > 1 || pos < 0) { + if ((pos > 1 || pos < 0) && !qIsNaN(pos)) { qWarning("QGradient::setColorAt: Color position must be specified in the range 0 to 1"); return; } int index = 0; - while (index < m_stops.size() && m_stops.at(index).first < pos) ++index; + if (!qIsNaN(pos)) + while (index < m_stops.size() && m_stops.at(index).first < pos) ++index; if (index < m_stops.size() && m_stops.at(index).first == pos) m_stops[index].second = color; -- cgit v0.12