Skip to content
Snippets Groups Projects
Unverified Commit 4695bbb3 authored by NepNep21's avatar NepNep21
Browse files

Add /ignore

parent 791cb660
No related branches found
No related tags found
No related merge requests found
......@@ -97,6 +97,8 @@ CommandCompleter::data(const QModelIndex &index, int role) const
return QStringLiteral("/converttodm");
case ConvertToRoom:
return QStringLiteral("/converttoroom");
case Ignore:
return QStringLiteral("/ignore");
default:
return {};
}
......@@ -170,6 +172,8 @@ CommandCompleter::data(const QModelIndex &index, int role) const
return QStringLiteral("/converttodm");
case ConvertToRoom:
return QStringLiteral("/converttoroom");
case Ignore:
return QStringLiteral("/ignore <@userid>");
default:
return {};
}
......@@ -243,6 +247,8 @@ CommandCompleter::data(const QModelIndex &index, int role) const
return tr("Convert this room to a direct chat.");
case ConvertToRoom:
return tr("Convert this direct chat into a room.");
case Ignore:
return tr("Ignores a user.");
default:
return {};
}
......
......@@ -51,6 +51,7 @@ public:
Goto,
ConvertToDm,
ConvertToRoom,
Ignore,
COUNT,
};
......
......@@ -30,6 +30,7 @@
#include "ChatPage.h"
#include "EventAccessors.h"
#include "Logging.h"
#include "MainWindow.h"
#include "MatrixClient.h"
#include "TimelineModel.h"
#include "TimelineViewManager.h"
......@@ -239,7 +240,8 @@ InputBar::updateTextContentProperties(const QString &t)
QStringLiteral("msgtype"),
QStringLiteral("goto"),
QStringLiteral("converttodm"),
QStringLiteral("converttoroom")};
QStringLiteral("converttoroom"),
QStringLiteral("ignore")};
bool hasInvalidCommand = !commandName.isNull() && !validCommands.contains(commandName);
bool hasIncompleteCommand = hasInvalidCommand && '/' + commandName == t;
......@@ -937,6 +939,16 @@ InputBar::command(const QString &command, QString args)
cache::getMembers(this->room->roomId().toStdString(), 0, -1));
} else if (command == QLatin1String("converttoroom")) {
utils::removeDirectFromRoom(this->room->roomId());
} else if (command == QLatin1String("ignore")) {
QSharedPointer<UserProfile> user(
new UserProfile(QString(), args, TimelineViewManager::instance()));
connect(user.get(), &UserProfile::failedToFetchProfile, [args] {
MainWindow::instance()->showNotification(tr("Failed to fetch user %1").arg(args));
});
connect(user.get(), &UserProfile::globalUsernameRetrieved, [user](const QString &user_id) {
Q_UNUSED(user_id)
user->setIgnored(true);
});
} else {
return false;
}
......
......@@ -592,12 +592,18 @@ UserProfile::getGlobalProfileData()
emit avatarUrlChanged();
});
connect(profProx.get(),
&UserProfileFetchProxy::failedToFetchProfile,
this,
&UserProfile::failedToFetchProfile);
http::client()->get_profile(userid_.toStdString(),
[prox = std::move(profProx), user = userid_.toStdString()](
const mtx::responses::Profile &res, mtx::http::RequestErr err) {
if (err) {
nhlog::net()->warn("failed to retrieve profile info for {}",
user);
emit prox->failedToFetchProfile();
return;
}
......
......@@ -45,6 +45,7 @@ public:
signals:
void profileFetched(mtx::responses::Profile);
void failedToFetchProfile();
};
class DeviceInfo
......@@ -205,6 +206,7 @@ signals:
void globalUsernameRetrieved(const QString &globalUser);
void devicesChanged();
void ignoredChanged();
void failedToFetchProfile();
// internal
void verificationStatiChanged();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment