From 96910ee97d7c2843f70fc05de7016430b6e6b70e Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Thu, 27 Jul 2023 07:15:04 +0200 Subject: [PATCH] refactoring random colors --- src/librssguard/core/messageobject.cpp | 5 ++--- src/librssguard/gui/reusable/colortoolbutton.cpp | 4 ++-- src/librssguard/miscellaneous/textfactory.cpp | 7 +++++++ src/librssguard/miscellaneous/textfactory.h | 4 +++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/librssguard/core/messageobject.cpp b/src/librssguard/core/messageobject.cpp index 16b575a86..d3ce80a61 100644 --- a/src/librssguard/core/messageobject.cpp +++ b/src/librssguard/core/messageobject.cpp @@ -186,10 +186,9 @@ QString MessageObject::createLabelId(const QString& title, const QString& hex_co Label* new_lbl = nullptr; try { - auto rnd_color = QRandomGenerator::global()->bounded(0xFFFFFF); - auto rnd_color_name = QSL("#%1").arg(QString::number(rnd_color, 16)); + auto rnd_color = TextFactory::generateRandomColor(); - new_lbl = new Label(title, hex_color.isEmpty() ? rnd_color_name : hex_color); + new_lbl = new Label(title, hex_color.isEmpty() ? rnd_color : hex_color); QSqlDatabase db = qApp->database()->driver()->threadSafeConnection(metaObject()->className()); DatabaseQueries::createLabel(db, new_lbl, m_account->accountId()); diff --git a/src/librssguard/gui/reusable/colortoolbutton.cpp b/src/librssguard/gui/reusable/colortoolbutton.cpp index 5cc301195..550c48a48 100644 --- a/src/librssguard/gui/reusable/colortoolbutton.cpp +++ b/src/librssguard/gui/reusable/colortoolbutton.cpp @@ -3,6 +3,7 @@ #include "gui/reusable/colortoolbutton.h" #include "definitions/definitions.h" +#include "miscellaneous/textfactory.h" #include #include @@ -37,8 +38,7 @@ void ColorToolButton::setColor(const QColor& color) { } void ColorToolButton::setRandomColor() { - int hue = QRandomGenerator::global()->generate() % 360; - auto clr = QColor::fromHsv(hue, 200, 240); + auto clr = TextFactory::generateRandomColor(); setColor(clr); emit colorChanged(clr); diff --git a/src/librssguard/miscellaneous/textfactory.cpp b/src/librssguard/miscellaneous/textfactory.cpp index a38bd4e02..33ca50164 100644 --- a/src/librssguard/miscellaneous/textfactory.cpp +++ b/src/librssguard/miscellaneous/textfactory.cpp @@ -43,6 +43,13 @@ QColor TextFactory::generateColorFromText(const QString& text) { return QColor::fromHsv(hue, 200, 240); } +QColor TextFactory::generateRandomColor() { + int hue = QRandomGenerator::global()->generate() % 360; + auto clr = QColor::fromHsv(hue, 200, 240); + + return clr; +} + int TextFactory::stringHeight(const QString& string, const QFontMetrics& metrics) { const int count_lines = string.split(QL1C('\n')).size(); diff --git a/src/librssguard/miscellaneous/textfactory.h b/src/librssguard/miscellaneous/textfactory.h index d5df3ae1e..ea465dc7f 100644 --- a/src/librssguard/miscellaneous/textfactory.h +++ b/src/librssguard/miscellaneous/textfactory.h @@ -14,8 +14,10 @@ class TextFactory { TextFactory(); public: - static QString extractUsernameFromEmail(const QString& email_address); static QColor generateColorFromText(const QString& text); + static QColor generateRandomColor(); + + static QString extractUsernameFromEmail(const QString& email_address); static int stringHeight(const QString& string, const QFontMetrics& metrics); static int stringWidth(const QString& string, const QFontMetrics& metrics);