aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user.cpp12
-rw-r--r--user.h5
2 files changed, 17 insertions, 0 deletions
diff --git a/user.cpp b/user.cpp
index f2a3a33b..8d37eef6 100644
--- a/user.cpp
+++ b/user.cpp
@@ -27,6 +27,7 @@
#include <QtCore/QTimer>
#include <QtCore/QDebug>
#include <QtGui/QIcon>
+#include <QtCore/QRegularExpression>
#include <algorithm>
using namespace QMatrixClient;
@@ -52,6 +53,7 @@ class User::Private
bool avatarValid;
bool avatarOngoingRequest;
QVector<QPixmap> scaledAvatars;
+ QString bridged;
void requestAvatar();
};
@@ -84,6 +86,10 @@ QString User::displayname() const
return d->userId;
}
+QString User::bridged() const {
+ return d->bridged;
+}
+
QPixmap User::avatar(int width, int height)
{
return croppedAvatar(width, height); // FIXME: Return an uncropped avatar;
@@ -141,6 +147,12 @@ void User::processEvent(Event* event)
{
const auto oldName = d->name;
d->name = e->displayName();
+ QRegularExpression reSuffix(" \\((IRC|Gitter)\\)$");
+ auto match = reSuffix.match(d->name);
+ if (match.hasMatch()) {
+ d->bridged = match.captured(1);
+ d->name = d->name.left(match.capturedStart(0));
+ }
emit nameChanged(this, oldName);
}
if( d->avatarUrl != e->avatarUrl() )
diff --git a/user.h b/user.h
index 95c26bca..c747bfbf 100644
--- a/user.h
+++ b/user.h
@@ -47,6 +47,11 @@ namespace QMatrixClient
*/
Q_INVOKABLE QString displayname() const;
+ /**
+ * Returns the name of bridge the user is connected from or empty.
+ */
+ Q_INVOKABLE QString bridged() const;
+
QPixmap avatar(int requestedWidth, int requestedHeight);
QPixmap croppedAvatar(int requestedWidth, int requestedHeight);