summary refs log tree commit diff
path: root/src/CommunitiesListItem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/CommunitiesListItem.cpp')
-rw-r--r--src/CommunitiesListItem.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/CommunitiesListItem.cpp b/src/CommunitiesListItem.cpp

index f2777e66..0fad6624 100644 --- a/src/CommunitiesListItem.cpp +++ b/src/CommunitiesListItem.cpp
@@ -19,6 +19,21 @@ CommunitiesListItem::CommunitiesListItem(QString group_id, QWidget *parent) if (groupId_ == "world") avatar_ = QPixmap(":/icons/icons/ui/world.png"); + else if (groupId_ == "tag:m.favourite") + avatar_ = QPixmap(":/icons/icons/ui/star.png"); + else if (groupId_ == "tag:m.lowpriority") + avatar_ = QPixmap(":/icons/icons/ui/lowprio.png"); + else if (groupId_.startsWith("tag:")) + avatar_ = QPixmap(":/icons/icons/ui/tag.png"); + + updateTooltip(); +} + +void +CommunitiesListItem::setName(QString name) +{ + name_ = name; + updateTooltip(); } void @@ -98,7 +113,8 @@ CommunitiesListItem::resolveName() const { if (!name_.isEmpty()) return name_; - + if (groupId_.startsWith("tag:")) + return groupId_.right(groupId_.size() - strlen("tag:")); if (!groupId_.startsWith("+")) return QString("Group"); // Group with no name or id. @@ -106,3 +122,24 @@ CommunitiesListItem::resolveName() const auto firstPart = groupId_.split(':').at(0); return firstPart.right(firstPart.size() - 1); } + +void +CommunitiesListItem::updateTooltip() +{ + if (groupId_ == "world") + setToolTip(tr("All rooms")); + else if (is_tag()) { + QString tag = groupId_.right(groupId_.size() - strlen("tag:")); + if (tag == "m.favourite") + setToolTip(tr("Favourite rooms")); + else if (tag == "m.lowpriority") + setToolTip(tr("Low priority rooms")); + else if (tag.startsWith("u.")) + setToolTip(tag.right(tag.size() - 2) + tr(" (tag)")); + else + setToolTip(tag + tr(" (tag)")); + } else { + QString name = resolveName(); + setToolTip(name + tr(" (community)")); + } +} \ No newline at end of file