Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
tab_room.h
Go to the documentation of this file.
1
7
8#ifndef TAB_ROOM_H
9#define TAB_ROOM_H
10
11#include "../interface/widgets/utility/line_edit_completer.h"
12#include "tab.h"
13
14#include <QFocusEvent>
15#include <QGroupBox>
16#include <QMap>
17#include <QStringListModel>
18
19class UserListProxy;
20class UserListManager;
21namespace google
22{
23namespace protobuf
24{
25class Message;
26}
27} // namespace google
28class AbstractClient;
29class UserListWidget;
31class QLabel;
32class ChatView;
33class QPushButton;
34class QTextTable;
35class QCompleter;
36class RoomEvent;
37class ServerInfo_Room;
38class ServerInfo_Game;
39class Event_ListGames;
40class Event_JoinRoom;
41class Event_LeaveRoom;
42class Event_RoomSay;
44class GameSelector;
45class Response;
46class PendingCommand;
47class ServerInfo_User;
49
50class TabRoom : public Tab
51{
52 Q_OBJECT
53private:
55 int roomId;
56 QString roomName;
58 QMap<int, QString> gameTypes;
59
65 QLabel *sayLabel;
67 QStringListModel *mentionModel;
68 QGroupBox *chatGroupBox;
69
70 QMenu *roomMenu;
71 QAction *aLeaveRoom;
73 QAction *aClearChat;
74 [[nodiscard]] QString sanitizeHtml(QString dirty) const;
75
77 QCompleter *mentionCompleter;
78signals:
79 void roomClosing(TabRoom *tab);
80 void openMessageDialog(const QString &userName, bool focus);
82 void notIdle();
84private slots:
85 void sendMessage();
86 void sayFinished(const Response &response);
87 void actClearChat();
89 void addMentionTag(QString mentionTag);
90 void focusTab();
91 void actShowMentionPopup(const QString &sender);
92 void actShowPopup(const QString &message);
94
95 void processListGamesEvent(const Event_ListGames &event);
96 void processJoinRoomEvent(const Event_JoinRoom &event);
97 void processLeaveRoomEvent(const Event_LeaveRoom &event);
98 void processRoomSayEvent(const Event_RoomSay &event);
100 void refreshShortcuts();
101
102protected slots:
103 void closeEvent(QCloseEvent *event) override;
104
105public:
106 TabRoom(TabSupervisor *_tabSupervisor,
107 AbstractClient *_client,
108 ServerInfo_User *_ownUser,
109 const ServerInfo_Room &info);
110 void retranslateUi() override;
111 void tabActivated() override;
112 void processRoomEvent(const RoomEvent &event);
113 [[nodiscard]] int getRoomId() const
114 {
115 return roomId;
116 }
117 [[nodiscard]] QString getRoomName() const
118 {
119 return roomName;
120 }
121 [[nodiscard]] const QMap<int, QString> &getGameTypes() const
122 {
123 return gameTypes;
124 }
125 [[nodiscard]] QString getChannelName() const
126 {
127 return roomName;
128 }
129 [[nodiscard]] QString getTabText() const override
130 {
131 return roomName;
132 }
133 [[nodiscard]] const ServerInfo_User *getUserInfo() const
134 {
135 return ownUser;
136 }
137 [[nodiscard]] GameSelector *getGameSelector() const
138 {
139 return gameSelector;
140 }
141
142 PendingCommand *prepareRoomCommand(const ::google::protobuf::Message &cmd);
144};
145
146#endif
Definition abstract_client.h:57
Definition chat_view.h:44
Provides a widget for displaying, filtering, joining, spectating, and creating games in a room.
Definition game_selector.h:34
Definition line_edit_completer.h:33
Definition pending_command.h:16
QString getTabText() const override
Definition tab_room.h:129
void openMessageDialog(const QString &userName, bool focus)
void processJoinRoomEvent(const Event_JoinRoom &event)
Definition tab_room.cpp:302
void actClearChat()
Definition tab_room.cpp:253
void sayFinished(const Response &response)
Definition tab_room.cpp:246
const QMap< int, QString > & getGameTypes() const
Definition tab_room.h:121
void processListGamesEvent(const Event_ListGames &event)
Definition tab_room.cpp:293
TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerInfo_User *_ownUser, const ServerInfo_Room &info)
Definition tab_room.cpp:49
UserListPanelWidget * userListPanel
Definition tab_room.h:61
QMenu * roomMenu
Definition tab_room.h:70
int roomId
Definition tab_room.h:55
void processRoomEvent(const RoomEvent &event)
Definition tab_room.cpp:271
QMap< int, QString > gameTypes
Definition tab_room.h:58
const ServerInfo_User * getUserInfo() const
Definition tab_room.h:133
GameSelector * getGameSelector() const
Definition tab_room.h:137
void sendRoomCommand(PendingCommand *pend)
Definition tab_room.cpp:375
void actOpenChatSettings()
Definition tab_room.cpp:258
PendingCommand * prepareRoomCommand(const ::google::protobuf::Message &cmd)
Definition tab_room.cpp:370
QString roomName
Definition tab_room.h:56
void focusTab()
Definition tab_room.cpp:187
QAction * aClearChat
Definition tab_room.h:73
void maximizeClient()
QCompleter * mentionCompleter
Definition tab_room.h:77
ChatView * chatView
Definition tab_room.h:64
void sendMessage()
Definition tab_room.cpp:228
void processRoomSayEvent(const Event_RoomSay &event)
Definition tab_room.cpp:318
void tabActivated() override
Definition tab_room.cpp:216
QLabel * sayLabel
Definition tab_room.h:65
QAction * aLeaveRoom
Definition tab_room.h:71
void roomClosing(TabRoom *tab)
void actCompleterChanged()
Definition tab_room.cpp:265
void gameListUpdated()
int getRoomId() const
Definition tab_room.h:113
void actShowPopup(const QString &message)
Definition tab_room.cpp:199
QAction * aOpenChatSettings
Definition tab_room.h:72
LineEditCompleter * sayEdit
Definition tab_room.h:66
QStringList autocompleteUserList
Definition tab_room.h:76
GameSelector * gameSelector
Definition tab_room.h:60
void notIdle()
QString getRoomName() const
Definition tab_room.h:117
QString getChannelName() const
Definition tab_room.h:125
void actShowMentionPopup(const QString &sender)
Definition tab_room.cpp:194
QGroupBox * chatGroupBox
Definition tab_room.h:68
QString sanitizeHtml(QString dirty) const
Definition tab_room.cpp:223
UserListWidget * userList
Definition tab_room.h:62
const UserListProxy * userListProxy
Definition tab_room.h:63
ServerInfo_User * ownUser
Definition tab_room.h:57
void processRemoveMessagesEvent(const Event_RemoveMessages &event)
Definition tab_room.cpp:352
void retranslateUi() override
Definition tab_room.cpp:174
void refreshShortcuts()
Definition tab_room.cpp:359
void processLeaveRoomEvent(const Event_LeaveRoom &event)
Definition tab_room.cpp:311
AbstractClient * client
Definition tab_room.h:54
void addMentionTag(QString mentionTag)
Definition tab_room.cpp:364
QStringListModel * mentionModel
Definition tab_room.h:67
void closeEvent(QCloseEvent *event) override
Definition tab_room.cpp:209
Definition tab_supervisor.h:84
Tab(TabSupervisor *_tabSupervisor)
Definition tab.cpp:11
Definition user_list_manager.h:27
Definition user_list_panel_widget.h:23
Definition user_list_proxy.h:19
Definition user_list_widget.h:77
Definition player_actions.h:26
Definition player_actions.h:24
Definition event_join_room.proto:4
Definition event_leave_room.proto:3
Definition event_list_games.proto:4
Definition event_remove_messages.proto:3
Definition event_room_say.proto:3
Definition response.proto:11
Definition room_event.proto:2
Definition serverinfo_game.proto:5
Definition serverinfo_room.proto:5
Definition serverinfo_user.proto:2