Commit 2e342361 authored by Matt Lowe's avatar Matt Lowe
Browse files

Clear chat

Users can now clear the chat in the main lobby. This removes unwanted
text and clears up memory when the client has been open a long time.
parent 7476667b
...@@ -175,6 +175,10 @@ void ChatView::appendMessage(QString message, QString sender, UserLevelFlags use ...@@ -175,6 +175,10 @@ void ChatView::appendMessage(QString message, QString sender, UserLevelFlags use
verticalScrollBar()->setValue(verticalScrollBar()->maximum()); verticalScrollBar()->setValue(verticalScrollBar()->maximum());
} }
void ChatView::clearChat() {
document()->clear();
}
void ChatView::enterEvent(QEvent * /*event*/) void ChatView::enterEvent(QEvent * /*event*/)
{ {
setMouseTracking(true); setMouseTracking(true);
......
...@@ -37,6 +37,7 @@ public: ...@@ -37,6 +37,7 @@ public:
void retranslateUi(); void retranslateUi();
void appendHtml(const QString &html); void appendHtml(const QString &html);
void appendMessage(QString message, QString sender = QString(), UserLevelFlags userLevel = UserLevelFlags(), bool playerBold = false); void appendMessage(QString message, QString sender = QString(), UserLevelFlags userLevel = UserLevelFlags(), bool playerBold = false);
void clearChat();
protected: protected:
void enterEvent(QEvent *event); void enterEvent(QEvent *event);
void leaveEvent(QEvent *event); void leaveEvent(QEvent *event);
......
...@@ -53,6 +53,9 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI ...@@ -53,6 +53,9 @@ TabRoom::TabRoom(TabSupervisor *_tabSupervisor, AbstractClient *_client, ServerI
aIgnoreUnregisteredUsers = chatSettingsMenu->addAction(QString()); aIgnoreUnregisteredUsers = chatSettingsMenu->addAction(QString());
aIgnoreUnregisteredUsers->setCheckable(true); aIgnoreUnregisteredUsers->setCheckable(true);
connect(aIgnoreUnregisteredUsers, SIGNAL(triggered()), this, SLOT(actIgnoreUnregisteredUsers())); connect(aIgnoreUnregisteredUsers, SIGNAL(triggered()), this, SLOT(actIgnoreUnregisteredUsers()));
chatSettingsMenu->addSeparator();
aClearChat = chatSettingsMenu->addAction(QString());
connect(aClearChat, SIGNAL(triggered()), this, SLOT(actClearChat()));
connect(settingsCache, SIGNAL(ignoreUnregisteredUsersChanged()), this, SLOT(ignoreUnregisteredUsersChanged())); connect(settingsCache, SIGNAL(ignoreUnregisteredUsersChanged()), this, SLOT(ignoreUnregisteredUsersChanged()));
QToolButton *chatSettingsButton = new QToolButton; QToolButton *chatSettingsButton = new QToolButton;
chatSettingsButton->setIcon(QIcon(":/resources/icon_settings.svg")); chatSettingsButton->setIcon(QIcon(":/resources/icon_settings.svg"));
...@@ -114,6 +117,7 @@ void TabRoom::retranslateUi() ...@@ -114,6 +117,7 @@ void TabRoom::retranslateUi()
roomMenu->setTitle(tr("&Room")); roomMenu->setTitle(tr("&Room"));
aLeaveRoom->setText(tr("&Leave room")); aLeaveRoom->setText(tr("&Leave room"));
aIgnoreUnregisteredUsers->setText(tr("&Ignore unregistered users in chat")); aIgnoreUnregisteredUsers->setText(tr("&Ignore unregistered users in chat"));
aClearChat->setText(tr("&Clear chat"));
} }
void TabRoom::closeRequest() void TabRoom::closeRequest()
...@@ -172,6 +176,10 @@ void TabRoom::ignoreUnregisteredUsersChanged() ...@@ -172,6 +176,10 @@ void TabRoom::ignoreUnregisteredUsersChanged()
aIgnoreUnregisteredUsers->setChecked(settingsCache->getIgnoreUnregisteredUsers()); aIgnoreUnregisteredUsers->setChecked(settingsCache->getIgnoreUnregisteredUsers());
} }
void TabRoom::actClearChat() {
chatView->clearChat();
}
void TabRoom::processRoomEvent(const RoomEvent &event) void TabRoom::processRoomEvent(const RoomEvent &event)
{ {
switch (static_cast<RoomEvent::RoomEventType>(getPbExtension(event))) { switch (static_cast<RoomEvent::RoomEventType>(getPbExtension(event))) {
......
...@@ -44,6 +44,7 @@ private: ...@@ -44,6 +44,7 @@ private:
QMenu *roomMenu; QMenu *roomMenu;
QAction *aLeaveRoom; QAction *aLeaveRoom;
QAction *aIgnoreUnregisteredUsers; QAction *aIgnoreUnregisteredUsers;
QAction * aClearChat;
QString sanitizeHtml(QString dirty) const; QString sanitizeHtml(QString dirty) const;
signals: signals:
void roomClosing(TabRoom *tab); void roomClosing(TabRoom *tab);
...@@ -53,6 +54,7 @@ private slots: ...@@ -53,6 +54,7 @@ private slots:
void sayFinished(const Response &response); void sayFinished(const Response &response);
void actLeaveRoom(); void actLeaveRoom();
void actIgnoreUnregisteredUsers(); void actIgnoreUnregisteredUsers();
void actClearChat();
void ignoreUnregisteredUsersChanged(); void ignoreUnregisteredUsersChanged();
void processListGamesEvent(const Event_ListGames &event); void processListGamesEvent(const Event_ListGames &event);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment