Move Controller::openOrCreateDirectChat to NeoChatConnection
This commit is contained in:
@@ -382,20 +382,6 @@ void Controller::joinRoom(const QString &alias)
|
|||||||
RoomManager::instance().joinRoom(m_connection, alias, QStringList{knownServer});
|
RoomManager::instance().joinRoom(m_connection, alias, QStringList{knownServer});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Controller::openOrCreateDirectChat(User *user)
|
|
||||||
{
|
|
||||||
const auto existing = activeConnection()->directChats();
|
|
||||||
|
|
||||||
if (existing.contains(user)) {
|
|
||||||
const auto &room = static_cast<NeoChatRoom *>(activeConnection()->room(existing.value(user)));
|
|
||||||
if (room) {
|
|
||||||
RoomManager::instance().enterRoom(room);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
activeConnection()->requestDirectChat(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString Controller::formatByteSize(double size, int precision) const
|
QString Controller::formatByteSize(double size, int precision) const
|
||||||
{
|
{
|
||||||
return QLocale().formattedDataSize(size, precision);
|
return QLocale().formattedDataSize(size, precision);
|
||||||
|
|||||||
@@ -126,13 +126,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
Q_INVOKABLE void joinRoom(const QString &alias);
|
Q_INVOKABLE void joinRoom(const QString &alias);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Join a direct chat with the given user.
|
|
||||||
*
|
|
||||||
* If a direct chat with the user doesn't exist one is created and then joined.
|
|
||||||
*/
|
|
||||||
Q_INVOKABLE void openOrCreateDirectChat(Quotient::User *user);
|
|
||||||
|
|
||||||
[[nodiscard]] bool supportSystemTray() const;
|
[[nodiscard]] bool supportSystemTray() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -220,4 +220,18 @@ void NeoChatConnection::createSpace(const QString &name, const QString &topic, c
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NeoChatConnection::openOrCreateDirectChat(User *user)
|
||||||
|
{
|
||||||
|
const auto existing = directChats();
|
||||||
|
|
||||||
|
if (existing.contains(user)) {
|
||||||
|
const auto room = static_cast<NeoChatRoom *>(this->room(existing.value(user)));
|
||||||
|
if (room) {
|
||||||
|
RoomManager::instance().enterRoom(room);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
requestDirectChat(user);
|
||||||
|
}
|
||||||
|
|
||||||
#include "moc_neochatconnection.cpp"
|
#include "moc_neochatconnection.cpp"
|
||||||
|
|||||||
@@ -61,6 +61,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
Q_INVOKABLE void createSpace(const QString &name, const QString &topic, const QString &parent = {}, bool setChildParent = false);
|
Q_INVOKABLE void createSpace(const QString &name, const QString &topic, const QString &parent = {}, bool setChildParent = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Join a direct chat with the given user.
|
||||||
|
*
|
||||||
|
* If a direct chat with the user doesn't exist one is created and then joined.
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE void openOrCreateDirectChat(Quotient::User *user);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void labelChanged();
|
void labelChanged();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ Kirigami.Dialog {
|
|||||||
text: i18n("Open a private chat")
|
text: i18n("Open a private chat")
|
||||||
icon.name: "document-send"
|
icon.name: "document-send"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
Controller.openOrCreateDirectChat(root.user.object);
|
root.room.connection.openOrCreateDirectChat(root.user.object)
|
||||||
root.close()
|
root.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user