[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