diff options
author | Calvin Morrison <calvin@pobox.com> | 2024-11-18 13:22:20 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-11-18 20:27:25 +0900 |
commit | fa1eb649773c0e4042b4a11a494c97a4e3909404 (patch) | |
tree | f4adb11bfe78ccb65d635c5912430e4aa828499a | |
parent | 1a970c2afc4e53022428cf2aa83c333fa31f2bbd (diff) | |
download | tdepim-fa1eb649773c0e4042b4a11a494c97a4e3909404.tar.gz tdepim-fa1eb649773c0e4042b4a11a494c97a4e3909404.zip |
Format url links in event descriptions making them clickable
This allows to click through links in events in description fields
wherever the description field is displayed from libkcal.
This is useful since links to virtual meetings are often attached in the
description field in recent years
Signed-off-by: Calvin Morrison <calvin@pobox.com>
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 8c9259947084d6e77a74d8eeb1504fe7cbd7626f)
-rw-r--r-- | libkcal/incidenceformatter.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/libkcal/incidenceformatter.cpp b/libkcal/incidenceformatter.cpp index 785a681bd..887d000aa 100644 --- a/libkcal/incidenceformatter.cpp +++ b/libkcal/incidenceformatter.cpp @@ -575,9 +575,22 @@ static TQString displayViewFormatEvent( Calendar *calendar, Event *event, } if ( !event->description().isEmpty() ) { + TQString description = event->description(); + + // Regular expression to match URLs + TQRegExp urlRegex("https?://[^\\s]+"); + + int pos = 0; + while ((pos = urlRegex.search(description, pos)) != -1) { + TQString url = urlRegex.cap(0); + TQString link = "<a href=\"" + url + "\">" + url + "</a>"; + description.replace(pos, url.length(), link); + pos += link.length(); + } + tmpStr += "<tr>"; tmpStr += "<td><b>" + i18n( "Description:" ) + "</b></td>"; - tmpStr += "<td>" + event->description() + "</td>"; + tmpStr += "<td>" + description + "</td>"; tmpStr += "</tr>"; } |