Make the author text slightly large.

Add author color generated based on user id.
This commit is contained in:
redsky17 2019-01-18 04:09:42 +00:00
parent 10095b8704
commit 1882198e4b
3 changed files with 27 additions and 2 deletions

View file

@ -382,6 +382,23 @@ utils::linkColor()
return QPalette().color(QPalette::Link).name(); 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 void
utils::centerWidget(QWidget *widget, QWidget *parent) utils::centerWidget(QWidget *widget, QWidget *parent)
{ {

View file

@ -227,6 +227,10 @@ markdownToHtml(const QString &text);
QString QString
linkColor(); linkColor();
//! Given an input string, create a color string
QString
generateHexColor(const QString &string);
//! Center a widget in relation to another widget. //! Center a widget in relation to another widget.
void void
centerWidget(QWidget *widget, QWidget *parent); centerWidget(QWidget *widget, QWidget *parent);

View file

@ -622,8 +622,10 @@ TimelineItem::generateUserName(const QString &user_id, const QString &displaynam
sender = displayname.split(":")[0].split("@")[1]; sender = displayname.split(":")[0].split("@")[1];
} }
auto userColor = utils::generateHexColor(user_id);
QFont usernameFont; QFont usernameFont;
usernameFont.setPointSizeF(usernameFont.pointSizeF()); usernameFont.setPointSizeF(usernameFont.pointSizeF() * 1.1);
usernameFont.setWeight(QFont::Medium); usernameFont.setWeight(QFont::Medium);
QFontMetrics fm(usernameFont); QFontMetrics fm(usernameFont);
@ -637,6 +639,8 @@ TimelineItem::generateUserName(const QString &user_id, const QString &displaynam
userName_->setAlignment(Qt::AlignLeft | Qt::AlignTop); userName_->setAlignment(Qt::AlignLeft | Qt::AlignTop);
userName_->setFixedWidth(QFontMetrics(userName_->font()).width(userName_->text())); userName_->setFixedWidth(QFontMetrics(userName_->font()).width(userName_->text()));
userName_->setStyleSheet("QLabel { color : " + userColor + "; }");
auto filter = new UserProfileFilter(user_id, userName_); auto filter = new UserProfileFilter(user_id, userName_);
userName_->installEventFilter(filter); userName_->installEventFilter(filter);
userName_->setCursor(Qt::PointingHandCursor); userName_->setCursor(Qt::PointingHandCursor);
@ -837,4 +841,4 @@ TimelineItem::openRawMessageViewer() const
"failed to serialize event ({}, {})", room_id, event_id); "failed to serialize event ({}, {})", room_id, event_id);
} }
}); });
} }