Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions client/quaternionroom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,16 @@ void QuaternionRoom::setCachedInput(const QString& input)
m_cachedInput = input;
}

const QString& QuaternionRoom::cachedUserFilter() const
{
return m_cachedUserFilter;
}

void QuaternionRoom::setCachedUserFilter(const QString& input)
{
m_cachedUserFilter = input;
}

bool QuaternionRoom::isEventHighlighted(const RoomEvent* e) const
{
return highlights.contains(e);
Expand Down
4 changes: 4 additions & 0 deletions client/quaternionroom.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ class QuaternionRoom: public QMatrixClient::Room
const QString& cachedInput() const;
void setCachedInput(const QString& input);

const QString& cachedUserFilter() const;
void setCachedUserFilter(const QString& input);

bool isEventHighlighted(const QMatrixClient::RoomEvent* e) const;

Q_INVOKABLE int savedTopVisibleIndex() const;
Expand All @@ -53,6 +56,7 @@ class QuaternionRoom: public QMatrixClient::Room
private:
QSet<const QMatrixClient::RoomEvent*> highlights;
QString m_cachedInput;
QString m_cachedUserFilter;

void onAddNewTimelineEvents(timeline_iter_t from) override;
void onAddHistoricalTimelineEvents(rev_iter_t from) override;
Expand Down
7 changes: 6 additions & 1 deletion client/userlistdock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <room.h>
#include <user.h>
#include "models/userlistmodel.h"
#include "quaternionroom.h"

UserListDock::UserListDock(QWidget* parent)
: QDockWidget(tr("Users"), parent)
Expand Down Expand Up @@ -92,11 +93,15 @@ UserListDock::UserListDock(QWidget* parent)
this, &UserListDock::showContextMenu);
}

void UserListDock::setRoom(QMatrixClient::Room* room)
void UserListDock::setRoom(QuaternionRoom* room)
{
if (m_currentRoom)
m_currentRoom->setCachedUserFilter(m_filterline->text());
m_currentRoom = room;
m_model->setRoom(room);
m_filterline->setEnabled(room);
m_filterline->setText(room ? room->cachedUserFilter() : "");
m_model->filter(m_filterline->text());
}

void UserListDock::refreshTitle()
Expand Down
6 changes: 3 additions & 3 deletions client/userlistdock.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@

namespace QMatrixClient
{
class Room;
class User;
}

class UserListModel;
class QuaternionRoom;
class QTableView;
class QMenu;
class QLineEdit;
Expand All @@ -39,7 +39,7 @@ class UserListDock: public QDockWidget
public:
explicit UserListDock(QWidget* parent = nullptr);

void setRoom( QMatrixClient::Room* room );
void setRoom( QuaternionRoom* room );

signals:
void userMentionRequested(QMatrixClient::User* u);
Expand All @@ -60,7 +60,7 @@ class UserListDock: public QDockWidget
QTableView* m_view;
QLineEdit* m_filterline;
UserListModel* m_model;
QMatrixClient::Room* m_currentRoom = nullptr;
QuaternionRoom* m_currentRoom = nullptr;

QMenu* contextMenu;
QAction* ignoreAction;
Expand Down