diff --git a/src/timeline/InputBar.cpp b/src/timeline/InputBar.cpp
index 191aebdc..ba1d7880 100644
--- a/src/timeline/InputBar.cpp
+++ b/src/timeline/InputBar.cpp
@@ -954,18 +954,17 @@ InputBar::command(const QString &command, QString args)
void
InputBar::toggleIgnore(const QString &user, const bool ignored)
{
- QSharedPointer<UserProfile> profile(
- new UserProfile(QString(), user, TimelineViewManager::instance()));
- connect(profile.get(), &UserProfile::failedToFetchProfile, [user] {
+ UserProfile *profile = new UserProfile(QString(), user, TimelineViewManager::instance());
+ connect(profile, &UserProfile::failedToFetchProfile, [user] {
MainWindow::instance()->showNotification(tr("Failed to fetch user %1").arg(user));
});
- connect(profile.get(),
- &UserProfile::globalUsernameRetrieved,
- [profile, ignored](const QString &user_id) {
- Q_UNUSED(user_id)
- profile->setIgnored(ignored);
- });
+ connect(
+ profile, &UserProfile::globalUsernameRetrieved, [profile, ignored](const QString &user_id) {
+ Q_UNUSED(user_id)
+ profile->setIgnored(ignored);
+ profile->deleteLater();
+ });
}
MediaUpload::MediaUpload(std::unique_ptr<QIODevice> source_,
diff --git a/src/ui/UserProfile.cpp b/src/ui/UserProfile.cpp
index ffb69aa4..c7254e23 100644
--- a/src/ui/UserProfile.cpp
+++ b/src/ui/UserProfile.cpp
@@ -281,9 +281,12 @@ UserProfile::setIgnored(bool ignore)
if (ignore) {
const QHash<QString, RoomInfo> invites = cache::invites();
+ FilteredRoomlistModel *room_model = FilteredRoomlistModel::instance();
for (auto room = invites.keyBegin(), end = invites.keyEnd(); room != end; room++) {
- FilteredRoomlistModel::instance()->declineInvite(*room);
+ if (room_model->getRoomPreviewById(*room).inviterUserId() == userid) {
+ room_model->declineInvite(*room);
+ }
}
}
}
|