Add typing notification.

This commit is contained in:
Black Hat
2018-12-23 11:24:01 +08:00
parent e5fbdc15ff
commit 316d1429fa
4 changed files with 333 additions and 278 deletions

View File

@@ -118,16 +118,14 @@ bool SpectralRoom::hasUsersTyping() {
return count != 0;
}
QString SpectralRoom::getUsersTyping() {
QString usersTypingStr;
QVariantList SpectralRoom::getUsersTyping() {
QList<User*> users = usersTyping();
users.removeOne(localUser());
QVariantList out;
for (User* user : users) {
usersTypingStr += user->displayname() + " ";
out.append(QVariant::fromValue(user));
}
usersTypingStr += users.count() < 2 ? "is" : "are";
usersTypingStr += " typing.";
return usersTypingStr;
return out;
}
void SpectralRoom::sendTypingNotification(bool isTyping) {

View File

@@ -13,7 +13,7 @@ using namespace QMatrixClient;
class SpectralRoom : public Room {
Q_OBJECT
Q_PROPERTY(bool hasUsersTyping READ hasUsersTyping NOTIFY typingChanged)
Q_PROPERTY(QString usersTyping READ getUsersTyping NOTIFY typingChanged)
Q_PROPERTY(QVariantList usersTyping READ getUsersTyping NOTIFY typingChanged)
Q_PROPERTY(QString cachedInput READ cachedInput WRITE setCachedInput NOTIFY
cachedInputChanged)
Q_PROPERTY(bool hasFileUploading READ hasFileUploading NOTIFY
@@ -43,7 +43,7 @@ class SpectralRoom : public Room {
}
bool hasUsersTyping();
QString getUsersTyping();
QVariantList getUsersTyping();
QString lastEvent();
bool isEventHighlighted(const QMatrixClient::RoomEvent* e) const;