aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Fabio Bas2011-04-12 23:01:16 +0000
committerGravatar Fabio Bas2011-04-12 23:01:16 +0000
commit2a613bad32e6aa17ef599630fb0cb8a2d4a8b495 (patch)
tree9cc76e2d01385e6b55d620779deb5cd1a8d12bb9 /src
parentmore work on #934; (diff)
downloadKVIrc-2a613bad32e6aa17ef599630fb0cb8a2d4a8b495.tar.gz
KVIrc-2a613bad32e6aa17ef599630fb0cb8a2d4a8b495.tar.bz2
KVIrc-2a613bad32e6aa17ef599630fb0cb8a2d4a8b495.zip
properly escaped html entities in main tooltips
restored query window list entry tooltip git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5777 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvirc/ui/KviChannelWindow.cpp16
-rw-r--r--src/kvirc/ui/KviConsoleWindow.cpp21
-rw-r--r--src/kvirc/ui/KviIrcView_events.cpp7
-rw-r--r--src/kvirc/ui/KviQueryWindow.cpp91
-rw-r--r--src/kvirc/ui/KviQueryWindow.h4
5 files changed, 33 insertions, 106 deletions
diff --git a/src/kvirc/ui/KviChannelWindow.cpp b/src/kvirc/ui/KviChannelWindow.cpp
index 172fa2ac8..ca466a55c 100644
--- a/src/kvirc/ui/KviChannelWindow.cpp
+++ b/src/kvirc/ui/KviChannelWindow.cpp
@@ -75,7 +75,7 @@
#include <QPalette>
#include <QMessageBox>
#include <QCloseEvent>
-
+#include <QTextDocument> // for Qt::escape_command
// FIXME: #warning "+a Anonymous channel mode!"
// FIXME: #warning "OnChannelFlood event...."
@@ -792,34 +792,34 @@ void KviChannelWindow::getTalkingUsersStats(QString & szBuffer, QStringList & li
if(list.count() == 1)
{
szBuffer += "<b>";
- szBuffer += list.first();
+ szBuffer += Qt::escape(list.first());
szBuffer += "</b>";
szBuffer += " ";
szBuffer += bPast ? __tr2qs("said something recently") : __tr2qs("is talking");
} else if(list.count() == 2)
{
szBuffer += "<b>";
- szBuffer += list.first();
+ szBuffer += Qt::escape(list.first());
szBuffer += "</b> ";
szBuffer += __tr2qs("and");
szBuffer += " <b>";
list.erase(list.begin());
- szBuffer += list.first();
+ szBuffer += Qt::escape(list.first());
szBuffer += "</b> ";
szBuffer += bPast ? __tr2qs("were talking recently") : __tr2qs("are talking");
} else {
szBuffer += "<b>";
- szBuffer += list.first();
+ szBuffer += Qt::escape(list.first());
szBuffer += "</b>, <b>";
list.erase(list.begin());
- szBuffer += list.first();
+ szBuffer += Qt::escape(list.first());
if(list.count() == 2)
{
szBuffer += "</b> ";
szBuffer += __tr2qs("and");
szBuffer += " <b>";
list.erase(list.begin());
- szBuffer += list.first();
+ szBuffer += Qt::escape(list.first());
szBuffer += "</b>";
} else {
// (list.count() - 1) is > 1
@@ -865,7 +865,7 @@ void KviChannelWindow::getWindowListTipText(QString & szBuffer)
m_pUserListView->userStats(&s);
- szBuffer += m_szPlainTextCaption;
+ szBuffer += Qt::escape(m_szPlainTextCaption);
szBuffer += szEndOfFontBoldRow;
szBuffer += szRowStart;
diff --git a/src/kvirc/ui/KviConsoleWindow.cpp b/src/kvirc/ui/KviConsoleWindow.cpp
index fa10a5cbc..d730f3229 100644
--- a/src/kvirc/ui/KviConsoleWindow.cpp
+++ b/src/kvirc/ui/KviConsoleWindow.cpp
@@ -83,6 +83,7 @@
#include <QTextDocument>
#include <QRegExp>
#include <QDebug>
+#include <QTextDocument> // for Qt::escape_command
#define __KVI_DEBUG__
#include "kvi_debug.h"
@@ -259,11 +260,11 @@ void KviConsoleWindow::getUserTipText(const QString &nick,KviIrcUserEntry *e,QSt
"<tr><td bgcolor=\"#303030\">" \
"<center><font color=\"#FFFFFF\"><b>";
- buffer += nick;
+ buffer += Qt::escape(nick);
buffer += "!";
- buffer += e->user().isEmpty() ? QString("*") : e->user();
+ buffer += Qt::escape(e->user().isEmpty() ? QString("*") : e->user());
buffer += "@";
- buffer += e->host().isEmpty() ? QString("*") : e->host();
+ buffer += Qt::escape(e->host().isEmpty() ? QString("*") : e->host());
buffer += "</b></font></center></td></tr>";
if(u)
@@ -272,7 +273,7 @@ void KviConsoleWindow::getUserTipText(const QString &nick,KviIrcUserEntry *e,QSt
if(!szComment.isEmpty())
{
buffer += "<tr bgcolor=\"#F0F0F0\"><td><center><font size=\"-1\">(";
- buffer += szComment;
+ buffer += Qt::escape(szComment);
buffer += ")</font></center></td></tr>";
}
}
@@ -285,7 +286,7 @@ void KviConsoleWindow::getUserTipText(const QString &nick,KviIrcUserEntry *e,QSt
if(e->hasRealName())
{
buffer += "<tr><td><center><b>";
- buffer += KviControlCodes::stripControlBytes(e->realName());
+ buffer += Qt::escape(KviControlCodes::stripControlBytes(e->realName()));
buffer += "</b></center></td></tr>";
}
@@ -305,13 +306,13 @@ void KviConsoleWindow::getUserTipText(const QString &nick,KviIrcUserEntry *e,QSt
buffer += "<tr bgcolor=\"#F0F0F0\"><td><font color=\"#000000\">";
buffer += __tr2qs("Registered as");
buffer += " <b>";
- buffer += u->user()->name();
+ buffer += Qt::escape(u->user()->name());
buffer += "</b>; Group ";
- buffer += u->user()->group();
+ buffer += Qt::escape(u->user()->group());
buffer += "</font></td></tr><tr bgcolor=\"#F0F0F0\"><td><font size=\"-1\" color=\"#000000\">";
buffer += __tr2qs("(Matched by");
buffer += " ";
- buffer += mask;
+ buffer += Qt::escape(mask);
buffer += ")</font></td></tr>";
}
@@ -322,7 +323,7 @@ void KviConsoleWindow::getUserTipText(const QString &nick,KviIrcUserEntry *e,QSt
{
buffer += "<tr><td bgcolor=\"#F0F0F0\"><font color=\"#000000\">";
buffer += __tr2qs("On <b>");
- buffer += chans;
+ buffer += Qt::escape(chans);
buffer += "</b></font></td></tr>";
}
}
@@ -330,7 +331,7 @@ void KviConsoleWindow::getUserTipText(const QString &nick,KviIrcUserEntry *e,QSt
if(e->hasServer())
{
buffer += "<tr><td bgcolor=\"#F0F0F0\"><nobr><font color=\"#000000\">";
- buffer += __tr2qs("Using server <b>%1</b>").arg(e->server());
+ buffer += __tr2qs("Using server <b>%1</b>").arg(Qt::escape(e->server()));
if(e->hasHops())
{
diff --git a/src/kvirc/ui/KviIrcView_events.cpp b/src/kvirc/ui/KviIrcView_events.cpp
index cc647b033..210125373 100644
--- a/src/kvirc/ui/KviIrcView_events.cpp
+++ b/src/kvirc/ui/KviIrcView_events.cpp
@@ -47,6 +47,7 @@
#include <QMouseEvent>
#include <QScrollBar>
#include <QUrl>
+#include <QTextDocument> // for Qt::escape_command
#define KVI_IRCVIEW_SELECT_REPAINT_INTERVAL 100
@@ -980,17 +981,15 @@ void KviIrcView::doLinkToolTip(const QRect &rct,QString &linkCmd,QString &linkTe
QString chanMode;
c->getChannelModeString(chanMode);
QString topic = KviControlCodes::stripControlBytes(c->topicWidget()->topic());
- topic.replace("<","&lt;");
- topic.replace(">","&gt;");
KviIrcUrl::join(szUrl,console()->connection()->target()->server());
szUrl.append(szChan);
buf = QString(__tr2qs("<b>%1</b> (<u><font color=\"blue\"><nowrap>"
- "%2</nowrap></font></u>): <br><nowrap>+%3 (%4 users)<hr>%5</nowrap>")).arg(szChan,szUrl,chanMode).arg(c->count()).arg(topic);
+ "%2</nowrap></font></u>): <br><nowrap>+%3 (%4 users)<hr>%5</nowrap>")).arg(Qt::escape(szChan),Qt::escape(szUrl),Qt::escape(chanMode)).arg(c->count()).arg(Qt::escape(topic));
} else {
KviIrcUrl::join(szUrl,console()->connection()->target()->server());
szUrl.append(szChan);
buf = QString(__tr2qs("<b>%1</b> (<u><font color=\"blue\"><nowrap>"
- "%2</nowrap></font></u>)<hr>Double-click to join %3<br>Right click to view other options")).arg(szChan,szUrl,szChan);
+ "%2</nowrap></font></u>)<hr>Double-click to join %3<br>Right click to view other options")).arg(Qt::escape(szChan),Qt::escape(szUrl),Qt::escape(szChan));
}
tip += buf;
diff --git a/src/kvirc/ui/KviQueryWindow.cpp b/src/kvirc/ui/KviQueryWindow.cpp
index f7d4f3181..1bfa291df 100644
--- a/src/kvirc/ui/KviQueryWindow.cpp
+++ b/src/kvirc/ui/KviQueryWindow.cpp
@@ -63,6 +63,7 @@
#include <QPixmap>
#include <QList>
#include <QByteArray>
+#include <QTextDocument> // for Qt::escape_command
KviQueryWindow::KviQueryWindow(KviMainWindow * lpFrm, KviConsoleWindow * lpConsole, const QString & szNick)
: KviWindow(KviWindow::Query,lpFrm,szNick,lpConsole)
@@ -131,98 +132,24 @@ void KviQueryWindow::updateLabelText()
if(szText != m_pLabel->text())
{
m_pLabel->setText(szText);
- KviTalToolTip::add(m_pLabel,getInfoLabelTipText());
+ QString szBuffer;
+ getWindowListTipText(szBuffer);
+ KviTalToolTip::add(m_pLabel,szBuffer);
}
}
-QString KviQueryWindow::getInfoLabelTipText()
+void KviQueryWindow::getWindowListTipText(QString & szBuffer)
{
QString szText;
if(!connection())
- return szText;
+ szBuffer = __tr2qs("[Dead Query]");
KviIrcUserEntry * pEntry = connection()->userDataBase()->find(m_szName);
if(pEntry)
{
- QString szTmp;
- QString szMask;
-
- if(pEntry->hasUser())
- szMask += pEntry->user();
- else
- szMask += "*";
-
- szMask += "@";
-
- if(pEntry->hasHost())
- szMask += pEntry->host();
- else
- szMask += "*";
-
- szTmp += "\n";
-
- QString szChans;
- connection()->getCommonChannels(m_szName,szChans,0);
- if(connection())
- {
-
- szText = "<html>" \
- "<body>" \
- "<table width=\"100%\">";
-
- szText += START_TABLE_BOLD_ROW;
- szText += __tr2qs("Query target:");
- szText += END_TABLE_BOLD_ROW;
- szText += "<tr><td>";
-
- if(pEntry->hasRealName())
- szTmp = __tr2qs("%1 is %2 (%3)").arg(m_szName, szMask, KviControlCodes::stripControlBytes(pEntry->realName()));
- else
- szTmp = __tr2qs("%1 is %2").arg(m_szName, szMask);
-
- szTmp.replace('&',"&amp;");
- szTmp.replace('<',"&lt;");
- szTmp.replace('>',"&gt;");
-
- szText += szTmp;
-
- szText += "</td></tr>";
-
- if(pEntry->hasServer())
- {
- szText += "<tr><td>";
- if(pEntry->hasHops())
- szText += __tr2qs("%1 is using irc server: %2 (%3 hops)").arg(m_szName, pEntry->server()).arg(pEntry->hops());
- else
- szText += __tr2qs("%1 is using irc server: %2").arg(m_szName, pEntry->server());
- szText += "</td></tr>";
- }
-
- if(pEntry->isAway())
- {
- szText += "<tr><td>";
- szText += __tr2qs("%1 is probably away").arg(m_szName);
- szText += "</td></tr>";
- }
-
- szText += "<tr><td>";
- szTmp = __tr2qs("Common channels with %1: %2").arg(m_szName, szChans);
-
- szTmp.replace('&',"&amp;");
- szTmp.replace('<',"&lt;");
- szTmp.replace('>',"&gt;");
-
- szText += szTmp;
- szText +="</td></tr>";
-
- szText += "</table>" \
- "</body>" \
- "<html>";
- } else {
- szText = __tr2qs("[Dead Query]");
- }
- }
- return szText;
+ QString buffer;
+ console()->getUserTipText(m_szName,pEntry,szBuffer);
+ } else szBuffer = QString(__tr2qs("Nothing known about %1")).arg(m_szName);
}
QString KviQueryWindow::getInfoLabelText()
diff --git a/src/kvirc/ui/KviQueryWindow.h b/src/kvirc/ui/KviQueryWindow.h
index fce1f440b..a57340cf9 100644
--- a/src/kvirc/ui/KviQueryWindow.h
+++ b/src/kvirc/ui/KviQueryWindow.h
@@ -267,10 +267,10 @@ protected:
QString getInfoLabelText();
/**
- * \brief Gets the info of the tooltip text
+ * \brief Gets the window list and info label tooltip text
* \return QString
*/
- QString getInfoLabelTipText();
+ virtual void getWindowListTipText(QString & szBuffer);
/**
* \brief Returns the icon associated to the query