diff options
Diffstat (limited to 'Swift/QtUI/QtChatOverviewBundle.cpp')
-rw-r--r-- | Swift/QtUI/QtChatOverviewBundle.cpp | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/Swift/QtUI/QtChatOverviewBundle.cpp b/Swift/QtUI/QtChatOverviewBundle.cpp index bf99b0c..8505541 100644 --- a/Swift/QtUI/QtChatOverviewBundle.cpp +++ b/Swift/QtUI/QtChatOverviewBundle.cpp @@ -9,7 +9,6 @@ #include <QDebug> #include <QHBoxLayout> #include <QLabel> -#include <QListView> #include <QPalette> #include <QSortFilterProxyModel> #include <QVBoxLayout> @@ -19,6 +18,7 @@ #include <Swift/QtUI/ChattablesModel.h> #include <Swift/QtUI/QtChatOverviewDelegate.h> #include <Swift/QtUI/QtClickableLabel.h> +#include <Swift/QtUI/QtExpandedListView.h> #include <Swift/QtUI/QtSwiftUtil.h> namespace Swift { @@ -100,34 +100,16 @@ QtChatOverviewBundle::QtChatOverviewBundle(ChattablesModel* rootModel, QString n headerLayout->addWidget(filterLabel_); connect(filterLabel_, SIGNAL(clicked()), this, SLOT(handleFilterClicked())); } - listView_ = new QListView(this); + listView_ = new QtExpandedListView(this); listView_->setModel(proxyModel_); listView_->setFrameStyle(QFrame::NoFrame); listView_->setItemDelegate(new QtChatOverviewDelegate(this)); connect(listView_, SIGNAL(clicked(const QModelIndex&)), this, SLOT(handleItemClicked(const QModelIndex&))); - recalculateSize(); mainLayout->addWidget(listView_); - connect(proxyModel_, SIGNAL(rowsInserted(const QModelIndex&, int, int)), this, SLOT(recalculateSize())); - connect(proxyModel_, SIGNAL(rowsRemoved(const QModelIndex&, int, int)), this, SLOT(recalculateSize())); - connect(proxyModel_, SIGNAL(modelReset()), this, SLOT(recalculateSize())); } QtChatOverviewBundle::~QtChatOverviewBundle() {} -void QtChatOverviewBundle::recalculateSize() { - int totalHeight = 0; - for (int i = 0; i < proxyModel_->rowCount(); i++) { - totalHeight += listView_->sizeHintForRow(i); - } - listView_->setFixedHeight(totalHeight); - if (hideWhenEmpty_ && totalHeight == 0) { - hide(); - } - else { - show(); - } -} - void QtChatOverviewBundle::handleFilterClicked() { if (proxyModel_->hasFilter(BundleFilter::Filter::Online)) { proxyModel_->removeFilter(BundleFilter::Filter::Online); |