mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 20:48:52 +03:00
Make the author text slightly large.
Add author color generated based on user id.
This commit is contained in:
parent
10095b8704
commit
1882198e4b
3 changed files with 27 additions and 2 deletions
|
@ -382,6 +382,23 @@ utils::linkColor()
|
|||
return QPalette().color(QPalette::Link).name();
|
||||
}
|
||||
|
||||
QString
|
||||
utils::generateHexColor(const QString &input)
|
||||
{
|
||||
auto hash = 0;
|
||||
|
||||
for (int i = 0; i < input.length(); i++) {
|
||||
hash = input.at(i).digitValue() + ((hash << 5) - hash);
|
||||
}
|
||||
hash *= 13;
|
||||
QString colour("#");
|
||||
for (int i = 0; i < 3; i++) {
|
||||
int value = (hash >> (i * 8)) & 0xFF;
|
||||
colour.append(("00" + QString::number(value, 16)).right(2));
|
||||
}
|
||||
return colour;
|
||||
}
|
||||
|
||||
void
|
||||
utils::centerWidget(QWidget *widget, QWidget *parent)
|
||||
{
|
||||
|
|
|
@ -227,6 +227,10 @@ markdownToHtml(const QString &text);
|
|||
QString
|
||||
linkColor();
|
||||
|
||||
//! Given an input string, create a color string
|
||||
QString
|
||||
generateHexColor(const QString &string);
|
||||
|
||||
//! Center a widget in relation to another widget.
|
||||
void
|
||||
centerWidget(QWidget *widget, QWidget *parent);
|
||||
|
|
|
@ -622,8 +622,10 @@ TimelineItem::generateUserName(const QString &user_id, const QString &displaynam
|
|||
sender = displayname.split(":")[0].split("@")[1];
|
||||
}
|
||||
|
||||
auto userColor = utils::generateHexColor(user_id);
|
||||
|
||||
QFont usernameFont;
|
||||
usernameFont.setPointSizeF(usernameFont.pointSizeF());
|
||||
usernameFont.setPointSizeF(usernameFont.pointSizeF() * 1.1);
|
||||
usernameFont.setWeight(QFont::Medium);
|
||||
|
||||
QFontMetrics fm(usernameFont);
|
||||
|
@ -637,6 +639,8 @@ TimelineItem::generateUserName(const QString &user_id, const QString &displaynam
|
|||
userName_->setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
||||
userName_->setFixedWidth(QFontMetrics(userName_->font()).width(userName_->text()));
|
||||
|
||||
userName_->setStyleSheet("QLabel { color : " + userColor + "; }");
|
||||
|
||||
auto filter = new UserProfileFilter(user_id, userName_);
|
||||
userName_->installEventFilter(filter);
|
||||
userName_->setCursor(Qt::PointingHandCursor);
|
||||
|
@ -837,4 +841,4 @@ TimelineItem::openRawMessageViewer() const
|
|||
"failed to serialize event ({}, {})", room_id, event_id);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue