diff --git a/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.cpp b/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.cpp
index 541cecac0..1ad2e03df 100644
--- a/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.cpp
+++ b/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.cpp
@@ -34,6 +34,7 @@
#include "util/qtthreadsutils.h"
#include "util/HandleRichText.h"
#include "gui/Identity/IdDialog.h"
+#include "gui/settings/rsharesettings.h"
#include "gui/MainWindow.h"
#include "ui_BoardPostDisplayWidget_compact.h"
@@ -235,8 +236,10 @@ void BoardPostDisplayWidgetBase::baseSetup()
if (urlOkay)
{
QString siteurl = url.toEncoded();
+ linkColor = Settings->getLinkColor();
- label->setStyleSheet("text-decoration: underline; color:#2255AA;");
+ QString colorstring = QString("%1;").arg(linkColor.name());
+ label->setStyleSheet("text-decoration: underline; color:" + colorstring );
label->setCursor(QCursor(Qt::PointingHandCursor));
label->setToolTip(siteurl);
diff --git a/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.h b/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.h
index 731ddc9da..ff17df272 100644
--- a/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.h
+++ b/retroshare-gui/src/gui/Posted/BoardPostDisplayWidget.h
@@ -107,6 +107,8 @@ signals:
protected:
RsPostedPost mPost;
uint8_t mDisplayFlags;
+private:
+ QColor linkColor;
};
class BoardPostDisplayWidget_compact : public BoardPostDisplayWidgetBase
@@ -146,6 +148,8 @@ protected:
void setup() override; // to be overloaded by the different views
private:
+ QColor linkColor;
+
/** Qt Designer generated object */
Ui::BoardPostDisplayWidget_compact *ui;
};
diff --git a/retroshare-gui/src/gui/Posted/PostedCardView.cpp b/retroshare-gui/src/gui/Posted/PostedCardView.cpp
index 9824cfda2..0ef21e436 100644
--- a/retroshare-gui/src/gui/Posted/PostedCardView.cpp
+++ b/retroshare-gui/src/gui/Posted/PostedCardView.cpp
@@ -229,9 +229,14 @@ void PostedCardView::fill()
if (urlOkay)
{
+ linkColor = Settings->getLinkColor();
+ QString colorstring = QString("%1;").arg(linkColor.name());
+
QString urlstr = QString(" ");
+ urlstr += QString("\" > ");
urlstr += messageName();
urlstr += QString(" ");
diff --git a/retroshare-gui/src/gui/Posted/PostedCardView.h b/retroshare-gui/src/gui/Posted/PostedCardView.h
index 0f4f5f2ab..aeb0f19b6 100644
--- a/retroshare-gui/src/gui/Posted/PostedCardView.h
+++ b/retroshare-gui/src/gui/Posted/PostedCardView.h
@@ -57,6 +57,8 @@ protected:
void toggleNotes() override;
private:
+ QColor linkColor;
+
/** Qt Designer generated object */
Ui::PostedCardView *ui;
};
diff --git a/retroshare-gui/src/gui/Posted/PostedItem.cpp b/retroshare-gui/src/gui/Posted/PostedItem.cpp
index 8f1cddf7d..8203d07ca 100644
--- a/retroshare-gui/src/gui/Posted/PostedItem.cpp
+++ b/retroshare-gui/src/gui/Posted/PostedItem.cpp
@@ -34,6 +34,7 @@
#include "util/HandleRichText.h"
#include "gui/MainWindow.h"
#include "gui/Identity/IdDialog.h"
+#include "gui/settings/rsharesettings.h"
#include "PhotoView.h"
#include "gui/Posted/PostedDialog.h"
#include "ui_PostedItem.h"
@@ -527,7 +528,6 @@ void PostedItem::fill()
// The only combination that seems to work: load as EncodedUrl, extract toEncoded().
QByteArray urlarray(mPost.mLink.c_str());
QUrl url = QUrl::fromEncoded(urlarray.trimmed());
- QString urlstr = "Invalid Link";
QString sitestr = "Invalid Link";
bool urlOkay = url.isValid();
@@ -546,9 +546,14 @@ void PostedItem::fill()
if (urlOkay)
{
- urlstr = QString("getLinkColor();
+ QString colorstring = QString("%1;").arg(linkColor.name());
+
+ QString urlstr = QString(" ");
+ urlstr += QString("\" > ");
urlstr += messageName();
urlstr += QString(" ");
diff --git a/retroshare-gui/src/gui/Posted/PostedItem.h b/retroshare-gui/src/gui/Posted/PostedItem.h
index a2f432dc0..a6133f9d8 100644
--- a/retroshare-gui/src/gui/Posted/PostedItem.h
+++ b/retroshare-gui/src/gui/Posted/PostedItem.h
@@ -119,6 +119,8 @@ private slots:
void toggleNotes() override;
private:
+ QColor linkColor;
+
/** Qt Designer generated object */
Ui::PostedItem *ui;
};
diff --git a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp
index 9245706d1..2c7add2ef 100644
--- a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp
+++ b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp
@@ -908,7 +908,7 @@ void PostedListWidgetWithModel::insertBoardDetails(const RsPostedGroup& group)
ui->infoAdministrator->setId(group.mMeta.mAuthorId) ;
link = RetroShareLink::createMessage(group.mMeta.mAuthorId, "");
- ui->infoAdministrator->setText(link.toHtml());
+ ui->infoAdministrator->setText(link.toHtmlColored());
ui->createdinfolabel->setText(DateTime::formatLongDateTime(group.mMeta.mPublishTs));
diff --git a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui
index 734c4a233..585a88546 100644
--- a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui
+++ b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui
@@ -46,7 +46,7 @@
-
-
+
@@ -54,7 +54,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:13pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Description</span></p></body></html>
@@ -619,6 +619,11 @@ p, li { white-space: pre-wrap; }
1
+
+ RSTextBrowser
+ QTextBrowser
+ gui/common/RSTextBrowser.h
+
diff --git a/retroshare-gui/src/gui/RetroShareLink.cpp b/retroshare-gui/src/gui/RetroShareLink.cpp
index 0001cd9bc..2b4e37b0a 100644
--- a/retroshare-gui/src/gui/RetroShareLink.cpp
+++ b/retroshare-gui/src/gui/RetroShareLink.cpp
@@ -36,6 +36,7 @@
#include "msgs/MessageComposer.h"
#include "Posted/PostedDialog.h"
#include "util/misc.h"
+#include "gui/settings/rsharesettings.h"
#include
#include
@@ -431,6 +432,8 @@ void RetroShareLink::fromUrl(const QUrl& url)
RetroShareLink::RetroShareLink()
{
clear();
+ linkColor = Settings->getLinkColor();
+
}
RetroShareLink RetroShareLink::createFile(const QString& name, uint64_t size, const QString& hash)
@@ -1132,6 +1135,22 @@ QString RetroShareLink::toHtml() const
return html;
}
+QString RetroShareLink::toHtmlColored() const
+{
+ //linkColor = Settings->getLinkColor();
+ QString colorstring = QString("%1;").arg(linkColor.name());
+
+ QString html = " " + niceName() + "" ;
+
+ return html;
+}
+
QString RetroShareLink::toHtmlFull() const
{
return QString("" + toString() + "" ;
diff --git a/retroshare-gui/src/gui/RetroShareLink.h b/retroshare-gui/src/gui/RetroShareLink.h
index 61c794b11..c32551c6f 100644
--- a/retroshare-gui/src/gui/RetroShareLink.h
+++ b/retroshare-gui/src/gui/RetroShareLink.h
@@ -41,6 +41,7 @@
#include
#include
#include
+#include
#include
@@ -138,6 +139,8 @@ class RetroShareLink
QString toHtmlSize() const ;
+ QString toHtmlColored() const;
+
QUrl toUrl() const ;
bool operator==(const RetroShareLink& l) const { return _type == l._type && _hash == l._hash ; }
@@ -176,6 +179,7 @@ class RetroShareLink
time_t _time_stamp ; // time stamp at which the link will expire.
QString _radix_group_data;
uint32_t _count ;
+ QColor linkColor;
unsigned int _subType; // for general use as sub type for _type (RSLINK_SUBTYPE_...)
};
diff --git a/retroshare-gui/src/gui/common/MimeTextEdit.cpp b/retroshare-gui/src/gui/common/MimeTextEdit.cpp
index 3d3398b0c..6d51bafc2 100644
--- a/retroshare-gui/src/gui/common/MimeTextEdit.cpp
+++ b/retroshare-gui/src/gui/common/MimeTextEdit.cpp
@@ -33,6 +33,7 @@
#include "util/HandleRichText.h"
#include "gui/RetroShareLink.h"
#include "util/imageutil.h"
+#include "gui/settings/rsharesettings.h"
#include
@@ -44,6 +45,10 @@ MimeTextEdit::MimeTextEdit(QWidget *parent)
mForceCompleterShowNextKeyEvent = false;
highliter = new RsSyntaxHighlighter(this);
mOnlyPlainText = false;
+
+ linkColor = Settings->getLinkColor();
+ QString sheet = QString::fromLatin1("a { text-decoration: underline; color: %1 }").arg(linkColor.name());
+ document()->setDefaultStyleSheet(sheet);
}
bool MimeTextEdit::canInsertFromMimeData(const QMimeData* source) const
diff --git a/retroshare-gui/src/gui/common/MimeTextEdit.h b/retroshare-gui/src/gui/common/MimeTextEdit.h
index b575c1ac9..0270e0f66 100644
--- a/retroshare-gui/src/gui/common/MimeTextEdit.h
+++ b/retroshare-gui/src/gui/common/MimeTextEdit.h
@@ -91,6 +91,7 @@ private:
RsSyntaxHighlighter *highliter;
bool mOnlyPlainText;
int mMaxBytes = -1; //limit content size, for pasting images
+ QColor linkColor;
};
#endif // MIMETEXTEDIT_H
diff --git a/retroshare-gui/src/gui/common/RSTextBrowser.cpp b/retroshare-gui/src/gui/common/RSTextBrowser.cpp
index c11d4edef..072142148 100644
--- a/retroshare-gui/src/gui/common/RSTextBrowser.cpp
+++ b/retroshare-gui/src/gui/common/RSTextBrowser.cpp
@@ -23,6 +23,7 @@
#include "RSImageBlockWidget.h"
#include "gui/common/FilesDefs.h"
#include "util/imageutil.h"
+#include "gui/settings/rsharesettings.h"
#include //To get RsAccounts
@@ -50,6 +51,10 @@ RSTextBrowser::RSTextBrowser(QWidget *parent) :
highlighter = new RsSyntaxHighlighter(this);
+ linkColor = Settings->getLinkColor();
+ QString sheet = QString::fromLatin1("a { text-decoration: underline; color: %1 }").arg(linkColor.name());
+ document()->setDefaultStyleSheet(sheet);
+
connect(this, SIGNAL(anchorClicked(QUrl)), this, SLOT(linkClicked(QUrl)));
}
diff --git a/retroshare-gui/src/gui/common/RSTextBrowser.h b/retroshare-gui/src/gui/common/RSTextBrowser.h
index a10a2b30a..9c51d3c41 100644
--- a/retroshare-gui/src/gui/common/RSTextBrowser.h
+++ b/retroshare-gui/src/gui/common/RSTextBrowser.h
@@ -89,6 +89,8 @@ private:
RSImageBlockWidget *mImageBlockWidget;
bool mLinkClickActive;
RsSyntaxHighlighter *highlighter;
+ QColor linkColor;
+
QList mContextMenuActions;
#ifdef RSTEXTBROWSER_CHECKIMAGE_DEBUG
QRect mCursorRectStart;
diff --git a/retroshare-gui/src/gui/feeds/GxsForumMsgItem.cpp b/retroshare-gui/src/gui/feeds/GxsForumMsgItem.cpp
index f4d091179..3fc15304d 100644
--- a/retroshare-gui/src/gui/feeds/GxsForumMsgItem.cpp
+++ b/retroshare-gui/src/gui/feeds/GxsForumMsgItem.cpp
@@ -328,7 +328,7 @@ void GxsForumMsgItem::fillParentMessage()
ui->parentFrame->hide();
RetroShareLink linkParent = RetroShareLink::createGxsMessageLink(RetroShareLink::TYPE_FORUM, mParentMessage.mMeta.mGroupId, mParentMessage.mMeta.mMsgId, QString::fromUtf8(mParentMessage.mMeta.mMsgName.c_str()));
- ui->parentSubLabel->setText(linkParent.toHtml());
+ ui->parentSubLabel->setText(linkParent.toHtmlColored());
ui->parentMsgLabel->setText(RsHtml().formatText(NULL, QString::fromUtf8(mParentMessage.mMsg.c_str()), RSHTML_FORMATTEXT_EMBED_SMILEYS | RSHTML_FORMATTEXT_EMBED_LINKS));
ui->parentNameLabel->setId(mParentMessage.mMeta.mAuthorId);
@@ -358,7 +358,7 @@ void GxsForumMsgItem::fillMessage()
QString title = tr("Forum Feed") + ": ";
RetroShareLink link = RetroShareLink::createGxsGroupLink(RetroShareLink::TYPE_FORUM, mMessage.mMeta.mGroupId, groupName());
- title += link.toHtml();
+ title += link.toHtmlColored();
ui->titleLabel->setText(title);
setReadStatus(IS_MSG_NEW(mMessage.mMeta.mMsgStatus), IS_MSG_UNREAD(mMessage.mMeta.mMsgStatus) || IS_MSG_NEW(mMessage.mMeta.mMsgStatus));
@@ -379,14 +379,14 @@ void GxsForumMsgItem::fillMessage()
ui->currNameLabel->setId(mMessage.mMeta.mAuthorId);
RetroShareLink msgLink = RetroShareLink::createGxsMessageLink(RetroShareLink::TYPE_FORUM, mMessage.mMeta.mGroupId, mMessage.mMeta.mMsgId, messageName());
- ui->currSubLabel->setText(msgLink.toHtml());
+ ui->currSubLabel->setText(msgLink.toHtmlColored());
if (wasExpanded() || ui->expandFrame->isVisible())
fillExpandFrame();
ui->timestamplabel->setText(DateTime::formatLongDateTime(mMessage.mMeta.mPublishTs));
/* header stuff */
- ui->subjectLabel->setText(msgLink.toHtml());
+ ui->subjectLabel->setText(msgLink.toHtmlColored());
if (mIsHome)
{
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp
index 18aa2ad17..22d372713 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp
@@ -1327,7 +1327,7 @@ void GxsChannelPostsWidgetWithModel::insertChannelDetails(const RsGxsChannelGrou
if(!group.mMeta.mAuthorId.isNull())
{
RetroShareLink link = RetroShareLink::createMessage(group.mMeta.mAuthorId, "");
- ui->infoAdministrator->setText(link.toHtml());
+ ui->infoAdministrator->setText(link.toHtmlColored());
}
else
ui->infoAdministrator->setText("[No contact author]");
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui
index 2740b4654..f7c63d524 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui
@@ -397,12 +397,12 @@
-
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:13pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Description</span></p></body></html>
@@ -548,7 +548,7 @@ p, li { white-space: pre-wrap; }
-
-
+
true
@@ -679,6 +679,11 @@ p, li { white-space: pre-wrap; }
QToolButton
gui/common/SubscribeToolButton.h
+
+ RSTextBrowser
+ QTextBrowser
+ gui/common/RSTextBrowser.h
+
GxsCommentDialog
QWidget
diff --git a/retroshare-gui/src/gui/msgs/MessageWidget.cpp b/retroshare-gui/src/gui/msgs/MessageWidget.cpp
index 0d2e934f2..2ba5e8672 100644
--- a/retroshare-gui/src/gui/msgs/MessageWidget.cpp
+++ b/retroshare-gui/src/gui/msgs/MessageWidget.cpp
@@ -704,7 +704,7 @@ void MessageWidget::fill(const std::string &msgId)
}
else
{
- ui.fromText->setText(link.toHtml());
+ ui.fromText->setText(link.toHtmlColored());
ui.fromText->setToolTip(tooltip_string) ;
if (toolButtonReply) toolButtonReply->setEnabled(true);
}
diff --git a/retroshare-gui/src/gui/settings/ChatPage.cpp b/retroshare-gui/src/gui/settings/ChatPage.cpp
index 1f35fe62c..ae083236f 100644
--- a/retroshare-gui/src/gui/settings/ChatPage.cpp
+++ b/retroshare-gui/src/gui/settings/ChatPage.cpp
@@ -144,6 +144,7 @@ void ChatPage::updateChatSearchParams()
Settings->setChatSearchSearchWithoutLimit(ui.cbSearch_WithoutLimit->isChecked());
Settings->setChatSearchMaxSearchLimitColor(ui.sbSearch_MaxLimitColor->value());
Settings->setChatSearchFoundColor(rgbChatSearchFoundColor);
+ Settings->setLinkColor(rgbLinkColor);
}
void ChatPage::updateDefaultLobbyIdentity()
@@ -435,6 +436,11 @@ ChatPage::load()
pix.fill(rgbChatSearchFoundColor);
ui.btSearch_FoundColor->setIcon(pix);
+ rgbLinkColor=Settings->getLinkColor();
+ QPixmap colorpix(24, 24);
+ colorpix.fill(rgbLinkColor);
+ ui.linkColorButton->setIcon(colorpix);
+
whileBlocking(ui.publicChatLoadCount)->setValue(Settings->getPublicChatHistoryCount());
whileBlocking(ui.privateChatLoadCount)->setValue(Settings->getPrivateChatHistoryCount());
whileBlocking(ui.lobbyChatLoadCount)->setValue(Settings->getLobbyChatHistoryCount());
@@ -695,6 +701,19 @@ void ChatPage::on_btSearch_FoundColor_clicked()
}
}
+void ChatPage::on_linkColorButton_clicked()
+{
+ bool ok;
+ QRgb color = QColorDialog::getRgba(rgbLinkColor, &ok, window());
+ if (ok) {
+ rgbLinkColor=color;
+ QPixmap pix(24, 24);
+ pix.fill(color);
+ ui.linkColorButton->setIcon(pix);
+ Settings->setLinkColor(rgbLinkColor);
+ }
+}
+
void ChatPage::distantChatComboBoxChanged(int i)
{
switch(i)
diff --git a/retroshare-gui/src/gui/settings/ChatPage.h b/retroshare-gui/src/gui/settings/ChatPage.h
index 4edb66747..7552c5709 100644
--- a/retroshare-gui/src/gui/settings/ChatPage.h
+++ b/retroshare-gui/src/gui/settings/ChatPage.h
@@ -56,7 +56,8 @@ class ChatPage : public ConfigPage
void on_cbSearch_WithoutLimit_toggled(bool);
void on_btSearch_FoundColor_clicked();
-
+ void on_linkColorButton_clicked();
+
void distantChatComboBoxChanged(int);
void updateFontsAndEmotes();
@@ -86,6 +87,7 @@ class ChatPage : public ConfigPage
QString historyStyleVariant;
QRgb rgbChatSearchFoundColor;
+ QRgb rgbLinkColor;
/** Qt Designer generated object */
Ui::ChatPage ui;
diff --git a/retroshare-gui/src/gui/settings/ChatPage.ui b/retroshare-gui/src/gui/settings/ChatPage.ui
index 0f60752ac..9bae390fe 100644
--- a/retroshare-gui/src/gui/settings/ChatPage.ui
+++ b/retroshare-gui/src/gui/settings/ChatPage.ui
@@ -266,6 +266,19 @@
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
@@ -477,6 +490,45 @@
+ -
+
+
+ Link Color
+
+
+
-
+
+
+ Color of the links
+
+
+
+ -
+
+
+ Set link color
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 312
+ 20
+
+
+
+
+
+
+
-
diff --git a/retroshare-gui/src/gui/settings/rsharesettings.cpp b/retroshare-gui/src/gui/settings/rsharesettings.cpp
index d878d6c99..0acf43287 100644
--- a/retroshare-gui/src/gui/settings/rsharesettings.cpp
+++ b/retroshare-gui/src/gui/settings/rsharesettings.cpp
@@ -1222,6 +1222,15 @@ void RshareSettings::setMessageFontSize(int value)
setValueToGroup("Message", "FontSize", value);
}
+void RshareSettings::setLinkColor(QRgb rgbValue)
+{
+ setValueToGroup("Chat", "LinkColor", QString::number(rgbValue));
+}
+QRgb RshareSettings::getLinkColor()
+{
+ return valueFromGroup("Chat", "LinkColor", QString::number(QColor(3, 155, 198).rgba())).toUInt();
+}
+
#ifdef RS_JSONAPI
bool RshareSettings::getJsonApiEnabled()
{
diff --git a/retroshare-gui/src/gui/settings/rsharesettings.h b/retroshare-gui/src/gui/settings/rsharesettings.h
index 317dedb56..73b6e9790 100644
--- a/retroshare-gui/src/gui/settings/rsharesettings.h
+++ b/retroshare-gui/src/gui/settings/rsharesettings.h
@@ -349,6 +349,9 @@ public:
int getMessageFontSize();
void setMessageFontSize(int value);
+ void setLinkColor(QRgb rgbValue);
+ QRgb getLinkColor();
+
#ifdef RS_JSONAPI
bool getJsonApiEnabled();
void setJsonApiEnabled(bool enabled);