[SCM] ktp-text-ui packaging branch, master, updated. debian/15.12.1-1-1918-gdf4b0ec

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:19:29 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-text-ui.git;a=commitdiff;h=45cfc2e

The following commit has been merged in the master branch:
commit 45cfc2e11d6e4170792b29260606aa4b8108bbc5
Author: Lasath Fernando <kde at lasath.org>
Date:   Sun Jun 26 13:09:08 2011 +1000

    Highlight links for ALL supported protocols rather than just http smb
---
 lib/adium-theme-view.cpp | 77 ++++++++++++++++++++++++++++--------------------
 1 file changed, 45 insertions(+), 32 deletions(-)

diff --git a/lib/adium-theme-view.cpp b/lib/adium-theme-view.cpp
index 2211cfa..2a8b36e 100644
--- a/lib/adium-theme-view.cpp
+++ b/lib/adium-theme-view.cpp
@@ -43,12 +43,13 @@
 #include <KMessageBox>
 #include <KToolInvocation>
 #include <KIconLoader>
+#include <KProtocolInfo>
 
 AdiumThemeView::AdiumThemeView(QWidget *parent)
-    : QWebView(parent),
-      // check iconPath docs for minus sign in -KIconLoader::SizeLarge
-      m_defaultAvatar(KIconLoader::global()->iconPath("im-user",-KIconLoader::SizeLarge)),
-      m_displayHeader(true)
+        : QWebView(parent),
+        // check iconPath docs for minus sign in -KIconLoader::SizeLarge
+        m_defaultAvatar(KIconLoader::global()->iconPath("im-user",-KIconLoader::SizeLarge)),
+        m_displayHeader(true)
 {
     //blocks QWebView functionality which allows you to change page by dragging a URL onto it.
     setAcceptDrops(false);
@@ -66,11 +67,11 @@ AdiumThemeView::AdiumThemeView(QWidget *parent)
     }
 
     QString variant = appearanceConfig.readEntry("styleVariant");
-    if(!variant.isEmpty()) {
+    if (!variant.isEmpty()) {
         m_variantPath = QString("Variants/%1.css").arg(variant);
         m_variantName = variant;
 
-    // keep m_variantPath, m_variantName empty if there is no variant
+        // keep m_variantPath, m_variantName empty if there is no variant
     } else if (!m_chatStyle->getVariants().isEmpty()) {
         if (m_chatStyle->getVariants().contains(m_chatStyle->defaultVariantName())) {
             m_variantPath = QString("Variants/%1.css").arg(m_chatStyle->defaultVariantName());
@@ -122,14 +123,14 @@ void AdiumThemeView::initialise(const AdiumThemeHeaderInfo &chatInfo)
         // with some extra css. this may not work for all themes!
         extraStyleHtml.append (
             QString("
* {font-family:\"%1\" !important;font-size:%2pt !important};")
-                .arg( m_fontFamily )
-                .arg( m_fontSize )
+            .arg( m_fontFamily )
+            .arg( m_fontSize )
         );
     } else {
         // FIXME: we should inform the user if the chatStyle want's to use a fontFamily which is not present on the system
         QFontDatabase fontDB = QFontDatabase();
         kDebug() << "Theme font installed: " << m_chatStyle->defaultFontFamily()
-                 << fontDB.families().contains(m_chatStyle->defaultFontFamily());
+        << fontDB.families().contains(m_chatStyle->defaultFontFamily());
 
         // use theme fontFamily/Size, if not existent, it falls back to systems default font
         settings()->setFontFamily(QWebSettings::StandardFont, m_chatStyle->defaultFontFamily());
@@ -196,7 +197,7 @@ void AdiumThemeView::setChatStyle(ChatWindowStyle *chatStyle)
 
     //load the first variant
     QHash<QString, QString> variants = chatStyle->getVariants();
-    if(!chatStyle->defaultVariantName().isEmpty()
+    if (!chatStyle->defaultVariantName().isEmpty()
             && variants.keys().contains(chatStyle->defaultVariantName())) {
         m_variantPath = variants.value(chatStyle->defaultVariantName());
         m_variantName = chatStyle->defaultVariantName();
@@ -362,39 +363,48 @@ QString AdiumThemeView::replaceMessageKeywords(QString &htmlTemplate, const Adiu
     htmlTemplate.replace("%message%", m_emoticons.theme().parseEmoticons(info.message()));
 
     // link detection
-    QRegExp linkRegExp("\b(smb://|s{0,1}ftp://|www\.|https{0,1}://)\b[^ 	



]+");
+    QRegExp linkRegExp("\b(\w+)://[^ 	



]+");
     int index = 0;
 
     while ((index = linkRegExp.indexIn(htmlTemplate, index)) != -1) {
         QString realUrl = linkRegExp.cap(0);
+        QString protocol = linkRegExp.cap(1);
 
-        // text not wanted in a link ( <,> )
-        QRegExp unwanted("(<|>)");
+        kDebug() << "Found URL " << realUrl << "with protocol : " << protocol;
 
-        if (!realUrl.contains(unwanted)) {
-            // string to show to user
-            QString shownUrl = realUrl;
+        // if url has a supported protocol
+        if (KProtocolInfo::protocols().contains(protocol, Qt::CaseInsensitive)) {
 
-            // check for newline and cut link when found
-            if (realUrl.contains("<br/>")) {
-                int findIndex = realUrl.indexOf("<br/>");
-                realUrl.truncate(findIndex);
-                shownUrl.truncate(findIndex);
-            }
+            // text not wanted in a link ( <,> )
+            QRegExp unwanted("(<|>)");
 
-            // check prefix
-            if (realUrl.startsWith("www")) {
-                realUrl.prepend("http://");
-            }
+            if (!realUrl.contains(unwanted)) {
+                // string to show to user
+                QString shownUrl = realUrl;
+
+                // check for newline and cut link when found
+                if (realUrl.contains("<br/>")) {
+                    int findIndex = realUrl.indexOf("<br/>");
+                    realUrl.truncate(findIndex);
+                    shownUrl.truncate(findIndex);
+                }
+
+                // check prefix
+                if (realUrl.startsWith("www")) {
+                    realUrl.prepend("http://");
+                }
 
-            // if the url is changed, show in chat what the user typed in
-            QString link = "<a href='" + realUrl + "'>" + shownUrl + "</a>";
-            htmlTemplate.replace(index, shownUrl.length(), link);
+                // if the url is changed, show in chat what the user typed in
+                QString link = "<a href='" + realUrl + "'>" + shownUrl + "</a>";
+                htmlTemplate.replace(index, shownUrl.length(), link);
 
-            // advance position otherwise I end up parsing the same link
-            index += link.length();
+                // advance position otherwise I end up parsing the same link
+                index += link.length();
+            } else {
+                index += realUrl.length();
+            }
         } else {
-            index += realUrl.length();
+            index += linkRegExp.matchedLength();
         }
     }
 
@@ -461,3 +471,6 @@ const QString AdiumThemeView::variantPath() const
 {
     return m_variantPath;
 }
+
+
+

-- 
ktp-text-ui packaging



More information about the pkg-kde-commits mailing list