From b1eff0a37f242608558d7c3fcdea9e09b89e3457 Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Thu, 27 Feb 2020 00:34:58 +0100
Subject: [PATCH] Improve link theming

---
 resources/qml/MatrixText.qml            | 7 +++++--
 resources/qml/delegates/TextMessage.qml | 2 +-
 resources/styles/nheko-dark.qss         | 4 ++++
 resources/styles/nheko.qss              | 5 +++++
 src/timeline/TimelineViewManager.cpp    | 2 ++
 5 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/resources/qml/MatrixText.qml b/resources/qml/MatrixText.qml
index 9a4f734..cbb1c88 100644
--- a/resources/qml/MatrixText.qml
+++ b/resources/qml/MatrixText.qml
@@ -1,12 +1,15 @@
 import QtQuick 2.5
 import QtQuick.Controls 2.3
 
-TextEdit {
+TextArea {
 	textFormat: TextEdit.RichText
 	readOnly: true
 	wrapMode: Text.Wrap
 	selectByMouse: true
-	color: colors.text
+	//color: colors.text
+	palette: colors
+
+	padding: 0
 
 	onLinkActivated: {
 		if (/^https:\/\/matrix.to\/#\/(@.*)$/.test(link)) chat.model.openUserProfile(/^https:\/\/matrix.to\/#\/(@.*)$/.exec(link)[1])
diff --git a/resources/qml/delegates/TextMessage.qml b/resources/qml/delegates/TextMessage.qml
index b707ae7..7e4b1f2 100644
--- a/resources/qml/delegates/TextMessage.qml
+++ b/resources/qml/delegates/TextMessage.qml
@@ -2,6 +2,6 @@ import ".."
 
 MatrixText {
 	property string formatted: model.data.formattedBody
-	text: formatted.replace("<pre>", "<pre style='white-space: pre-wrap'>")
+	text: "<style type=\"text/css\">a { color:"+colors.link+";}</style>" + formatted.replace("<pre>", "<pre style='white-space: pre-wrap'>")
 	width: parent ? parent.width : undefined
 }
diff --git a/resources/styles/nheko-dark.qss b/resources/styles/nheko-dark.qss
index 33e8e15..37c524c 100644
--- a/resources/styles/nheko-dark.qss
+++ b/resources/styles/nheko-dark.qss
@@ -3,6 +3,10 @@ QLabel {
     color: #caccd1;
 }
 
+TextLabel::a {
+    color: #38a3d8;
+}
+
 QuickSwitcher,
 ReplyPopup,
 SuggestionsPopup,
diff --git a/resources/styles/nheko.qss b/resources/styles/nheko.qss
index eeb9032..26482db 100644
--- a/resources/styles/nheko.qss
+++ b/resources/styles/nheko.qss
@@ -3,6 +3,11 @@ QLabel {
     color: #333;
 }
 
+TextLabel::a {
+    color: #0077b5;
+}
+
+
 QuickSwitcher,
 ReplyPopup,
 SuggestionsPopup,
diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index 14f903a..a382750 100644
--- a/src/timeline/TimelineViewManager.cpp
+++ b/src/timeline/TimelineViewManager.cpp
@@ -32,6 +32,7 @@ TimelineViewManager::updateColorPalette()
                                      /*window*/ QColor("white"));
                 lightActive.setColor(QPalette::ToolTipBase, lightActive.base().color());
                 lightActive.setColor(QPalette::ToolTipText, lightActive.text().color());
+                lightActive.setColor(QPalette::Link, QColor("#0077b5"));
                 view->rootContext()->setContextProperty("currentActivePalette", lightActive);
                 view->rootContext()->setContextProperty("currentInactivePalette", lightActive);
         } else if (settings->theme() == "dark") {
@@ -47,6 +48,7 @@ TimelineViewManager::updateColorPalette()
                 darkActive.setColor(QPalette::Highlight, QColor("#e7e7e9"));
                 darkActive.setColor(QPalette::ToolTipBase, darkActive.base().color());
                 darkActive.setColor(QPalette::ToolTipText, darkActive.text().color());
+                darkActive.setColor(QPalette::Link, QColor("#38a3d8"));
                 view->rootContext()->setContextProperty("currentActivePalette", darkActive);
                 view->rootContext()->setContextProperty("currentInactivePalette", darkActive);
         } else {