Skip to content
Snippets Groups Projects
Commit 77e241b9 authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Reenable top bar room settings menus on avatar or title clicks

Also fixes a bug with an empty room settings window introduced in the
port.
parent 640b0ee4
No related branches found
No related tags found
No related merge requests found
......@@ -126,6 +126,11 @@ Page {
color: colors.base
MouseArea {
anchors.fill: parent
onClicked: timelineManager.openRoomSettings();
}
GridLayout {
id: topLayout
......@@ -164,6 +169,11 @@ Page {
height: avatarSize
url: chat.model.roomAvatarUrl.replace("mxc://", "image://MxcImage/")
displayName: chat.model.roomName
MouseArea {
anchors.fill: parent
onClicked: timelineManager.openRoomSettings();
}
}
Label {
......@@ -173,6 +183,11 @@ Page {
font.pointSize: fontMetrics.font.pointSize * 1.1
text: chat.model.roomName
MouseArea {
anchors.fill: parent
onClicked: timelineManager.openRoomSettings();
}
}
MatrixText {
Layout.fillWidth: true
......
......@@ -225,6 +225,9 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
}
});
connect(room_list_, &RoomList::roomChanged, this, [this](QString room_id) {
this->current_room_ = room_id;
});
connect(room_list_, &RoomList::roomChanged, text_input_, &TextInputWidget::stopTyping);
connect(room_list_, &RoomList::roomChanged, splitter, &Splitter::showChatView);
connect(room_list_, &RoomList::roomChanged, text_input_, &TextInputWidget::focusLineEdit);
......
......@@ -340,9 +340,7 @@ MainWindow::openUserProfile(const QString &user_id, const QString &room_id)
void
MainWindow::openRoomSettings(const QString &room_id)
{
const auto roomToSearch = room_id.isEmpty() ? chat_page_->currentRoom() : "";
auto dialog = new dialogs::RoomSettings(roomToSearch, this);
auto dialog = new dialogs::RoomSettings(room_id, this);
showDialog(dialog);
}
......@@ -350,8 +348,7 @@ MainWindow::openRoomSettings(const QString &room_id)
void
MainWindow::openMemberListDialog(const QString &room_id)
{
const auto roomToSearch = room_id.isEmpty() ? chat_page_->currentRoom() : "";
auto dialog = new dialogs::MemberList(roomToSearch, this);
auto dialog = new dialogs::MemberList(room_id, this);
showDialog(dialog);
}
......@@ -359,11 +356,9 @@ MainWindow::openMemberListDialog(const QString &room_id)
void
MainWindow::openLeaveRoomDialog(const QString &room_id)
{
auto roomToLeave = room_id.isEmpty() ? chat_page_->currentRoom() : room_id;
auto dialog = new dialogs::LeaveRoom(this);
connect(dialog, &dialogs::LeaveRoom::leaving, this, [this, roomToLeave]() {
chat_page_->leaveRoom(roomToLeave);
connect(dialog, &dialogs::LeaveRoom::leaving, this, [this, room_id]() {
chat_page_->leaveRoom(room_id);
});
showDialog(dialog);
......
......@@ -68,14 +68,14 @@ public:
static MainWindow *instance() { return instance_; };
void saveCurrentWindowSize();
void openLeaveRoomDialog(const QString &room_id = "");
void openLeaveRoomDialog(const QString &room_id);
void openInviteUsersDialog(std::function<void(const QStringList &invitees)> callback);
void openCreateRoomDialog(
std::function<void(const mtx::requests::CreateRoom &request)> callback);
void openJoinRoomDialog(std::function<void(const QString &room_id)> callback);
void openLogoutDialog();
void openRoomSettings(const QString &room_id = "");
void openMemberListDialog(const QString &room_id = "");
void openRoomSettings(const QString &room_id);
void openMemberListDialog(const QString &room_id);
void openUserProfile(const QString &user_id, const QString &room_id);
void openReadReceiptsDialog(const QString &event_id);
......
......@@ -260,6 +260,7 @@ public slots:
QString roomName() const;
QString roomTopic() const;
QString roomAvatarUrl() const;
QString roomId() const { return room_id_; }
private slots:
void addPendingMessage(mtx::events::collections::TimelineEvents event);
......
......@@ -253,17 +253,17 @@ TimelineViewManager::openInviteUsersDialog()
void
TimelineViewManager::openMemberListDialog() const
{
MainWindow::instance()->openMemberListDialog();
MainWindow::instance()->openMemberListDialog(timeline_->roomId());
}
void
TimelineViewManager::openLeaveRoomDialog() const
{
MainWindow::instance()->openLeaveRoomDialog();
MainWindow::instance()->openLeaveRoomDialog(timeline_->roomId());
}
void
TimelineViewManager::openRoomSettings() const
{
MainWindow::instance()->openRoomSettings();
MainWindow::instance()->openRoomSettings(timeline_->roomId());
}
void
......
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