summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dietrich-de@nokia.com>2010-04-26 17:50:28 (GMT)
committerGabriel de Dietrich <gabriel.dietrich-de@nokia.com>2010-04-27 07:51:33 (GMT)
commitf5775675df4941f5aff078f547eb34b9d9af9202 (patch)
tree21ed09f412880179685bc7b03a1b897b446484ec /src/gui
parent2648d5a2dc6ad4dee9ac685330b000a34339a758 (diff)
downloadQt-f5775675df4941f5aff078f547eb34b9d9af9202.zip
Qt-f5775675df4941f5aff078f547eb34b9d9af9202.tar.gz
Qt-f5775675df4941f5aff078f547eb34b9d9af9202.tar.bz2
Revert "QDialog: user-moved dialog would not show on the same place after hide"
This reverts commit 434d2312b63090cfd2ba7e0f3728b5b225bcaeec. This patch was partially wrong and introduced some unwanted effects on KDE and Windows. And it's probably not the righ solution.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/dialogs/qdialog.cpp14
-rw-r--r--src/gui/dialogs/qdialog.h2
-rw-r--r--src/gui/kernel/qwidget.cpp6
3 files changed, 11 insertions, 11 deletions
diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp
index e4f45ba..a6bd78a 100644
--- a/src/gui/dialogs/qdialog.cpp
+++ b/src/gui/dialogs/qdialog.cpp
@@ -393,6 +393,7 @@ void QDialogPrivate::resetModalitySetByOpen()
resetModalityTo = -1;
}
+#if defined(Q_WS_WINCE) || defined(Q_WS_S60)
#ifdef Q_WS_WINCE_WM
void QDialogPrivate::_q_doneAction()
{
@@ -407,12 +408,12 @@ void QDialogPrivate::_q_doneAction()
bool QDialog::event(QEvent *e)
{
bool result = QWidget::event(e);
-#if defined(Q_WS_WINCE)
+#ifdef Q_WS_WINCE
if (e->type() == QEvent::OkRequest) {
accept();
result = true;
- } else
-#elif defined(Q_WS_S60)
+ }
+#else
if ((e->type() == QEvent::StyleChange) || (e->type() == QEvent::Resize )) {
if (!testAttribute(Qt::WA_Moved)) {
Qt::WindowStates state = windowState();
@@ -421,14 +422,11 @@ bool QDialog::event(QEvent *e)
if (state != windowState())
setWindowState(state);
}
- } else
-#endif
- if (e->type() == QEvent::Move) {
- setAttribute(Qt::WA_Moved, true); // as explicit as the user wants it to be
}
-
+#endif
return result;
}
+#endif
/*!
Returns the modal dialog's result code, \c Accepted or \c Rejected.
diff --git a/src/gui/dialogs/qdialog.h b/src/gui/dialogs/qdialog.h
index 7ab0cb6..777256a 100644
--- a/src/gui/dialogs/qdialog.h
+++ b/src/gui/dialogs/qdialog.h
@@ -107,7 +107,9 @@ public Q_SLOTS:
protected:
QDialog(QDialogPrivate &, QWidget *parent, Qt::WindowFlags f = 0);
+#if defined(Q_WS_WINCE) || defined(Q_WS_S60)
bool event(QEvent *e);
+#endif
void keyPressEvent(QKeyEvent *);
void closeEvent(QCloseEvent *);
void showEvent(QShowEvent *);
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 441e823..b59824c 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -7307,9 +7307,9 @@ void QWidgetPrivate::show_helper()
setVisible(false).
- \note Since Qt 4.7, when calling hide() and then show() on QDialog
- derived widgets will show on the previous (as in "Where the user moved it to")
- position.
+ \note If you are working with QDialog or its subclasses and you invoke
+ the show() function after this function, the dialog will be displayed in
+ its original position.
\sa hideEvent(), isHidden(), show(), setVisible(), isVisible(), close()
*/