Cockatrice 2026-06-27-Development-3.1.0-beta.3
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
18class UserListProxy;
19class UserListManager;
20namespace google
21{
22namespace protobuf
23{
24class Message;
25}
26} // namespace google
27class AbstractClient;
28class UserListWidget;
29class QLabel;
30class ChatView;
31class QPushButton;
32class QTextTable;
33class QCompleter;
34class RoomEvent;
35class ServerInfo_Room;
36class ServerInfo_Game;
37class Event_ListGames;
38class Event_JoinRoom;
39class Event_LeaveRoom;
40class Event_RoomSay;
41class Event_RemoveMessages;
42class GameSelector;
43class Response;
44class PendingCommand;
45class ServerInfo_User;
47
48class TabRoom : public Tab
49{
50 Q_OBJECT
51private:
53 int roomId;
54 QString roomName;
55 ServerInfo_User *ownUser;
56 QMap<int, QString> gameTypes;
57
64 QLabel *sayLabel;
66 QGroupBox *chatGroupBox;
67
68 QMenu *roomMenu;
69 QAction *aLeaveRoom;
71 QAction *aClearChat;
72 [[nodiscard]] QString sanitizeHtml(QString dirty) const;
73
75 QCompleter *completer;
76signals:
77 void roomClosing(TabRoom *tab);
78 void openMessageDialog(const QString &userName, bool focus);
80 void notIdle();
81private slots:
82 void sendMessage();
83 void sayFinished(const Response &response);
84 void actClearChat();
86 void addMentionTag(QString mentionTag);
87 void focusTab();
88 void actShowMentionPopup(const QString &sender);
89 void actShowPopup(const QString &message);
91
92 void processListGamesEvent(const Event_ListGames &event);
93 void processJoinRoomEvent(const Event_JoinRoom &event);
94 void processLeaveRoomEvent(const Event_LeaveRoom &event);
95 void processRoomSayEvent(const Event_RoomSay &event);
96 void processRemoveMessagesEvent(const Event_RemoveMessages &event);
97 void refreshShortcuts();
98
99protected slots:
100 void closeEvent(QCloseEvent *event) override;
101
102public:
103 TabRoom(TabSupervisor *_tabSupervisor,
104 AbstractClient *_client,
105 ServerInfo_User *_ownUser,
106 const ServerInfo_Room &info);
107 void retranslateUi() override;
108 void tabActivated() override;
109 void processRoomEvent(const RoomEvent &event);
110 [[nodiscard]] int getRoomId() const
111 {
112 return roomId;
113 }
114 [[nodiscard]] const QMap<int, QString> &getGameTypes() const
115 {
116 return gameTypes;
117 }
118 [[nodiscard]] QString getChannelName() const
119 {
120 return roomName;
121 }
122 [[nodiscard]] QString getTabText() const override
123 {
124 return roomName;
125 }
126 [[nodiscard]] const ServerInfo_User *getUserInfo() const
127 {
128 return ownUser;
129 }
130
131 PendingCommand *prepareRoomCommand(const ::google::protobuf::Message &cmd);
133};
134
135#endif
Definition abstract_client.h:51
Definition chat_view.h:37
Provides a widget for displaying, filtering, joining, spectating, and creating games in a room.
Definition game_selector.h:34
Definition line_edit_completer.h:15
Definition pending_command.h:15
QString getTabText() const override
Definition tab_room.h:122
void openMessageDialog(const QString &userName, bool focus)
void processJoinRoomEvent(const Event_JoinRoom &event)
Definition tab_room.cpp:283
void actClearChat()
Definition tab_room.cpp:235
void sayFinished(const Response &response)
Definition tab_room.cpp:228
const QMap< int, QString > & getGameTypes() const
Definition tab_room.h:114
void processListGamesEvent(const Event_ListGames &event)
Definition tab_room.cpp:275
TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerInfo_User *_ownUser, const ServerInfo_Room &info)
Definition tab_room.cpp:36
QMenu * roomMenu
Definition tab_room.h:68
int roomId
Definition tab_room.h:53
void processRoomEvent(const RoomEvent &event)
Definition tab_room.cpp:253
QMap< int, QString > gameTypes
Definition tab_room.h:56
const ServerInfo_User * getUserInfo() const
Definition tab_room.h:126
void sendRoomCommand(PendingCommand *pend)
Definition tab_room.cpp:354
UserListWidget * friendsList
Definition tab_room.h:59
void actOpenChatSettings()
Definition tab_room.cpp:240
PendingCommand * prepareRoomCommand(const ::google::protobuf::Message &cmd)
Definition tab_room.cpp:349
QString roomName
Definition tab_room.h:54
void focusTab()
Definition tab_room.cpp:169
QAction * aClearChat
Definition tab_room.h:71
void maximizeClient()
UserListWidget * ignoreList
Definition tab_room.h:61
QCompleter * completer
Definition tab_room.h:75
ChatView * chatView
Definition tab_room.h:63
void sendMessage()
Definition tab_room.cpp:210
void processRoomSayEvent(const Event_RoomSay &event)
Definition tab_room.cpp:297
void tabActivated() override
Definition tab_room.cpp:198
QLabel * sayLabel
Definition tab_room.h:64
QAction * aLeaveRoom
Definition tab_room.h:69
void roomClosing(TabRoom *tab)
void actCompleterChanged()
Definition tab_room.cpp:247
int getRoomId() const
Definition tab_room.h:110
void actShowPopup(const QString &message)
Definition tab_room.cpp:181
QAction * aOpenChatSettings
Definition tab_room.h:70
LineEditCompleter * sayEdit
Definition tab_room.h:65
QStringList autocompleteUserList
Definition tab_room.h:74
GameSelector * gameSelector
Definition tab_room.h:58
void notIdle()
QString getChannelName() const
Definition tab_room.h:118
void actShowMentionPopup(const QString &sender)
Definition tab_room.cpp:176
QGroupBox * chatGroupBox
Definition tab_room.h:66
QString sanitizeHtml(QString dirty) const
Definition tab_room.cpp:205
UserListWidget * userList
Definition tab_room.h:60
const UserListProxy * userListProxy
Definition tab_room.h:62
ServerInfo_User * ownUser
Definition tab_room.h:55
void processRemoveMessagesEvent(const Event_RemoveMessages &event)
Definition tab_room.cpp:331
void retranslateUi() override
Definition tab_room.cpp:156
void refreshShortcuts()
Definition tab_room.cpp:338
void processLeaveRoomEvent(const Event_LeaveRoom &event)
Definition tab_room.cpp:291
AbstractClient * client
Definition tab_room.h:52
void addMentionTag(QString mentionTag)
Definition tab_room.cpp:343
void closeEvent(QCloseEvent *event) override
Definition tab_room.cpp:191
Definition tab_supervisor.h:84
Tab(TabSupervisor *_tabSupervisor)
Definition tab.cpp:11
Definition user_list_manager.h:27
Definition user_list_proxy.h:19
Definition user_list_widget.h:139
Definition player_actions.h:26
Definition player_actions.h:24