diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-02-01 06:10:49 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-02-01 06:10:49 (GMT) |
commit | 1b4bb02fcb3da77ddfa6281365ba3210aab9daad (patch) | |
tree | ecaab6c64758f41fa9cb5b376b395831a77e6c83 /src/gui/kernel | |
parent | ac6bd40b501c63941a4dfc4c1ba500b0c14f74de (diff) | |
parent | dc1cab966938edc5463f26189607ece134549a22 (diff) | |
download | Qt-1b4bb02fcb3da77ddfa6281365ba3210aab9daad.zip Qt-1b4bb02fcb3da77ddfa6281365ba3210aab9daad.tar.gz Qt-1b4bb02fcb3da77ddfa6281365ba3210aab9daad.tar.bz2 |
Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (35 commits)
Fix build due to missing auto-generated files on dbus example
examples/dbus: update remotecontrolledcar example
examples/dbus: update dbus-chat adaptor/interface files
doc: Fix typo in QEvent::ignore() documentation
doc: Fix qmake-manual warn_on/warn_off references
Use X/Open LFS extensions for 64-bit support on directory iteration
nano-optimizations
code cleanup and styling fixes
QDirPrivate: remove unused q_ptr and Q_DECLARE_PUBLIC
QDir: clear internal file lists cache early
QDirPrivate::setPath: always initialize the file engine
optimize QDir::cd()
QDirPrivate::Data: remove needless clear()-s in constructors
QDir::cleanPath: strip trailing slash for "/:/" on non-win platforms
QDir::entry(Info)List(): really use cached data
Fix QDir::operator[] documentation
Move avkon component transparency check to app initialization.
Fix for symbian dialog background transparency.
Assistant docs: Fix link.
QtHelp docs: Fix illegal namespace name.
...
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qapplication_s60.cpp | 19 | ||||
-rw-r--r-- | src/gui/kernel/qt_s60_p.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qwidget.cpp | 8 |
3 files changed, 28 insertions, 0 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index a51f5b8..20b8030 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -71,6 +71,7 @@ # include <private/qcoefepinputcontext_p.h> # endif # include <private/qs60mainapplication_p.h> +# include <centralrepository.h> #endif #include "private/qstylesheetstyle_p.h" @@ -1204,6 +1205,24 @@ void qt_init(QApplicationPrivate * /* priv */, int) S60->virtualMouseRequired = false; } + S60->avkonComponentsSupportTransparency = false; + +#ifdef Q_WS_S60 + TUid KCRUidAvkon = { 0x101F876E }; + TUint32 KAknAvkonTransparencyEnabled = 0x0000000D; + + CRepository* repository = 0; + TRAP(err, repository = CRepository::NewL(KCRUidAvkon)); + + if(err == KErrNone) { + TInt value = 0; + err = repository->Get(KAknAvkonTransparencyEnabled, value); + if(err == KErrNone) { + S60->avkonComponentsSupportTransparency = (value==1) ? true : false; + } + } +#endif + if (touch) { QApplicationPrivate::navigationMode = Qt::NavigationModeNone; } else { diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index b417065..1163055 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -121,6 +121,7 @@ public: int virtualMouseRequired : 1; int qtOwnsS60Environment : 1; int supportsPremultipliedAlpha : 1; + int avkonComponentsSupportTransparency : 1; QApplication::QS60MainApplicationFactory s60ApplicationFactory; // typedef'ed pointer type static inline void updateScreenSize(); static inline RWsSession& wsSession(); diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 8804742..eed76e5 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -2026,6 +2026,14 @@ void QWidgetPrivate::updateIsOpaque() } #endif +#ifdef Q_WS_S60 + if (q->windowType() == Qt::Dialog && q->testAttribute(Qt::WA_TranslucentBackground) + && S60->avkonComponentsSupportTransparency) { + setOpaque(false); + return; + } +#endif + if (q->testAttribute(Qt::WA_OpaquePaintEvent) || q->testAttribute(Qt::WA_PaintOnScreen)) { setOpaque(true); return; |