summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2014-06-06 13:53:58 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-06-11 23:06:01 +0200
commita6d7e09e89a73b3706aabbf2d08586f238348c7c (patch)
treec43de1165cf9d362ac5469180413803ec5da8412
parent11aaff3a57afe7a8ff37bfa83cc545cc04c38649 (diff)
QWidget: fix documentation for isEnabledTo(0)
It is NOT always the same as isEnabled(). Added a unittest to prove it. Change-Id: I7717126835923e8c091249bfcdf81767c44fb5f7 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-rw-r--r--src/widgets/kernel/qwidget.cpp8
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp6
2 files changed, 13 insertions, 1 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 65e435fbdc..7396808442 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -2912,7 +2912,13 @@ void QWidget::showNormal()
This is the case if neither the widget itself nor every parent up
to but excluding \a ancestor has been explicitly disabled.
- isEnabledTo(0) is equivalent to isEnabled().
+ isEnabledTo(0) returns false if this widget or any if its ancestors
+ was explicitly disabled.
+
+ The word ancestor here means a parent widget within the same window.
+
+ Therefore isEnabledTo(0) stops at this widget's window, unlike
+ isEnabled() which also takes parent windows into considerations.
\sa setEnabled(), enabled
*/
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 34936fa5b8..eac8ab2236 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -1210,6 +1210,12 @@ void tst_QWidget::isEnabledTo()
QVERIFY( !childWidget->isEnabledTo( testWidget ) );
QVERIFY( grandChildWidget->isEnabledTo( childWidget ) );
QVERIFY( !grandChildWidget->isEnabledTo( testWidget ) );
+
+ QMainWindow* childDialog = new QMainWindow(testWidget);
+ testWidget->setEnabled(false);
+ QVERIFY(!childDialog->isEnabled());
+ QVERIFY(childDialog->isEnabledTo(0));
+ testWidget->setEnabled(true);
}
void tst_QWidget::visible()