/** * SPDX-FileCopyrightText: 2019 Black Hat * * SPDX-License-Identifier: GPL-3.0-only */ #include "neochatuser.h" #include // Kirigami #include #include "csapi/profile.h" NeoChatUser::NeoChatUser(QString userId, Connection *connection) : User(std::move(userId), connection) { m_theme = static_cast(qmlAttachedPropertiesObject(this, true)); Q_ASSERT(m_theme); connect(m_theme, &Kirigami::PlatformTheme::colorsChanged, this, &NeoChatUser::polishColor); } QColor NeoChatUser::color() { return m_color; } void NeoChatUser::setColor(const QColor &color) { if (m_color == color) { return; } m_color = color; emit colorChanged(m_color); } void NeoChatUser::polishColor() { // https://github.com/quotient-im/libQuotient/wiki/User-color-coding-standard-draft-proposal setColor(QColor::fromHslF(hueF(), 1 - m_theme->alternateBackgroundColor().saturationF(), -0.7 * m_theme->alternateBackgroundColor().lightnessF() + 0.9, m_theme->textColor().alphaF())); }