diff options
| author | 2011-04-12 23:01:16 +0000 | |
|---|---|---|
| committer | 2011-04-12 23:01:16 +0000 | |
| commit | 2a613bad32e6aa17ef599630fb0cb8a2d4a8b495 (patch) | |
| tree | 9cc76e2d01385e6b55d620779deb5cd1a8d12bb9 /src | |
| parent | more work on #934; (diff) | |
| download | KVIrc-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.cpp | 16 | ||||
| -rw-r--r-- | src/kvirc/ui/KviConsoleWindow.cpp | 21 | ||||
| -rw-r--r-- | src/kvirc/ui/KviIrcView_events.cpp | 7 | ||||
| -rw-r--r-- | src/kvirc/ui/KviQueryWindow.cpp | 91 | ||||
| -rw-r--r-- | src/kvirc/ui/KviQueryWindow.h | 4 |
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("<","<"); - topic.replace(">",">"); 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('&',"&"); - szTmp.replace('<',"<"); - szTmp.replace('>',">"); - - 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('&',"&"); - szTmp.replace('<',"<"); - szTmp.replace('>',">"); - - 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 |
