From 8b2f7c46619f2f14e210bee630183e9b2bbf5b38 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sat, 11 Jun 2011 13:00:33 +0000 Subject: [PATCH] Fix possible status filters widget height problem --- src/mainwindow.cpp | 3 --- src/transferlistfilterswidget.h | 33 ++++++++------------------------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d28109acf..517e36a33 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -711,9 +711,6 @@ void MainWindow::on_actionAbout_triggered() { void MainWindow::showEvent(QShowEvent *e) { qDebug("** Show Event **"); - // Update status filters list height - transferListFilters->getStatusFilters()->updateHeight(); - if(getCurrentTabWidget() == transferList) { properties->loadDynamicData(); } diff --git a/src/transferlistfilterswidget.h b/src/transferlistfilterswidget.h index 82e759821..262dca064 100644 --- a/src/transferlistfilterswidget.h +++ b/src/transferlistfilterswidget.h @@ -154,35 +154,18 @@ class StatusFiltersWidget : public QListWidget { public: StatusFiltersWidget(QWidget *parent) : QListWidget(parent), m_shown(false) { - //setFixedHeight(120); - setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - } - -public slots: - void updateHeight() { - qDebug("Adjusting statuslist widget height..."); - m_shown = true; - setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - int cur_height = 50; - do { - setFixedHeight(cur_height); - cur_height += 10; - }while(verticalScrollBar()->isVisible()); + setUniformItemSizes(true); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + // Height is fixed (sizeHint().height() is used) + setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); } protected: - void changeEvent(QEvent *e) { - QListWidget::changeEvent(e); - switch (e->type()) { - case QEvent::StyleChange: - qDebug("Style has changed, adapting the statusfilters widget height"); - if(m_shown) - updateHeight(); - break; - default: - break; - } + QSize sizeHint() const { + QSize size = QListWidget::sizeHint(); + // Height should be exactly the height of the content + size.setHeight(contentsSize().height() + 2 * frameWidth()); + return size; } private: