summary refs log tree commit diff
path: root/include/RoomList.h
diff options
context:
space:
mode:
authorMax Sandholm <max@sandholm.org>2017-10-01 19:49:36 +0300
committermujx <mujx@users.noreply.github.com>2017-10-01 19:49:36 +0300
commit7ad45d8d6448c60b4c81c80fa8d6d81afd6e4a02 (patch)
tree821124200c7dac85128790115d527791c1fc4945 /include/RoomList.h
parentMore badges (diff)
downloadnheko-7ad45d8d6448c60b4c81c80fa8d6d81afd6e4a02.tar.xz
React to externally left and joined rooms, and add "leave room" button in room menu (#75)
* Initial "join room" feature.
* React correctly to remotely joined rooms.
* Leaving rooms implemented both locally using the room menu
   in nheko, and reacting properly when leaving a room remotely 
   from another client.
Diffstat (limited to 'include/RoomList.h')
-rw-r--r--include/RoomList.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/RoomList.h b/include/RoomList.h

index 573f43a8..c2f4255d 100644 --- a/include/RoomList.h +++ b/include/RoomList.h
@@ -17,12 +17,16 @@ #pragma once +#include <QPushButton> #include <QScrollArea> #include <QSharedPointer> #include <QVBoxLayout> #include <QWidget> +#include "JoinRoomDialog.h" +#include "LeaveRoomDialog.h" #include "MatrixClient.h" +#include "OverlayModal.h" #include "RoomInfoListItem.h" #include "RoomState.h" #include "Sync.h" @@ -41,6 +45,11 @@ public: void clear(); + void addRoom(const QSharedPointer<RoomSettings> &settings, + const RoomState &state, + const QString &room_id); + void removeRoom(const QString &room_id, bool reset); + signals: void roomChanged(const QString &room_id); void totalUnreadMessageCountUpdated(int count); @@ -50,6 +59,9 @@ public slots: void highlightSelectedRoom(const QString &room_id); void updateUnreadMessageCount(const QString &roomid, int count); void updateRoomDescription(const QString &roomid, const DescInfo &info); + void closeJoinRoomDialog(bool isJoining, QString roomAlias); + void openLeaveRoomDialog(const QString &room_id); + void closeLeaveRoomDialog(bool leaving, const QString &room_id); private: void calculateUnreadMessageCount(); @@ -59,6 +71,14 @@ private: QScrollArea *scrollArea_; QWidget *scrollAreaContents_; + QPushButton *joinRoomButton_; + + OverlayModal *joinRoomModal_; + JoinRoomDialog *joinRoomDialog_; + + OverlayModal *leaveRoomModal; + LeaveRoomDialog *leaveRoomDialog_; + QMap<QString, QSharedPointer<RoomInfoListItem>> rooms_; QSharedPointer<MatrixClient> client_;