Uername block highlighting
I was able to find a simple way to achive the block highlighting.
This commit is contained in:
parent
e4afd9fa4d
commit
49d3ad73d5
2 changed files with 21 additions and 6 deletions
|
@ -18,6 +18,13 @@ ChatView::ChatView(const TabSupervisor *_tabSupervisor, TabGame *_game, bool _sh
|
||||||
userContextMenu = new UserContextMenu(tabSupervisor, this, game);
|
userContextMenu = new UserContextMenu(tabSupervisor, this, game);
|
||||||
connect(userContextMenu, SIGNAL(openMessageDialog(QString, bool)), this, SIGNAL(openMessageDialog(QString, bool)));
|
connect(userContextMenu, SIGNAL(openMessageDialog(QString, bool)), this, SIGNAL(openMessageDialog(QString, bool)));
|
||||||
|
|
||||||
|
userName = QString::fromStdString(tabSupervisor->getUserInfo()->name());
|
||||||
|
mention = "@" + userName.toLower();
|
||||||
|
|
||||||
|
mentionFormat.setFontWeight(QFont::Bold);
|
||||||
|
mentionFormat.setForeground(QBrush(Qt::white));
|
||||||
|
mentionFormat.setBackground(QBrush(QColor(190, 25, 85)));
|
||||||
|
|
||||||
viewport()->setCursor(Qt::IBeamCursor);
|
viewport()->setCursor(Qt::IBeamCursor);
|
||||||
setReadOnly(true);
|
setReadOnly(true);
|
||||||
setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse);
|
setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse);
|
||||||
|
@ -104,7 +111,7 @@ void ChatView::appendMessage(QString message, QString sender, UserLevelFlags use
|
||||||
QTextCharFormat senderFormat;
|
QTextCharFormat senderFormat;
|
||||||
if (tabSupervisor && tabSupervisor->getUserInfo() && (sender == QString::fromStdString(tabSupervisor->getUserInfo()->name()))) {
|
if (tabSupervisor && tabSupervisor->getUserInfo() && (sender == QString::fromStdString(tabSupervisor->getUserInfo()->name()))) {
|
||||||
senderFormat.setFontWeight(QFont::Bold);
|
senderFormat.setFontWeight(QFont::Bold);
|
||||||
senderFormat.setForeground(QBrush(QColor(255, 120, 0)));
|
senderFormat.setForeground(QBrush(QColor(190, 25, 85)));
|
||||||
} else {
|
} else {
|
||||||
senderFormat.setForeground(Qt::blue);
|
senderFormat.setForeground(Qt::blue);
|
||||||
if (playerBold)
|
if (playerBold)
|
||||||
|
@ -172,15 +179,19 @@ void ChatView::appendMessage(QString message, QString sender, UserLevelFlags use
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settingsCache->getChatMention()) {
|
if (settingsCache->getChatMention()) {
|
||||||
if (message.toLower().contains("@" + QString::fromStdString(tabSupervisor->getUserInfo()->name()).toLower())) {
|
if (message.toLower().contains(mention)) {
|
||||||
messageFormat.setFontWeight(QFont::Bold);
|
int mentionIndex;
|
||||||
messageFormat.setForeground(QBrush(QColor(255, 120, 0)));
|
while ((mentionIndex = message.toLower().indexOf(mention)) != -1) {
|
||||||
|
cursor.insertText(message.left(mentionIndex), defaultFormat);
|
||||||
|
cursor.insertText(userName, mentionFormat);
|
||||||
|
message = message.mid(mentionIndex + mention.size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!message.isEmpty())
|
if (!message.isEmpty())
|
||||||
cursor.insertText(message, messageFormat);
|
cursor.insertText(message, defaultFormat);
|
||||||
|
|
||||||
if (atBottom)
|
if (atBottom)
|
||||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,10 @@ private:
|
||||||
enum HoveredItemType { HoveredNothing, HoveredUrl, HoveredCard, HoveredUser };
|
enum HoveredItemType { HoveredNothing, HoveredUrl, HoveredCard, HoveredUser };
|
||||||
UserContextMenu *userContextMenu;
|
UserContextMenu *userContextMenu;
|
||||||
QString lastSender;
|
QString lastSender;
|
||||||
|
QString userName;
|
||||||
|
QString mention;
|
||||||
|
QTextCharFormat mentionFormat;
|
||||||
|
QTextCharFormat defaultFormat;
|
||||||
bool evenNumber;
|
bool evenNumber;
|
||||||
bool showTimestamps;
|
bool showTimestamps;
|
||||||
HoveredItemType hoveredItemType;
|
HoveredItemType hoveredItemType;
|
||||||
|
|
Loading…
Reference in a new issue