diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-04-11 22:48:02 +0300 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-04-11 22:48:02 +0300 |
commit | c431eee40156534e3fbf2c1f14336f3b13fcab6b (patch) | |
tree | 2e9a91da8a8827fd12a69a32f394c038eaa9e1cf /src | |
parent | Update CI (diff) | |
download | nheko-c431eee40156534e3fbf2c1f14336f3b13fcab6b.tar.xz |
Use a single nick to color map
Diffstat (limited to 'src')
-rw-r--r-- | src/HistoryView.cc | 45 | ||||
-rw-r--r-- | src/HistoryViewManager.cc | 42 |
2 files changed, 45 insertions, 42 deletions
diff --git a/src/HistoryView.cc b/src/HistoryView.cc index 3692c493..ce2e2f6c 100644 --- a/src/HistoryView.cc +++ b/src/HistoryView.cc @@ -15,8 +15,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include <random> - #include <QDebug> #include <QScrollBar> #include <QtWidgets/QLabel> @@ -24,31 +22,7 @@ #include "HistoryView.h" #include "HistoryViewItem.h" - -const QList<QString> HistoryView::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"}); +#include "HistoryViewManager.h" HistoryView::HistoryView(const QList<Event> &events, QWidget *parent) : QWidget(parent) @@ -65,8 +39,6 @@ HistoryView::HistoryView(QWidget *parent) void HistoryView::clear() { - nick_colors_.clear(); - for (const auto msg : scroll_layout_->children()) msg->deleteLater(); } @@ -77,15 +49,6 @@ void HistoryView::sliderRangeChanged(int min, int max) scroll_area_->verticalScrollBar()->setValue(max); } -QString HistoryView::chooseRandomColor() -{ - std::random_device random_device; - std::mt19937 engine{random_device()}; - std::uniform_int_distribution<int> dist(0, HistoryView::COLORS.size() - 1); - - return HistoryView::COLORS[dist(engine)]; -} - void HistoryView::addEvents(const QList<Event> &events) { for (const auto &event : events) { @@ -94,11 +57,11 @@ void HistoryView::addEvents(const QList<Event> &events) if (msg_type == "m.text" || msg_type == "m.notice") { auto with_sender = last_sender_ != event.sender(); - auto color = nick_colors_.value(event.sender()); + auto color = HistoryViewManager::NICK_COLORS.value(event.sender()); if (color.isEmpty()) { - color = chooseRandomColor(); - nick_colors_.insert(event.sender(), color); + color = HistoryViewManager::chooseRandomColor(); + HistoryViewManager::NICK_COLORS.insert(event.sender(), color); } addHistoryItem(event, color, with_sender); diff --git a/src/HistoryViewManager.cc b/src/HistoryViewManager.cc index 2091f98b..a91dcc4f 100644 --- a/src/HistoryViewManager.cc +++ b/src/HistoryViewManager.cc @@ -15,6 +15,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <random> + #include <QDebug> #include <QStackedWidget> #include <QWidget> @@ -39,7 +41,9 @@ HistoryViewManager::~HistoryViewManager() void HistoryViewManager::clearAll() { - for (const auto &view: views_) { + NICK_COLORS.clear(); + + for (const auto &view : views_) { view->clear(); removeWidget(view); view->deleteLater(); @@ -92,3 +96,39 @@ void HistoryViewManager::setHistoryView(const RoomInfo &info) setCurrentWidget(widget); } + +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); + + return HistoryViewManager::COLORS[dist(engine)]; +} |