mirror of
https://github.com/RetroShare/RetroShare.git
synced 2026-09-12 19:50:17 +05:00
chat nicks colors based on hash
This commit is contained in:
parent
a0808a839b
commit
f7190f7493
@ -268,6 +268,7 @@ static QString getStyle(const QDir &styleDir, const QString &styleVariant, enumG
|
||||
|
||||
QString ChatStyle::formatMessage(enumFormatMessage type
|
||||
, const QString &name
|
||||
, const QString &gxsid
|
||||
, const QDateTime ×tamp
|
||||
, const QString &message
|
||||
, unsigned int flag
|
||||
@ -356,10 +357,10 @@ QString ChatStyle::formatMessage(enumFormatMessage type
|
||||
if (flag & CHAT_FORMATMSG_SYSTEM) {
|
||||
color = Qt::darkBlue;
|
||||
} else {
|
||||
// Calculate color from the name
|
||||
// Calculate color from the id
|
||||
uint hash = 0;
|
||||
for (int i = 0; i < name.length(); ++i) {
|
||||
hash = (((hash << 1) + (hash >> 14)) ^ ((int) name[i].toLatin1())) & 0x3fff;
|
||||
for (int i = 0; i < gxsid.length(); ++i) {
|
||||
hash = (((hash << 1) + (hash >> 14)) ^ ((int) gxsid[i].toLatin1())) & 0x3fff;
|
||||
}
|
||||
|
||||
color.setHsv(hash, 255, 150);
|
||||
|
||||
@ -83,7 +83,7 @@ public:
|
||||
bool setStylePath(const QString &stylePath, const QString &styleVariant);
|
||||
bool setStyleFromSettings(enumStyleType styleType);
|
||||
|
||||
QString formatMessage(enumFormatMessage type, const QString &name, const QDateTime ×tamp, const QString &message, unsigned int flag = 0, const QColor &backgroundColor = Qt::white);
|
||||
QString formatMessage(enumFormatMessage type, const QString &name, const QString &gxsid, const QDateTime ×tamp, const QString &message, unsigned int flag = 0, const QColor &backgroundColor = Qt::white);
|
||||
|
||||
static bool getAvailableStyles(enumStyleType styleType, QList<ChatStyleInfo> &styles);
|
||||
static bool getAvailableVariants(const QString &stylePath, QStringList &variants);
|
||||
|
||||
@ -1101,7 +1101,11 @@ void ChatWidget::addChatMsg(bool incoming, const QString &name, const RsGxsId gx
|
||||
|
||||
QString formattedMessage = RsHtml().formatText(ui->textBrowser->document(), message, formatTextFlag, backgroundColor, desiredContrast, desiredMinimumFontSize);
|
||||
QDateTime dtTimestamp=incoming ? sendTime : recvTime;
|
||||
QString formatMsg = chatStyle.formatMessage(type, name, dtTimestamp, formattedMessage, formatFlag, backgroundColor);
|
||||
QString strGxsId = "";
|
||||
if (!gxsId.isNull())
|
||||
strGxsId = QString::fromStdString(gxsId.toStdString());
|
||||
|
||||
QString formatMsg = chatStyle.formatMessage(type, name, strGxsId, dtTimestamp, formattedMessage, formatFlag, backgroundColor);
|
||||
QString timeStamp = DateTime::formatDateTime(dtTimestamp);
|
||||
|
||||
//replace Date and Time anchors
|
||||
|
||||
@ -307,7 +307,7 @@ void ImHistoryBrowser::fillItem(QListWidgetItem *itemWidget, HistoryMsg& msg)
|
||||
}
|
||||
|
||||
QColor backgroundColor = ui.listWidget->palette().base().color();
|
||||
QString formatMsg = style.formatMessage(type, name, DateTime::DateTimeFromTime_t(msg.sendTime), messageText, 0, backgroundColor);
|
||||
QString formatMsg = style.formatMessage(type, name, name, QDateTime::fromTime_t(msg.sendTime), messageText, 0, backgroundColor);
|
||||
|
||||
itemWidget->setData(Qt::DisplayRole, QVariant::fromValue(IMHistoryItemPainter(formatMsg)));
|
||||
itemWidget->setData(ROLE_MSGID, msg.msgId);
|
||||
|
||||
@ -542,13 +542,13 @@ void ChatPage::setPreviewMessages(QString &stylePath, QString styleVariant, QTex
|
||||
QDateTime timestmp = DateTime::DateTimeFromTime_t(time(NULL));
|
||||
QColor backgroundColor = textBrowser->palette().base().color();
|
||||
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HINCOMING, nameIncoming, timestmp, tr("Incoming message in history"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HOUTGOING, nameOutgoing, timestmp, tr("Outgoing message in history"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_INCOMING, nameIncoming, timestmp, tr("Incoming message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OUTGOING, nameOutgoing, timestmp, tr("Outgoing message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OOUTGOING, nameOutgoing, timestmp, tr("Outgoing offline message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_SYSTEM, tr("System"), timestmp, tr("System message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OUTGOING, tr("UserName"), timestmp, tr("/me is sending a message with /me"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HINCOMING, nameIncoming, nameIncoming, timestmp, tr("Incoming message in history"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_HOUTGOING, nameOutgoing, nameOutgoing, timestmp, tr("Outgoing message in history"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_INCOMING, nameIncoming, nameIncoming, timestmp, tr("Incoming message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OUTGOING, nameOutgoing, nameOutgoing, timestmp, tr("Outgoing message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OOUTGOING, nameOutgoing, nameOutgoing, timestmp, tr("Outgoing offline message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_SYSTEM, tr("System"), tr("System"), timestmp, tr("System message"), 0, backgroundColor));
|
||||
textBrowser->append(style.formatMessage(ChatStyle::FORMATMSG_OUTGOING, tr("UserName"), tr("UserName"), timestmp, tr("/me is sending a message with /me"), 0, backgroundColor));
|
||||
}
|
||||
|
||||
void ChatPage::fillPreview(QComboBox *listWidget, QComboBox *comboBox, QTextBrowser *textBrowser)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user