Skip to content
Snippets Groups Projects
Commit 0b6c82df authored by Jedi18's avatar Jedi18
Browse files

added bool to choose between showing only rooms with aliases and all of the rooms

parent 8aadde78
No related branches found
No related tags found
No related merge requests found
Pipeline #660 passed
......@@ -3,18 +3,26 @@
#include "Cache_p.h"
#include "CompletionModelRoles.h"
RoomsModel::RoomsModel(QObject *parent)
RoomsModel::RoomsModel(bool showOnlyRoomWithAliases, QObject *parent)
: QAbstractListModel(parent)
, showOnlyRoomWithAliases_(showOnlyRoomWithAliases)
{
rooms_ = cache::joinedRooms();
roomInfos = cache::getRoomInfo(rooms_);
std::vector<std::string> rooms_ = cache::joinedRooms();
roomInfos = cache::getRoomInfo(rooms_);
for (const auto &r : rooms_) {
auto roomAliasesList = cache::client()->getRoomAliases(r);
if (roomAliasesList) {
roomAliases.push_back(QString::fromStdString(roomAliasesList->alias));
if (showOnlyRoomWithAliases_) {
if (roomAliasesList) {
roomids.push_back(QString::fromStdString(r));
roomAliases.push_back(
QString::fromStdString(roomAliasesList->alias));
}
} else {
roomids.push_back(QString::fromStdString(r));
roomAliases.push_back(
roomAliasesList ? QString::fromStdString(roomAliasesList->alias) : "");
}
}
}
......@@ -43,14 +51,13 @@ RoomsModel::data(const QModelIndex &index, int role) const
case Roles::RoomAlias:
return roomAliases[index.row()];
case CompletionModel::SearchRole2:
return roomAliases[index.row()];
case Roles::RoomName:
return QString::fromStdString(roomInfos.at(roomids[index.row()]).name);
case Roles::AvatarUrl:
return QString::fromStdString(
roomInfos.at(roomids[index.row()]).avatar_url);
case Roles::RoomID:
return roomids[index.row()];
case Roles::RoomName:
return QString::fromStdString(roomInfos.at(roomids[index.row()]).name);
}
}
return {};
......
......@@ -16,18 +16,18 @@ public:
RoomName,
};
RoomsModel(QObject *parent = nullptr);
RoomsModel(bool showOnlyRoomWithAliases = false, QObject *parent = nullptr);
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override
{
(void)parent;
return (int)roomAliases.size();
return (int)roomids.size();
}
QVariant data(const QModelIndex &index, int role) const override;
private:
std::vector<std::string> rooms_;
std::vector<QString> roomids;
std::vector<QString> roomAliases;
std::map<QString, RoomInfo> roomInfos;
bool showOnlyRoomWithAliases_;
};
......@@ -19,11 +19,11 @@
#include "MainWindow.h"
#include "MatrixClient.h"
#include "Olm.h"
#include "RoomsModel.h"
#include "TimelineModel.h"
#include "TimelineViewManager.h"
#include "UserSettingsPage.h"
#include "UsersModel.h"
#include "RoomsModel.h"
#include "Utils.h"
#include "dialogs/PreviewUploadOverlay.h"
#include "emoji/EmojiModel.h"
......@@ -188,7 +188,7 @@ InputBar::completerFor(QString completerName)
emojiModel->setParent(proxy);
return proxy;
} else if (completerName == "room") {
auto roomModel = new RoomsModel();
auto roomModel = new RoomsModel(true);
auto proxy = new CompletionProxyModel(roomModel);
roomModel->setParent(proxy);
return proxy;
......
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