Use color generator for nick names

This commit is contained in:
Konstantinos Sideris 2017-04-14 17:10:18 +03:00
parent 8358720d8e
commit a5ebff5949
6 changed files with 60 additions and 38 deletions

View File

@ -18,7 +18,7 @@
</property>
<property name="minimumSize">
<size>
<width>850</width>
<width>950</width>
<height>600</height>
</size>
</property>
@ -29,7 +29,7 @@
</font>
</property>
<property name="windowTitle">
<string notr="true"> Nheko </string>
<string notr="true"> nheko </string>
</property>
<property name="styleSheet">
<string notr="true">background-color: #f9f9f9</string>

View File

@ -43,7 +43,6 @@ public:
static QString chooseRandomColor();
static QString getUserColor(const QString &userid);
static QMap<QString, QString> NICK_COLORS;
static const QList<QString> COLORS;
public slots:
void setHistoryView(const RoomInfo &info);

View File

@ -126,38 +126,61 @@ void HistoryViewManager::setHistoryView(const RoomInfo &info)
QMap<QString, QString> HistoryViewManager::NICK_COLORS;
const QList<QString> HistoryViewManager::COLORS({"#FFF46E",
"#A58BFF",
"#50C9BA",
"#9EE6CF",
"#FFDD67",
"#2980B9",
"#FC993C",
"#2772DB",
"#CB8589",
"#DDE8B9",
"#55A44E",
"#A9EEE6",
"#53B759",
"#9E3997",
"#5D89D5",
"#BB86B7",
"#50a0cf",
"#3C989F",
"#5A4592",
"#235e5b",
"#d58247",
"#e0a729",
"#a2b636",
"#4BBE2E"});
QString HistoryViewManager::chooseRandomColor()
{
std::random_device random_device;
std::mt19937 engine{random_device()};
std::uniform_int_distribution<int> dist(0, HistoryViewManager::COLORS.size() - 1);
std::uniform_real_distribution<float> dist(0, 1);
return HistoryViewManager::COLORS[dist(engine)];
float hue = dist(engine);
float saturation = 0.9;
float value = 0.7;
int hue_i = hue * 6;
float f = hue * 6 - hue_i;
float p = value * (1 - saturation);
float q = value * (1 - f * saturation);
float t = value * (1 - (1 - f) * saturation);
float r = 0;
float g = 0;
float b = 0;
if (hue_i == 0) {
r = value;
g = t;
b = p;
} else if (hue_i == 1) {
r = q;
g = value;
b = p;
} else if (hue_i == 2) {
r = p;
g = value;
b = t;
} else if (hue_i == 3) {
r = p;
g = q;
b = value;
} else if (hue_i == 4) {
r = t;
g = p;
b = value;
} else if (hue_i == 5) {
r = value;
g = p;
b = q;
}
int ri = r * 256;
int gi = g * 256;
int bi = b * 256;
QColor color(ri, gi, bi);
return color.name();
}
QString HistoryViewManager::getUserColor(const QString &userid)

View File

@ -84,8 +84,8 @@ LoginPage::LoginPage(QSharedPointer<MatrixClient> client, QWidget *parent)
button_layout_->setContentsMargins(0, 0, 0, 50);
login_button_ = new RaisedButton("LOGIN", this);
login_button_->setBackgroundColor(QColor("#acc7dc"));
login_button_->setForegroundColor(QColor("black"));
login_button_->setBackgroundColor(QColor("#171919"));
login_button_->setForegroundColor(QColor("white"));
login_button_->setMinimumSize(350, 65);
login_button_->setCursor(QCursor(Qt::PointingHandCursor));
login_button_->setFontSize(17);

View File

@ -99,8 +99,8 @@ RegisterPage::RegisterPage(QSharedPointer<MatrixClient> client, QWidget *parent)
error_label_->setStyleSheet("margin-bottom: 20px; color: #E22826; font-size: 11pt;");
register_button_ = new RaisedButton("REGISTER", this);
register_button_->setBackgroundColor(QColor("#acc7dc"));
register_button_->setForegroundColor(QColor("black"));
register_button_->setBackgroundColor(QColor("#171919"));
register_button_->setForegroundColor(QColor("white"));
register_button_->setMinimumSize(350, 65);
register_button_->setCursor(QCursor(Qt::PointingHandCursor));
register_button_->setFontSize(17);

View File

@ -59,16 +59,16 @@ WelcomePage::WelcomePage(QWidget *parent)
button_layout_->setContentsMargins(0, 20, 0, 80);
register_button_ = new RaisedButton("REGISTER", this);
register_button_->setBackgroundColor(QColor("#acc7dc"));
register_button_->setForegroundColor(QColor("#171919"));
register_button_->setBackgroundColor(QColor("#555459"));
register_button_->setForegroundColor(QColor("white"));
register_button_->setMinimumSize(240, 60);
register_button_->setCursor(QCursor(Qt::PointingHandCursor));
register_button_->setFontSize(14);
register_button_->setCornerRadius(3);
login_button_ = new RaisedButton("LOGIN", this);
login_button_->setBackgroundColor(QColor("#acc7dc"));
login_button_->setForegroundColor(QColor("#171919"));
login_button_->setBackgroundColor(QColor("#555459"));
login_button_->setForegroundColor(QColor("white"));
login_button_->setMinimumSize(240, 60);
login_button_->setCursor(QCursor(Qt::PointingHandCursor));
login_button_->setFontSize(14);