From ef80085fab6d83a89a9a4309f2e7cdd272a812fe Mon Sep 17 00:00:00 2001 From: link2xt Date: Sun, 1 Aug 2021 19:23:41 +0300 Subject: Add "pinned" badge for pinned chats --- chat.cpp | 6 ++++++ chat.h | 2 ++ qml/ChatlistPage.qml | 18 +++++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/chat.cpp b/chat.cpp index 0d023bb..32c72c3 100644 --- a/chat.cpp +++ b/chat.cpp @@ -70,3 +70,9 @@ DcChat::isMuted() { return dc_chat_is_muted(m_chat); } + +int +DcChat::getVisibility() +{ + return dc_chat_get_visibility(m_chat); +} diff --git a/chat.h b/chat.h index 70a813c..0fc6152 100644 --- a/chat.h +++ b/chat.h @@ -12,6 +12,7 @@ class DcChat : public QObject { Q_PROPERTY(bool isContactRequest READ isContactRequest CONSTANT) Q_PROPERTY(bool canSend READ canSend CONSTANT) Q_PROPERTY(bool muted READ isMuted CONSTANT) + Q_PROPERTY(int visibility READ getVisibility CONSTANT) public: explicit DcChat(QObject *parent = nullptr); @@ -26,6 +27,7 @@ public: Q_INVOKABLE bool isContactRequest (); Q_INVOKABLE bool canSend(); Q_INVOKABLE bool isMuted(); + Q_INVOKABLE int getVisibility(); private: dc_chat_t *m_chat{nullptr}; diff --git a/qml/ChatlistPage.qml b/qml/ChatlistPage.qml index a0d171a..03b18be 100644 --- a/qml/ChatlistPage.qml +++ b/qml/ChatlistPage.qml @@ -110,7 +110,8 @@ Kirigami.ScrollablePage { avatarSource: profileImage ? "file:" + profileImage : "", chatName: chat.name, freshMsgCnt: chatlistPage.context.getFreshMsgCnt(chatId), - isContactRequest: chat.isContactRequest + isContactRequest: chat.isContactRequest, + visibility: chat.visibility } let j; @@ -221,6 +222,7 @@ Kirigami.ScrollablePage { } } + Label { text: model.isContactRequest ? "NEW" : model.freshMsgCnt visible: model.freshMsgCnt > 0 || model.isContactRequest @@ -237,6 +239,20 @@ Kirigami.ScrollablePage { radius: 0.25 * height } } + + // "Pinned" badge + Rectangle { + visible: model.visibility == 2 + color: Kirigami.Theme.alternateBackgroundColor + width: Kirigami.Units.gridUnit + height: Kirigami.Units.gridUnit + radius: 0.25 * height + Kirigami.Icon { + source: "pin" + height: Kirigami.Units.gridUnit + width: Kirigami.Units.gridUnit + } + } } } } -- cgit v1.2.3-54-g00ecf