diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-07-01 15:14:53 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-07-01 15:14:53 (GMT) |
commit | a0348b63c48dbd686a6a5b49b0438e6a6fc0d9a9 (patch) | |
tree | 57afabd5186080ee2ed84c3c95c7a6b8d08422c0 /src/gui/dialogs/qdialog.cpp | |
parent | 405ae4ef5382cd8ee0adfbe45c59c8d92e3ffdf6 (diff) | |
parent | 357be9c19457adc7d48c16898985d0b7ddf0aeee (diff) | |
download | Qt-a0348b63c48dbd686a6a5b49b0438e6a6fc0d9a9.zip Qt-a0348b63c48dbd686a6a5b49b0438e6a6fc0d9a9.tar.gz Qt-a0348b63c48dbd686a6a5b49b0438e6a6fc0d9a9.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Making orbit input methods work with Qt apps with -no-s60
Using the remaining valid data to construct the QTime object when msec parsing failed.
QProgressDialog text is too close to dialog border
fix for broken input method loading
Avkon Removal DEF file updates
Stub version of QS60Style
Avkon removal configured with -no-s60
QFileDialog broken in landscape in N8
Diffstat (limited to 'src/gui/dialogs/qdialog.cpp')
-rw-r--r-- | src/gui/dialogs/qdialog.cpp | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp index a6bd78a..a2adb05 100644 --- a/src/gui/dialogs/qdialog.cpp +++ b/src/gui/dialogs/qdialog.cpp @@ -71,8 +71,9 @@ extern bool qt_wince_is_smartphone(); //is defined in qguifunctions_wce.cpp # include "qwizard.h" #endif -#if defined(Q_WS_S60) #include "private/qt_s60_p.h" +#if defined(Q_WS_S60) +#include <AknUtils.h> // AknLayoutUtils #endif #ifndef SPI_GETSNAPTODEFBUTTON @@ -393,7 +394,7 @@ void QDialogPrivate::resetModalitySetByOpen() resetModalityTo = -1; } -#if defined(Q_WS_WINCE) || defined(Q_WS_S60) +#if defined(Q_WS_WINCE) || defined(Q_OS_SYMBIAN) #ifdef Q_WS_WINCE_WM void QDialogPrivate::_q_doneAction() { @@ -413,7 +414,7 @@ bool QDialog::event(QEvent *e) accept(); result = true; } -#else +#elif defined(Q_WS_S60) if ((e->type() == QEvent::StyleChange) || (e->type() == QEvent::Resize )) { if (!testAttribute(Qt::WA_Moved)) { Qt::WindowStates state = windowState(); @@ -423,6 +424,7 @@ bool QDialog::event(QEvent *e) setWindowState(state); } } + // TODO is Symbian, non-S60 behaviour required? #endif return result; } @@ -527,14 +529,19 @@ int QDialog::exec() #endif //QT_NO_MENUBAR #endif //Q_WS_WINCE_WM + bool showSystemDialogFullScreen = false; #ifdef Q_OS_SYMBIAN if (qobject_cast<QFileDialog *>(this) || qobject_cast<QFontDialog *>(this) || - qobject_cast<QColorDialog *>(this) || qobject_cast<QWizard *>(this)) - showMaximized(); - else + qobject_cast<QColorDialog *>(this) || qobject_cast<QWizard *>(this)) { + showSystemDialogFullScreen = true; + } #endif // Q_OS_SYMBIAN - show(); + if (showSystemDialogFullScreen) { + setWindowFlags(windowFlags() | Qt::WindowSoftkeysVisibleHint); + setWindowState(Qt::WindowFullScreen); + } + show(); #ifdef Q_WS_MAC d->mac_nativeDialogModalHelp(); @@ -818,8 +825,8 @@ void QDialog::adjustPosition(QWidget* w) return; #endif -#ifdef Q_WS_S60 - if (s60AdjustedPosition()) +#ifdef Q_OS_SYMBIAN + if (symbianAdjustedPosition()) //dialog has already been positioned return; #endif @@ -887,13 +894,12 @@ void QDialog::adjustPosition(QWidget* w) move(p); } -#if defined(Q_WS_S60) +#if defined(Q_OS_SYMBIAN) /*! \internal */ -bool QDialog::s60AdjustedPosition() +bool QDialog::symbianAdjustedPosition() { +#if defined(Q_WS_S60) QPoint p; - const QSize mainAreaSize = QApplication::desktop()->availableGeometry(QCursor::pos()).size(); - const int statusPaneHeight = (S60->screenHeightInPixels - mainAreaSize.height())>>1; const bool doS60Positioning = !(isFullScreen()||isMaximized()); if (doS60Positioning) { // naive way to deduce screen orientation @@ -937,6 +943,10 @@ bool QDialog::s60AdjustedPosition() move(p); } return doS60Positioning; +#else + // TODO - check positioning requirement for Symbian, non-s60 + return false; +#endif } #endif |