mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-10 20:33:58 -07:00
70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
/**
|
|
* @file tab_message.h
|
|
* @ingroup MessagingTabs
|
|
*/
|
|
//! \todo Document this file.
|
|
|
|
#ifndef TAB_MESSAGE_H
|
|
#define TAB_MESSAGE_H
|
|
|
|
#include "tab.h"
|
|
|
|
#include <QLoggingCategory>
|
|
|
|
inline Q_LOGGING_CATEGORY(TabMessageLog, "tab_message");
|
|
|
|
class AbstractClient;
|
|
class ChatView;
|
|
class LineEditUnfocusable;
|
|
class Event_UserMessage;
|
|
class Response;
|
|
class ServerInfo_User;
|
|
|
|
class TabMessage : public Tab
|
|
{
|
|
Q_OBJECT
|
|
private:
|
|
AbstractClient *client;
|
|
QMenu *messageMenu;
|
|
ServerInfo_User *ownUserInfo;
|
|
ServerInfo_User *otherUserInfo;
|
|
bool userOnline;
|
|
|
|
ChatView *chatView;
|
|
LineEditUnfocusable *sayEdit;
|
|
|
|
QAction *aLeave;
|
|
signals:
|
|
void talkClosing(TabMessage *tab);
|
|
void maximizeClient();
|
|
private slots:
|
|
void sendMessage();
|
|
void messageSent(const Response &response);
|
|
void addMentionTag(QString mentionTag);
|
|
void messageClicked();
|
|
|
|
protected slots:
|
|
void closeEvent(QCloseEvent *event) override;
|
|
|
|
public:
|
|
TabMessage(TabSupervisor *_tabSupervisor,
|
|
AbstractClient *_client,
|
|
const ServerInfo_User &_ownUserInfo,
|
|
const ServerInfo_User &_otherUserInfo);
|
|
~TabMessage() override;
|
|
void retranslateUi() override;
|
|
void tabActivated() override;
|
|
[[nodiscard]] QString getUserName() const;
|
|
[[nodiscard]] QString getTabText() const override;
|
|
|
|
void processUserMessageEvent(const Event_UserMessage &event);
|
|
|
|
void processUserLeft();
|
|
void processUserJoined(const ServerInfo_User &_userInfo);
|
|
|
|
private:
|
|
bool shouldShowSystemPopup(const Event_UserMessage &event);
|
|
void showSystemPopup(const Event_UserMessage &event);
|
|
};
|
|
|
|
#endif
|