mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-27 11:49:01 +03:00
Fix status list widget height issue on style change
This commit is contained in:
parent
c34000ab17
commit
8a64a6441e
2 changed files with 29 additions and 12 deletions
|
@ -212,13 +212,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), for
|
|||
properties->readSettings();
|
||||
|
||||
// Limit status filters list height
|
||||
int cur_height = 80;
|
||||
do {
|
||||
transferListFilters->getStatusFilters()->setFixedHeight(cur_height);
|
||||
cur_height += 10;
|
||||
transferListFilters->getStatusFilters()->scrollToBottom();
|
||||
}while(transferListFilters->getStatusFilters()->verticalScrollBar()->sliderPosition() > 0);
|
||||
transferListFilters->getStatusFilters()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
transferListFilters->getStatusFilters()->updateHeight();
|
||||
|
||||
if(ui_locked) {
|
||||
hide();
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include <QDragMoveEvent>
|
||||
#include <QStandardItemModel>
|
||||
#include <QMessageBox>
|
||||
#include <QScrollBar>
|
||||
|
||||
#include "transferlistdelegate.h"
|
||||
#include "transferlistwidget.h"
|
||||
|
@ -57,6 +58,7 @@ public:
|
|||
itemHover = 0;
|
||||
// Accept drop
|
||||
setAcceptDrops(true);
|
||||
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||
}
|
||||
|
||||
// Redefine addItem() to make sure the list stays sorted
|
||||
|
@ -145,23 +147,44 @@ protected:
|
|||
};
|
||||
|
||||
class StatusFiltersWidget : public QListWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
StatusFiltersWidget(QWidget *parent) : QListWidget(parent) {
|
||||
setFixedHeight(120);
|
||||
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());
|
||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
}
|
||||
|
||||
protected:
|
||||
void changeEvent(QEvent *e) {
|
||||
QListWidget::changeEvent(e);
|
||||
switch (e->type()) {
|
||||
case QEvent::StyleChange:
|
||||
setSpacing(0);
|
||||
setFixedHeight(120);
|
||||
qDebug("Style has changed, adapting the statusfilters widget height");
|
||||
if(m_shown)
|
||||
updateHeight();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
bool m_shown;
|
||||
|
||||
};
|
||||
|
||||
class TransferListFiltersWidget: public QFrame {
|
||||
|
@ -245,7 +268,7 @@ public:
|
|||
delete vLayout;
|
||||
}
|
||||
|
||||
QListWidget* getStatusFilters() const {
|
||||
StatusFiltersWidget* getStatusFilters() const {
|
||||
return statusFilters;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue