summary refs log tree commit diff
path: root/src/ChatPage.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2020-06-08 01:45:24 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2020-06-08 01:59:05 +0200
commit96f4169be97715e6b6b45663492e3791ba21ae09 (patch)
tree618753677e69ac590aa2cad267dfd7d31c574bfd /src/ChatPage.cpp
parentSmooth scaling for images (diff)
downloadnheko-96f4169be97715e6b6b45663492e3791ba21ae09.tar.xz
Show presence and set custom status messages
Diffstat (limited to 'src/ChatPage.cpp')
-rw-r--r--src/ChatPage.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp
index c7f5164a..f2b8253b 100644
--- a/src/ChatPage.cpp
+++ b/src/ChatPage.cpp
@@ -61,6 +61,7 @@ constexpr size_t MAX_ONETIME_KEYS         = 50;
 
 Q_DECLARE_METATYPE(std::optional<mtx::crypto::EncryptedFile>)
 Q_DECLARE_METATYPE(std::optional<RelatedInfo>)
+Q_DECLARE_METATYPE(mtx::presence::PresenceState)
 
 ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
   : QWidget(parent)
@@ -72,6 +73,7 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
 
         qRegisterMetaType<std::optional<mtx::crypto::EncryptedFile>>();
         qRegisterMetaType<std::optional<RelatedInfo>>();
+        qRegisterMetaType<mtx::presence::PresenceState>();
 
         topLayout_ = new QHBoxLayout(this);
         topLayout_->setSpacing(0);
@@ -1221,6 +1223,24 @@ ChatPage::sendTypingNotifications()
           });
 }
 
+QString
+ChatPage::status() const
+{
+        return QString::fromStdString(cache::statusMessage(utils::localUser().toStdString()));
+}
+
+void
+ChatPage::setStatus(const QString &status)
+{
+        http::client()->put_presence_status(
+          currentPresence(), status.toStdString(), [](mtx::http::RequestErr err) {
+                  if (err) {
+                          nhlog::net()->warn("failed to set presence status_msg: {}",
+                                             err->matrix_error.error);
+                  }
+          });
+}
+
 void
 ChatPage::initialSyncHandler(const mtx::responses::Sync &res, mtx::http::RequestErr err)
 {