Merge pull request #1138 from ZeldaZach/chatview_www

Fix WWW link error
This commit is contained in:
Zach 2015-06-16 20:57:46 -04:00
commit 853342463a

View file

@ -163,12 +163,15 @@ void ChatView::appendMessage(QString message, QString sender, UserLevelFlags use
int index = -1, bracketFirstIndex = -1, mentionFirstIndex = -1, urlFirstIndex = -1; int index = -1, bracketFirstIndex = -1, mentionFirstIndex = -1, urlFirstIndex = -1;
bool mentionEnabled = settingsCache->getChatMention(); bool mentionEnabled = settingsCache->getChatMention();
const QRegExp urlStarter = QRegExp("https?://|\\bwww\\.");
const QRegExp phraseEnder = QRegExp("\\s");
while (message.size()) while (message.size())
{ {
// search for the first [ or @ // search for the first [ or @
bracketFirstIndex = message.indexOf('['); bracketFirstIndex = message.indexOf('[');
mentionFirstIndex = mentionEnabled ? message.indexOf('@') : -1; mentionFirstIndex = mentionEnabled ? message.indexOf('@') : -1;
urlFirstIndex = message.indexOf(QRegExp("https?://|www.")); urlFirstIndex = message.indexOf(urlStarter);
if(bracketFirstIndex == -1) { if(bracketFirstIndex == -1) {
if(mentionFirstIndex == -1) { if(mentionFirstIndex == -1) {
if (urlFirstIndex == -1) { if (urlFirstIndex == -1) {
@ -245,7 +248,7 @@ void ChatView::appendMessage(QString message, QString sender, UserLevelFlags use
message = message.mid(1); message = message.mid(1);
} }
} else if (index == urlFirstIndex) { } else if (index == urlFirstIndex) {
int urlEndIndex = message.indexOf(QRegExp("\\s"), 0); int urlEndIndex = message.indexOf(phraseEnder, 0);
if (urlEndIndex == -1) if (urlEndIndex == -1)
urlEndIndex = message.size(); urlEndIndex = message.size();
QString urlText = message.left(urlEndIndex); QString urlText = message.left(urlEndIndex);
@ -271,7 +274,7 @@ void ChatView::appendMessage(QString message, QString sender, UserLevelFlags use
showSystemPopup(ref); showSystemPopup(ref);
} }
} else { } else {
int mentionEndIndex = message.indexOf(QRegExp("\\s"), 1);// from 1 as @ is non-char int mentionEndIndex = message.indexOf(phraseEnder, 1);// from 1 as @ is non-char
if (mentionEndIndex == -1) if (mentionEndIndex == -1)
mentionEndIndex = message.size(); // there is no text after the mention mentionEndIndex = message.size(); // there is no text after the mention
QString userMention = message.left(mentionEndIndex); QString userMention = message.left(mentionEndIndex);