From dd262dc7f5c02ffaaa965815a9ccc8978efdbabf Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 8 Nov 2013 11:27:15 +0100 Subject: Revert "Fix setVisible() of QWidget has no effect in QTreeWidgetItem" It introduces QTBUG-34653 (Qt Designer widget box no longer repainted after collapsing items or using the filter). This reverts commit 04de24c6449422d29a0d4760375aa94f59222fa3. Task-number: QTBUG-13522 Task-number: QTBUG-34653 Change-Id: Ieb9766e7f15acea901fce4ad7142aa72557b9957 Reviewed-by: Giuseppe D'Angelo --- src/widgets/itemviews/qabstractitemview.cpp | 3 +- .../itemviews/qtreewidget/tst_qtreewidget.cpp | 34 ---------------------- 2 files changed, 1 insertion(+), 36 deletions(-) diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index ef7207229c..fd704e479b 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -2637,8 +2637,7 @@ void QAbstractItemView::updateEditorGeometries() if (index.isValid() && editor) { option.rect = visualRect(index); if (option.rect.isValid()) { - if (!editor->isHidden()) - editor->show(); + editor->show(); QAbstractItemDelegate *delegate = d->delegateForIndex(index); if (delegate) delegate->updateEditorGeometry(editor, option, index); diff --git a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp index 1de5749c69..83ba1ddcda 100644 --- a/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp +++ b/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp @@ -165,7 +165,6 @@ private slots: void setChildIndicatorPolicy(); void task20345_sortChildren(); - void taskQTBUG13522_checkItemVisibilityBeforeItemShow(); public slots: void itemSelectionChanged(); @@ -3372,39 +3371,6 @@ void tst_QTreeWidget::task20345_sortChildren() QVERIFY(1); } -void tst_QTreeWidget::taskQTBUG13522_checkItemVisibilityBeforeItemShow() -{ - class TreeView : public QTreeWidget - { - public: - explicit TreeView(QWidget *parent = 0) : QTreeWidget(parent) - , item1_visibility(false), item2_visibility(false) {} - void showEvent(QShowEvent * /*event*/) Q_DECL_OVERRIDE - { - item1_visibility = !item1->isVisible(); - item2_visibility = item2->isVisible(); - } - QWidget *item1; - QWidget *item2; - bool item1_visibility; - bool item2_visibility; - - } tw; - tw.item1 = new QWidget(&tw); - tw.item2 = new QWidget(&tw); - QTreeWidgetItem *widget_item = new QTreeWidgetItem(); - widget_item->setText(0, "example text"); - tw.addTopLevelItem(widget_item); - tw.setItemWidget(widget_item, 0, tw.item1); - widget_item = new QTreeWidgetItem(); - tw.setItemWidget(widget_item, 0, tw.item2); - //set visible must after setItemWidget or setItemWidget will reset the visibility - tw.item1->setVisible(false); - tw.item2->setVisible(true); - tw.show(); - QTRY_VERIFY(tw.item1_visibility); - QTRY_VERIFY(tw.item2_visibility); -} QTEST_MAIN(tst_QTreeWidget) #include "tst_qtreewidget.moc" -- cgit v1.2.3