summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swift/QtUI/QtChatOverviewBundle.cpp22
-rw-r--r--Swift/QtUI/QtChatOverviewBundle.h3
2 files changed, 23 insertions, 2 deletions
diff --git a/Swift/QtUI/QtChatOverviewBundle.cpp b/Swift/QtUI/QtChatOverviewBundle.cpp
index 8505541..121ae2e 100644
--- a/Swift/QtUI/QtChatOverviewBundle.cpp
+++ b/Swift/QtUI/QtChatOverviewBundle.cpp
@@ -8,3 +8,2 @@
-#include <QDebug>
#include <QHBoxLayout>
@@ -95,3 +94,3 @@ QtChatOverviewBundle::QtChatOverviewBundle(ChattablesModel* rootModel, QString n
headerLayout->addStretch();
- if (!hideWhenEmpty) {
+ if (!hideWhenEmpty_) {
filterLabel_ = new QtClickableLabel(this);
@@ -108,2 +107,15 @@ QtChatOverviewBundle::QtChatOverviewBundle(ChattablesModel* rootModel, QString n
mainLayout->addWidget(listView_);
+
+ if (hideWhenEmpty_) {
+ connect(proxyModel_, &QAbstractItemModel::modelReset, this, [&](){
+ updateVisibility();
+ });
+ connect(proxyModel_, &QAbstractItemModel::rowsInserted, this, [&](){
+ updateVisibility();
+ });
+ connect(proxyModel_, &QAbstractItemModel::rowsRemoved, this, [&](){
+ updateVisibility();
+ });
+ updateVisibility();
+ }
}
@@ -123,2 +135,8 @@ void QtChatOverviewBundle::handleFilterClicked() {
+void QtChatOverviewBundle::updateVisibility() {
+ auto shouldBeVisible = (proxyModel_->rowCount(listView_->rootIndex()) > 0);
+ setVisible(shouldBeVisible);
+}
+
+
void QtChatOverviewBundle::handleItemClicked(const QModelIndex& index) {
diff --git a/Swift/QtUI/QtChatOverviewBundle.h b/Swift/QtUI/QtChatOverviewBundle.h
index 6e232ca..95fd5d2 100644
--- a/Swift/QtUI/QtChatOverviewBundle.h
+++ b/Swift/QtUI/QtChatOverviewBundle.h
@@ -51,2 +51,5 @@ namespace Swift {
private:
+ void updateVisibility();
+
+ private:
ChattablesModel* rootModel_;