Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform 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
62 QLabel *sayLabel;
64 QGroupBox *chatGroupBox;
65
66 QMenu *roomMenu;
67 QAction *aLeaveRoom;
69 QAction *aClearChat;
70 [[nodiscard]] QString sanitizeHtml(QString dirty) const;
71
73 QCompleter *completer;
74signals:
75 void roomClosing(TabRoom *tab);
76 void openMessageDialog(const QString &userName, bool focus);
78 void notIdle();
79private slots:
80 void sendMessage();
81 void sayFinished(const Response &response);
82 void actClearChat();
84 void addMentionTag(QString mentionTag);
85 void focusTab();
86 void actShowMentionPopup(const QString &sender);
87 void actShowPopup(const QString &message);
89
90 void processListGamesEvent(const Event_ListGames &event);
91 void processJoinRoomEvent(const Event_JoinRoom &event);
92 void processLeaveRoomEvent(const Event_LeaveRoom &event);
93 void processRoomSayEvent(const Event_RoomSay &event);
94 void processRemoveMessagesEvent(const Event_RemoveMessages &event);
95 void refreshShortcuts();
96
97protected slots:
98 void closeEvent(QCloseEvent *event) override;
99
100public:
101 TabRoom(TabSupervisor *_tabSupervisor,
102 AbstractClient *_client,
103 ServerInfo_User *_ownUser,
104 const ServerInfo_Room &info);
105 void retranslateUi() override;
106 void tabActivated() override;
107 void processRoomEvent(const RoomEvent &event);
108 [[nodiscard]] int getRoomId() const
109 {
110 return roomId;
111 }
112 [[nodiscard]] const QMap<int, QString> &getGameTypes() const
113 {
114 return gameTypes;
115 }
116 [[nodiscard]] QString getChannelName() const
117 {
118 return roomName;
119 }
120 [[nodiscard]] QString getTabText() const override
121 {
122 return roomName;
123 }
124 [[nodiscard]] const ServerInfo_User *getUserInfo() const
125 {
126 return ownUser;
127 }
128
129 PendingCommand *prepareRoomCommand(const ::google::protobuf::Message &cmd);
131};
132
133#endif
Definition abstract_client.h:51
Definition chat_view.h:40
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:120
void openMessageDialog(const QString &userName, bool focus)
void processJoinRoomEvent(const Event_JoinRoom &event)
Definition tab_room.cpp:265
void actClearChat()
Definition tab_room.cpp:218
void sayFinished(const Response &response)
Definition tab_room.cpp:212
const QMap< int, QString > & getGameTypes() const
Definition tab_room.h:112
void processListGamesEvent(const Event_ListGames &event)
Definition tab_room.cpp:258
TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerInfo_User *_ownUser, const ServerInfo_Room &info)
Definition tab_room.cpp:36
QMenu * roomMenu
Definition tab_room.h:66
int roomId
Definition tab_room.h:53
void processRoomEvent(const RoomEvent &event)
Definition tab_room.cpp:236
QMap< int, QString > gameTypes
Definition tab_room.h:56
const ServerInfo_User * getUserInfo() const
Definition tab_room.h:124
void sendRoomCommand(PendingCommand *pend)
Definition tab_room.cpp:335
void actOpenChatSettings()
Definition tab_room.cpp:223
PendingCommand * prepareRoomCommand(const ::google::protobuf::Message &cmd)
Definition tab_room.cpp:330
QString roomName
Definition tab_room.h:54
void focusTab()
Definition tab_room.cpp:154
QAction * aClearChat
Definition tab_room.h:69
void maximizeClient()
QCompleter * completer
Definition tab_room.h:73
ChatView * chatView
Definition tab_room.h:61
void sendMessage()
Definition tab_room.cpp:194
void processRoomSayEvent(const Event_RoomSay &event)
Definition tab_room.cpp:282
void tabActivated() override
Definition tab_room.cpp:183
QLabel * sayLabel
Definition tab_room.h:62
QAction * aLeaveRoom
Definition tab_room.h:67
void roomClosing(TabRoom *tab)
void actCompleterChanged()
Definition tab_room.cpp:230
int getRoomId() const
Definition tab_room.h:108
void actShowPopup(const QString &message)
Definition tab_room.cpp:166
QAction * aOpenChatSettings
Definition tab_room.h:68
LineEditCompleter * sayEdit
Definition tab_room.h:63
QStringList autocompleteUserList
Definition tab_room.h:72
GameSelector * gameSelector
Definition tab_room.h:58
void notIdle()
QString getChannelName() const
Definition tab_room.h:116
void actShowMentionPopup(const QString &sender)
Definition tab_room.cpp:161
QGroupBox * chatGroupBox
Definition tab_room.h:64
QString sanitizeHtml(QString dirty) const
Definition tab_room.cpp:189
UserListWidget * userList
Definition tab_room.h:59
const UserListProxy * userListProxy
Definition tab_room.h:60
ServerInfo_User * ownUser
Definition tab_room.h:55
void processRemoveMessagesEvent(const Event_RemoveMessages &event)
Definition tab_room.cpp:312
void retranslateUi() override
Definition tab_room.cpp:141
void refreshShortcuts()
Definition tab_room.cpp:319
void processLeaveRoomEvent(const Event_LeaveRoom &event)
Definition tab_room.cpp:275
AbstractClient * client
Definition tab_room.h:52
void addMentionTag(QString mentionTag)
Definition tab_room.cpp:324
void closeEvent(QCloseEvent *event) override
Definition tab_room.cpp:176
Definition tab_supervisor.h:83
Tab(TabSupervisor *_tabSupervisor)
Definition tab.cpp:11
Definition user_list_manager.h:27
Definition user_list_proxy.h:19
Definition user_list_widget.h:122
Definition phases_toolbar.h:20
Definition phases_toolbar.h:18
TODO: Document this.