diff --git a/retroshare-gui/src/gui/chat/ChatStyle.cpp b/retroshare-gui/src/gui/chat/ChatStyle.cpp index 46db56f36..5429a4f7c 100644 --- a/retroshare-gui/src/gui/chat/ChatStyle.cpp +++ b/retroshare-gui/src/gui/chat/ChatStyle.cpp @@ -267,6 +267,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 @@ -357,8 +358,8 @@ QString ChatStyle::formatMessage(enumFormatMessage type } else { // Calculate color from the name 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); diff --git a/retroshare-gui/src/gui/chat/ChatStyle.h b/retroshare-gui/src/gui/chat/ChatStyle.h index 75e395d58..757b350eb 100644 --- a/retroshare-gui/src/gui/chat/ChatStyle.h +++ b/retroshare-gui/src/gui/chat/ChatStyle.h @@ -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 &styles); static bool getAvailableVariants(const QString &stylePath, QStringList &variants); diff --git a/retroshare-gui/src/gui/chat/ChatWidget.cpp b/retroshare-gui/src/gui/chat/ChatWidget.cpp index 44bd9c426..ddb57b117 100644 --- a/retroshare-gui/src/gui/chat/ChatWidget.cpp +++ b/retroshare-gui/src/gui/chat/ChatWidget.cpp @@ -929,6 +929,9 @@ void ChatWidget::addChatMsg(bool incoming, const QString &name, const RsGxsId gx if (!Settings->valueFromGroup("Chat", "EnableCustomFontSize", true).toBool()) { formatTextFlag |= RSHTML_FORMATTEXT_REMOVE_FONT_SIZE; } + if (!Settings->valueFromGroup("Chat", "EnableCustomFontColor", true).toBool()) { + formatTextFlag |= RSHTML_FORMATTEXT_REMOVE_COLOR; + } int desiredMinimumFontSize = Settings->valueFromGroup("Chat", "MinimumFontSize", 10).toInt(); if (!Settings->valueFromGroup("Chat", "EnableBold", true).toBool()) { formatTextFlag |= RSHTML_FORMATTEXT_REMOVE_FONT_WEIGHT; @@ -936,7 +939,7 @@ void ChatWidget::addChatMsg(bool incoming, const QString &name, const RsGxsId gx if (!Settings->valueFromGroup("Chat", "EnableItalics", true).toBool()) { formatTextFlag |= RSHTML_FORMATTEXT_REMOVE_FONT_STYLE; } - + ChatStyle::enumFormatMessage type; if (chatType == MSGTYPE_OFFLINE) { type = ChatStyle::FORMATMSG_OOUTGOING; @@ -955,16 +958,19 @@ 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 = dtTimestamp.toString(Qt::ISODate); //replace Date and Time anchors formatMsg.replace(QString(""),QString("").arg(timeStamp)); formatMsg.replace(QString(""),QString("").arg(timeStamp)); + //replace Name anchors with GXS Id - QString strGxsId = ""; - if (!gxsId.isNull()) - strGxsId = QString::fromStdString(gxsId.toStdString()); formatMsg.replace(QString(""),QString("").arg(strGxsId)); QTextCursor textCursor = QTextCursor(ui->textBrowser->textCursor()); diff --git a/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp b/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp index 17b74a127..0846e83f7 100644 --- a/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp +++ b/retroshare-gui/src/gui/im_history/ImHistoryBrowser.cpp @@ -286,7 +286,7 @@ void ImHistoryBrowser::fillItem(QListWidgetItem *itemWidget, HistoryMsg& msg) } QColor backgroundColor = ui.listWidget->palette().base().color(); - QString formatMsg = style.formatMessage(type, name, QDateTime::fromTime_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, qVariantFromValue(IMHistoryItemPainter(formatMsg))); itemWidget->setData(ROLE_MSGID, msg.msgId); diff --git a/retroshare-gui/src/gui/settings/ChatPage.cpp b/retroshare-gui/src/gui/settings/ChatPage.cpp index 23669840e..8349d4884 100644 --- a/retroshare-gui/src/gui/settings/ChatPage.cpp +++ b/retroshare-gui/src/gui/settings/ChatPage.cpp @@ -115,6 +115,7 @@ void ChatPage::updateFontsAndEmotes() Settings->setValue("Emoteicons_GroupChat", ui.checkBox_emotegroupchat->isChecked()); Settings->setValue("EnableCustomFonts", ui.checkBox_enableCustomFonts->isChecked()); Settings->setValue("EnableCustomFontSize", ui.checkBox_enableCustomFontSize->isChecked()); + Settings->setValue("EnableCustomFontColor", ui.checkBox_enableCustomFontColor->isChecked()); Settings->setValue("MinimumFontSize", ui.minimumFontSize->value()); Settings->setValue("EnableBold", ui.checkBox_enableBold->isChecked()); Settings->setValue("EnableItalics", ui.checkBox_enableItalics->isChecked()); @@ -314,6 +315,7 @@ ChatPage::load() whileBlocking(ui.checkBox_emotegroupchat)->setChecked(Settings->value("Emoteicons_GroupChat", true).toBool()); whileBlocking(ui.checkBox_enableCustomFonts)->setChecked(Settings->value("EnableCustomFonts", true).toBool()); whileBlocking(ui.checkBox_enableCustomFontSize)->setChecked(Settings->value("EnableCustomFontSize", true).toBool()); + whileBlocking(ui.checkBox_enableCustomFontColor)->setChecked(Settings->value("EnableCustomFontColor", true).toBool()); whileBlocking(ui.minimumFontSize)->setValue(Settings->value("MinimumFontSize", 10).toInt()); whileBlocking(ui.checkBox_enableBold)->setChecked(Settings->value("EnableBold", true).toBool()); whileBlocking(ui.checkBox_enableItalics)->setChecked(Settings->value("EnableItalics", true).toBool()); @@ -439,13 +441,13 @@ void ChatPage::setPreviewMessages(QString &stylePath, QString styleVariant, QTex QDateTime timestmp = QDateTime::fromTime_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) diff --git a/retroshare-gui/src/gui/settings/ChatPage.ui b/retroshare-gui/src/gui/settings/ChatPage.ui index 152e3530e..e33184f0e 100644 --- a/retroshare-gui/src/gui/settings/ChatPage.ui +++ b/retroshare-gui/src/gui/settings/ChatPage.ui @@ -14,7 +14,7 @@ - 2 + 0 @@ -110,6 +110,16 @@ + + + + Enable custom font color + + + true + + + @@ -866,7 +876,7 @@ QTabWidget::North - 2 + 0