Don't waste space for non existing subspaces
3 files changed, 12 insertions, 1 deletions
diff --git a/resources/qml/CommunitiesList.qml b/resources/qml/CommunitiesList.qml
index 68175cea..46e24566 100644
--- a/resources/qml/CommunitiesList.qml
+++ b/resources/qml/CommunitiesList.qml
@@ -131,7 +131,7 @@ Page {
Item {
Layout.preferredWidth: fontMetrics.lineSpacing
- visible: !communitySidebar.collapsed && !model.collapsible
+ visible: !communitySidebar.collapsed && !model.collapsible && Communities.containsSubspaces
}
Avatar {
diff --git a/src/timeline/CommunitiesModel.cpp b/src/timeline/CommunitiesModel.cpp
index 0db3b0b0..fb8aac24 100644
--- a/src/timeline/CommunitiesModel.cpp
+++ b/src/timeline/CommunitiesModel.cpp
@@ -280,6 +280,7 @@ CommunitiesModel::initializeSidebar()
emit tagsChanged();
emit hiddenTagsChanged();
+ emit containsSubspacesChanged();
}
void
diff --git a/src/timeline/CommunitiesModel.h b/src/timeline/CommunitiesModel.h
index 21d24829..5191b239 100644
--- a/src/timeline/CommunitiesModel.h
+++ b/src/timeline/CommunitiesModel.h
@@ -33,6 +33,7 @@ class CommunitiesModel : public QAbstractListModel
currentTagIdChanged RESET resetCurrentTagId)
Q_PROPERTY(QStringList tags READ tags NOTIFY tagsChanged)
Q_PROPERTY(QStringList tagsWithDefault READ tagsWithDefault NOTIFY tagsChanged)
+ Q_PROPERTY(bool containsSubspaces READ containsSubspaces NOTIFY containsSubspacesChanged)
public:
enum Roles
@@ -103,6 +104,14 @@ public:
QVariant data(const QModelIndex &index, int role) const override;
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
+ bool containsSubspaces() const
+ {
+ for (const auto &e : spaceOrder_.tree)
+ if (e.depth > 0)
+ return true;
+ return false;
+ }
+
public slots:
void initializeSidebar();
void sync(const mtx::responses::Sync &sync_);
@@ -131,6 +140,7 @@ signals:
void currentTagIdChanged(QString tagId);
void hiddenTagsChanged();
void tagsChanged();
+ void containsSubspacesChanged();
private:
QStringList tags_;
|