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();
}
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)
{

View File

@ -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);

View File

@ -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);