Files trunk.orig/psi and trunk/psi differ diff -U 3 -H -d -r -N -- trunk.orig/src/desktoputil.cpp trunk/src/desktoputil.cpp --- trunk.orig/src/desktoputil.cpp 2008-04-08 15:31:05.000000000 +0400 +++ trunk/src/desktoputil.cpp 2008-04-08 20:50:26.000000000 +0400 @@ -79,7 +79,9 @@ */ bool DesktopUtil::openUrl(const QString& url) { - QByteArray ascii = url.toAscii(); + if (url.startsWith("addnick://")) return true; + + QByteArray ascii = url.toUtf8(); if (ascii == url) return doOpenUrl(QUrl::fromEncoded(ascii)); else diff -U 3 -H -d -r -N -- trunk.orig/src/groupchatdlg.cpp trunk/src/groupchatdlg.cpp --- trunk.orig/src/groupchatdlg.cpp 2008-04-08 15:31:04.000000000 +0400 +++ trunk/src/groupchatdlg.cpp 2008-04-08 20:07:26.000000000 +0400 @@ -75,6 +75,7 @@ #include "psicontactlist.h" #include "accountlabel.h" #include "gcuserview.h" +#include "urlobject.h" #ifdef Q_WS_WIN #include @@ -449,6 +450,16 @@ } }; +void GCMainDlg::openURL(QString url){ + //qFatal("zaebca"); + + if (url.startsWith("addnick://")){ + ui_.mle->chatEdit()->insert(url.right( url.count()-10) + QString(": ")); + ui_.mle->chatEdit()->setFocus(); + + } +} + GCMainDlg::GCMainDlg(PsiAccount *pa, const Jid &j, TabManager *tabManager) : TabbableWidget(j.userHost(), pa, tabManager) { @@ -460,6 +471,9 @@ d->self = d->prev_self = j.resource(); account()->dialogRegister(this, jid()); connect(account(), SIGNAL(updatedActivity()), SLOT(pa_updatedActivity())); + + connect(URLObject::getInstance(), SIGNAL(openURL(QString)), SLOT(openURL(QString))); + d->mucManager = new MUCManager(account()->client(), jid()); options_ = PsiOptions::instance(); @@ -1317,7 +1331,7 @@ } else { //ui_.log->append(QString("").arg(color) + QString("[%1] <").arg(timestr) + Qt::escape(who) + QString("> ") + txt); - ui_.log->appendText(QString("").arg(nickcolor) + QString("[%1] <").arg(timestr) + Qt::escape(who) + QString("> ") + QString("").arg(textcolor) + alerttagso + txt + alerttagsc +""); + ui_.log->appendText(QString("").arg(nickcolor) + QString("[%1] <").arg(timestr) + QString("%1").arg(Qt::escape(who)) + QString("> ") + QString("").arg(textcolor) + alerttagso + txt + alerttagsc +""); } } diff -U 3 -H -d -r -N -- trunk.orig/src/groupchatdlg.h trunk/src/groupchatdlg.h --- trunk.orig/src/groupchatdlg.h 2008-04-08 15:31:04.000000000 +0400 +++ trunk/src/groupchatdlg.h 2008-04-08 20:07:38.000000000 +0400 @@ -103,6 +103,7 @@ void optionsUpdate(); private slots: + void openURL(QString); void scrollUp(); void scrollDown(); void mle_returnPressed(); Files trunk.orig/src/psi and trunk/src/psi differ Files trunk.orig/third-party/qca/libqca_psi.a and trunk/third-party/qca/libqca_psi.a differ