Browse Source

Fix possible status filters widget height problem

adaptive-webui-19844
Christophe Dumez 14 years ago
parent
commit
8b2f7c4661
  1. 3
      src/mainwindow.cpp
  2. 33
      src/transferlistfilterswidget.h

3
src/mainwindow.cpp

@ -711,9 +711,6 @@ void MainWindow::on_actionAbout_triggered() { @@ -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();
}

33
src/transferlistfilterswidget.h

@ -154,35 +154,18 @@ class StatusFiltersWidget : public QListWidget { @@ -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:

Loading…
Cancel
Save