Author: jpc Date: Tue Sep 6 23:06:14 2005 GMT Module: SOURCES Tag: DEVEL ---- Log message: - up to 0.10-test2
---- Files affected: SOURCES: psi-adhoc_and_rc.patch (1.1 -> 1.1.2.1) , psi-empty_group-fix.patch (1.1 -> 1.1.2.1) , psi-icon_buttons_big_return-mod.patch (1.1 -> 1.1.2.1) , psi-nicechats-mod.patch (1.2.2.7 -> 1.2.2.8) , psi-no_online_status-mod.patch (1.1.2.1 -> 1.1.2.2) , psi-roster-rich.patch (1.1.2.1 -> 1.1.2.2) , psi-settoggles-fix.patch (1.1 -> 1.1.2.1) , psi-status_history-add.patch (1.1.2.1 -> 1.1.2.2) , psi-status_indicator-add.patch (1.2.2.3 -> 1.2.2.4) ---- Diffs: ================================================================ Index: SOURCES/psi-adhoc_and_rc.patch diff -u SOURCES/psi-adhoc_and_rc.patch:1.1 SOURCES/psi-adhoc_and_rc.patch:1.1.2.1 --- SOURCES/psi-adhoc_and_rc.patch:1.1 Sun Jan 2 20:22:17 2005 +++ SOURCES/psi-adhoc_and_rc.patch Wed Sep 7 01:06:09 2005 @@ -1,7 +1,7 @@ diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/adhoc.cpp psi.rc/psi/src/adhoc.cpp --- psi.clean/psi/src/adhoc.cpp Thu Jan 1 01:00:00 1970 -+++ psi.rc/psi/src/adhoc.cpp Tue Dec 28 23:07:13 2004 -@@ -0,0 +1,893 @@ ++++ psi.rc/psi/src/adhoc.cpp Sun Jan 2 20:10:54 2005 +@@ -0,0 +1,911 @@ +/* + * adhoc.cpp - Client & Server implementation of JEP-50 (Ad-Hoc Commands) + * Copyright (C) 2005 Remko Troncon @@ -135,6 +135,13 @@ + r.setStatus(Completed); + return r; +} ++ ++AHCommand AHCommand::completedReply(const AHCommand& c, const XData& d) ++{ ++ AHCommand r(c.node(), d, c.sessionId()); ++ r.setStatus(Completed); ++ return r; ++} + +//AHCommand AHCommand::errorReply(const AHCommand& c, const AHCError& error) +//{ @@ -513,7 +520,7 @@ + } + else + // Execute the command & send back the response -+ server_task_->sendReply(c->execute(command), requester, id); ++ server_task_->sendReply(c->execute(command, requester), requester, id); + } + else { + //server_task_->sendReply(AHCommand::errorReply(command,AHCError(AHCError::Forbidden)), requester, id); @@ -652,6 +659,10 @@ + AHCFormDlg *w = new AHCFormDlg(c,receiver_,account_); + w->show(); + } ++ else if (c.status() == AHCommand::Completed && i.childNodes().count() > 0) { ++ AHCFormDlg *w = new AHCFormDlg(c,receiver_,account_, true); ++ w->show(); ++ } + setSuccess(); + return true; + } @@ -756,7 +767,7 @@ + +// -------------------------------------------------------------------------- + -+AHCFormDlg::AHCFormDlg(const AHCommand& r, const Jid& receiver, PsiAccount* account) : receiver_(receiver), account_(account) ++AHCFormDlg::AHCFormDlg(const AHCommand& r, const Jid& receiver, PsiAccount* account, bool final) : receiver_(receiver), account_(account) +{ + // Save node + node_ = r.node(); @@ -777,69 +788,76 @@ + + // Buttons + QHBoxLayout *hb = new QHBoxLayout(vb); -+ pb_prev = pb_next = 0; -+ if (r.actions().empty()) { -+ // Single stage dialog -+ pb_complete = new QPushButton(tr("Finish"),this); -+ connect(pb_complete,SIGNAL(clicked()),SLOT(doExecute())); -+ hb->addWidget(pb_complete); -+ } -+ else { -+ // Multi-stage dialog -+ -+ // Previous -+ pb_prev = new QPushButton(tr("Previous"),this); -+ if (r.actions().contains(AHCommand::Prev)) { -+ if (r.defaultAction() == AHCommand::Prev) { -+ connect(pb_prev,SIGNAL(clicked()),SLOT(doExecute())); -+ pb_prev->setDefault(true); -+ pb_prev->setFocus(); -+ } -+ else -+ connect(pb_prev,SIGNAL(clicked()),SLOT(doPrev())); -+ pb_prev->setEnabled(true); ++ pb_complete = pb_cancel = pb_prev = pb_next = 0; ++ if (!final) { ++ if (r.actions().empty()) { ++ // Single stage dialog ++ pb_complete = new QPushButton(tr("Finish"),this); ++ connect(pb_complete,SIGNAL(clicked()),SLOT(doExecute())); ++ hb->addWidget(pb_complete); + } -+ else -+ pb_prev->setEnabled(false); -+ hb->addWidget(pb_prev); ++ else { ++ // Multi-stage dialog + -+ // Next -+ pb_next = new QPushButton(tr("Next"),this); -+ if (r.actions().contains(AHCommand::Next)) { -+ if (r.defaultAction() == AHCommand::Next) { -+ connect(pb_next,SIGNAL(clicked()),SLOT(doExecute())); -+ pb_next->setDefault(true); -+ pb_next->setFocus(); ++ // Previous ++ pb_prev = new QPushButton(tr("Previous"),this); ++ if (r.actions().contains(AHCommand::Prev)) { ++ if (r.defaultAction() == AHCommand::Prev) { ++ connect(pb_prev,SIGNAL(clicked()),SLOT(doExecute())); ++ pb_prev->setDefault(true); ++ pb_prev->setFocus(); ++ } ++ else ++ connect(pb_prev,SIGNAL(clicked()),SLOT(doPrev())); ++ pb_prev->setEnabled(true); + } -+ else -+ connect(pb_next,SIGNAL(clicked()),SLOT(doNext())); -+ pb_next->setEnabled(true); -+ } -+ else { -+ pb_next->setEnabled(false); -+ } -+ hb->addWidget(pb_next); -+ -+ // Complete -+ pb_complete = new QPushButton(tr("Finish"),this); -+ if (r.actions().contains(AHCommand::Complete)) { -+ if (r.defaultAction() == AHCommand::Complete) { -+ connect(pb_complete,SIGNAL(clicked()),SLOT(doExecute())); -+ pb_complete->setDefault(true); -+ pb_complete->setFocus(); ++ else ++ pb_prev->setEnabled(false); ++ hb->addWidget(pb_prev); ++ ++ // Next ++ pb_next = new QPushButton(tr("Next"),this); ++ if (r.actions().contains(AHCommand::Next)) { ++ if (r.defaultAction() == AHCommand::Next) { ++ connect(pb_next,SIGNAL(clicked()),SLOT(doExecute())); ++ pb_next->setDefault(true); ++ pb_next->setFocus(); ++ } ++ else ++ connect(pb_next,SIGNAL(clicked()),SLOT(doNext())); ++ pb_next->setEnabled(true); + } -+ else -+ connect(pb_complete,SIGNAL(clicked()),SLOT(doComplete())); -+ pb_complete->setEnabled(true); -+ } -+ else { -+ pb_complete->setEnabled(false); ++ else { ++ pb_next->setEnabled(false); ++ } ++ hb->addWidget(pb_next); ++ ++ // Complete ++ pb_complete = new QPushButton(tr("Finish"),this); ++ if (r.actions().contains(AHCommand::Complete)) { ++ if (r.defaultAction() == AHCommand::Complete) { ++ connect(pb_complete,SIGNAL(clicked()),SLOT(doExecute())); ++ pb_complete->setDefault(true); ++ pb_complete->setFocus(); ++ } ++ else ++ connect(pb_complete,SIGNAL(clicked()),SLOT(doComplete())); ++ pb_complete->setEnabled(true); ++ } ++ else { ++ pb_complete->setEnabled(false); ++ } ++ hb->addWidget(pb_complete); + } ++ pb_cancel = new QPushButton(tr("Cancel"), this); ++ connect(pb_cancel, SIGNAL(clicked()),SLOT(doCancel())); ++ hb->addWidget(pb_cancel); ++ } ++ else { ++ pb_complete = new QPushButton(tr("Ok"),this); ++ connect(pb_complete,SIGNAL(clicked()),SLOT(close())); + hb->addWidget(pb_complete); + } -+ pb_cancel = new QPushButton(tr("Cancel"), this); -+ connect(pb_cancel, SIGNAL(clicked()),SLOT(doCancel())); -+ hb->addWidget(pb_cancel); + + if (!r.data().title().isEmpty()) { + setCaption(QString("%1 (%2)").arg(r.data().title()).arg(receiver.full())); @@ -897,8 +915,8 @@ +#include "adhoc.moc" diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/adhoc.h psi.rc/psi/src/adhoc.h --- psi.clean/psi/src/adhoc.h Thu Jan 1 01:00:00 1970 -+++ psi.rc/psi/src/adhoc.h Tue Dec 28 23:06:24 2004 -@@ -0,0 +1,228 @@ ++++ psi.rc/psi/src/adhoc.h Sun Jan 2 20:09:22 2005 +@@ -0,0 +1,229 @@ +/* + * adhoc.h - Client & Server implementation of JEP-50 (Ad-Hoc Commands) + * Copyright (C) 2005 Remko Troncon @@ -996,6 +1014,7 @@ + static AHCommand formReply(const AHCommand&, const XData&, const QString& sessionId); + static AHCommand canceledReply(const AHCommand&); + static AHCommand completedReply(const AHCommand&); ++ static AHCommand completedReply(const AHCommand&, const XData&); + //static AHCommand errorReply(const AHCommand&, const AHCError&); + +protected: @@ -1037,7 +1056,7 @@ + virtual QString name() const = 0; + virtual QString node() const = 0; + virtual bool isAllowed(const Jid&) const { return true; } -+ virtual AHCommand execute(const AHCommand&) = 0; ++ virtual AHCommand execute(const AHCommand&, const Jid& requester) = 0; + virtual void cancel(const AHCommand&) { } + +protected: @@ -1105,7 +1124,7 @@ +{ + Q_OBJECT +public: -+ AHCFormDlg(const AHCommand& r, const Jid& receiver, PsiAccount* account); ++ AHCFormDlg(const AHCommand& r, const Jid& receiver, PsiAccount* account, bool final = false); + +protected: + XData data() const; @@ -1127,6 +1146,142 @@ +}; + +#endif +diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/adhoc_fileserver.cpp psi.rc/psi/src/adhoc_fileserver.cpp +--- psi.clean/psi/src/adhoc_fileserver.cpp Thu Jan 1 01:00:00 1970 ++++ psi.rc/psi/src/adhoc_fileserver.cpp Sun Jan 2 20:11:22 2005 +@@ -0,0 +1,90 @@ ++/* ++ * adhoc_fileserver.cpp - Implementation of a personal ad-hoc fileserver ++ * Copyright (C) 2005 Remko Troncon ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++#include <qdir.h> ++#include <qfileinfo.h> ++ ++#include "common.h" ++#include "psiaccount.h" ++#include "adhoc_fileserver.h" ++#include "xmpp_xdata.h" ++ ++using namespace XMPP; ++ ++bool AHFileServer::isAllowed(const Jid& j) const ++{ ++ return manager()->account()->jid().compare(j,false); ++} ++ ++AHCommand AHFileServer::execute(const AHCommand& c, const Jid& requester) ++{ ++ // Extract the file ++ QString file; ++ if (c.hasData()) { ++ QString fileName, curDir; ++ XData::FieldList fl = c.data().fields(); ++ for (unsigned int i=0; i < fl.count(); i++) { ++ if (fl[i].var() == "file" && !(fl[i].value().isEmpty())) { ++ file = fl[i].value().first(); ++ } ++ } ++ } ++ else { ++ file = QDir::currentDirPath(); ++ } ++ ++ if (QFileInfo(file).isDir()) { ++ // Return a form with a filelist ++ XData form; ++ form.setTitle(QObject::tr("Choose file")); ++ form.setInstructions(QObject::tr("Choose a file")); ++ form.setType(XData::Data_Form); ++ XData::FieldList fields; ++ ++ XData::Field files_field; ++ files_field.setType(XData::Field::Field_ListSingle); ++ files_field.setVar("file"); ++ files_field.setLabel(QObject::tr("File")); ++ files_field.setRequired(true); ++ ++ XData::Field::OptionList file_options; ++ QDir d(file); ++ //d.setFilter(QDir::Files|QDir::Hidden|QDir::NoSymLinks); ++ QStringList l = d.entryList(); ++ for (QStringList::Iterator it = l.begin(); it != l.end(); ++it ) { ++ XData::Field::Option file_option; ++ QFileInfo fi(QDir(file).filePath(*it)); ++ file_option.label = *it + (fi.isDir() ? QString(" [DIR]") : QString(" (%1 bytes)").arg(QString::number(fi.size()))); ++ file_option.value = QDir(file).absFilePath(*it); ++ file_options += file_option; ++ } ++ files_field.setOptions(file_options); ++ fields += files_field; ++ ++ form.setFields(fields); ++ ++ return AHCommand::formReply(c, form); ++ } ++ else { ++ QStringList l(file); ++ manager()->account()->sendFiles(requester,l,true); ++ return AHCommand::completedReply(c); ++ } ++} +diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/adhoc_fileserver.h psi.rc/psi/src/adhoc_fileserver.h +--- psi.clean/psi/src/adhoc_fileserver.h Thu Jan 1 01:00:00 1970 ++++ psi.rc/psi/src/adhoc_fileserver.h Sun Jan 2 20:11:51 2005 +@@ -0,0 +1,38 @@ ++/* ++ * adhoc_fileserver.h - Implementation of a personal file server using ad-hoc ++ * commands ++ * Copyright (C) 2005 Remko Troncon ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2 ++ * of the License, or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this library; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++ ++#ifndef AHFILESERVER_H ++#define AHFILESERVER_H ++ ++#include "adhoc.h" ++ ++class AHFileServer : public AHCommandServer ++{ ++public: ++ AHFileServer(AHCServerManager* m) : AHCommandServer(m) { } ++ virtual QString node() const ++ { return QString("http://psi.affinix.com/commands/files"); } ++ virtual bool isAllowed(const Jid&) const; ++ virtual QString name() const { return QString("Send file"); } ++ virtual AHCommand execute(const AHCommand& c, const Jid&); ++}; ++ ++#endif diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/contactview.cpp psi.rc/psi/src/contactview.cpp --- psi.clean/psi/src/contactview.cpp Fri Oct 29 19:00:38 2004 +++ psi.rc/psi/src/contactview.cpp Tue Dec 28 01:12:36 2004 @@ -1195,19 +1350,55 @@ void actionDisco(const Jid &, const QString &); void actionInvite(const Jid &, const QString &); void actionAssignKey(const Jid &); +diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/filetransdlg.cpp psi.rc/psi/src/filetransdlg.cpp +--- psi.clean/psi/src/filetransdlg.cpp Sat Nov 6 11:48:40 2004 ++++ psi.rc/psi/src/filetransdlg.cpp Sun Jan 2 19:57:59 2005 +@@ -500,7 +500,7 @@ + } + + +-FileRequestDlg::FileRequestDlg(const Jid &jid, PsiCon *psi, PsiAccount *pa, const QStringList& files) ++FileRequestDlg::FileRequestDlg(const Jid &jid, PsiCon *psi, PsiAccount *pa, const QStringList& files, bool direct) + :FileTransUI(0, 0, false, psi_dialog_flags | WDestructiveClose) + { + d = new Private; +@@ -567,6 +567,10 @@ + lastPath = fi.dirPath(); + le_fname->setText(QDir::convertSeparators(fi.filePath())); + lb_size->setText(tr("%1 byte(s)").arg(fi.size())); // TODO: large file support ++ } ++ ++ if (direct) { ++ doStart(); + } + } + +diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/filetransdlg.h psi.rc/psi/src/filetransdlg.h +--- psi.clean/psi/src/filetransdlg.h Wed Jun 30 13:51:30 2004 ++++ psi.rc/psi/src/filetransdlg.h Sun Jan 2 19:55:42 2005 +@@ -78,7 +78,7 @@ + Q_OBJECT + public: + FileRequestDlg(const Jid &j, PsiCon *psi, PsiAccount *pa); +- FileRequestDlg(const Jid &j, PsiCon *psi, PsiAccount *pa, const QStringList& files); ++ FileRequestDlg(const Jid &j, PsiCon *psi, PsiAccount *pa, const QStringList& files, bool direct = false); + FileRequestDlg(const QDateTime &ts, FileTransfer *ft, PsiAccount *pa); + ~FileRequestDlg(); + diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/psiaccount.cpp psi.rc/psi/src/psiaccount.cpp --- psi.clean/psi/src/psiaccount.cpp Wed Dec 8 15:42:39 2004 -+++ psi.rc/psi/src/psiaccount.cpp Tue Dec 28 16:30:07 2004 -@@ -35,6 +35,8 @@ ++++ psi.rc/psi/src/psiaccount.cpp Sun Jan 2 20:24:08 2005 +@@ -35,6 +35,9 @@ #include<qfileinfo.h> #include"psicon.h" +#include"adhoc.h" +#include"rc.h" ++#include"adhoc_fileserver.h" #include"profiles.h" #include"im.h" //#include"xmpp_client.h" -@@ -300,6 +302,9 @@ +@@ -300,6 +303,9 @@ BlockTransportPopupList *blockTransportPopupList; int userCounter; @@ -1217,7 +1408,7 @@ // Avatars //AvatarFactory* avatarFactory; -@@ -459,11 +464,19 @@ +@@ -459,11 +465,25 @@ connect(d->cp, SIGNAL(actionTest(const Jid &)),SLOT(actionTest(const Jid &))); connect(d->cp, SIGNAL(actionSendFile(const Jid &)),SLOT(actionSendFile(const Jid &))); connect(d->cp, SIGNAL(actionSendFiles(const Jid &, const QStringList&)),SLOT(actionSendFiles(const Jid &, const QStringList&))); @@ -1233,16 +1424,58 @@ + new RCSetStatusServer(d->ahcManager); + //new RCForwardServer(d->ahcManager); + new RCSetOptionsServer(d->ahcManager, d->psi); ++ // !!!!!!!!!! WARNING !!!!!!! ++ // Uncommenting the following line is a *huge* security risk. Anyone who ++ // is able to impersonate you in the Jabber protocol (such as your server ++ // admin) can download _every_ file from your computer you have access to. ++ // Uncomment this only if you want to do some quick tests ! ++ //new AHFileServer(d->ahcManager); + // restore cached roster for(Roster::ConstIterator it = acc.roster.begin(); it != acc.roster.end(); ++it) client_rosterItemUpdated(*it); -@@ -2248,6 +2261,26 @@ - FileRequestDlg *w = new FileRequestDlg(j2, d->psi, this, l); +@@ -2220,13 +2240,7 @@ + w->show(); + } + +-void PsiAccount::actionSendFile(const Jid &j) +-{ +- QStringList l; +- actionSendFiles(j, l); +-} +- +-void PsiAccount::actionSendFiles(const Jid &j, const QStringList& l) ++void PsiAccount::sendFiles(const Jid& j, const QStringList& l, bool direct) + { + Jid j2 = j; + if(j.resource().isEmpty()) { +@@ -2240,14 +2254,45 @@ + if (!l.isEmpty()) { + for (QStringList::ConstIterator f = l.begin(); f != l.end(); ++f ) { + QStringList fl(*f); +- FileRequestDlg *w = new FileRequestDlg(j2, d->psi, this, fl); ++ FileRequestDlg *w = new FileRequestDlg(j2, d->psi, this, fl, direct); + w->show(); + } + } + else { +- FileRequestDlg *w = new FileRequestDlg(j2, d->psi, this, l); ++ FileRequestDlg *w = new FileRequestDlg(j2, d->psi, this, l, direct); w->show(); } +} + ++void PsiAccount::actionSendFile(const Jid &j) ++{ ++ QStringList l; ++ sendFiles(j,l); ++} ++ ++void PsiAccount::actionSendFiles(const Jid &j, const QStringList& l) ++{ ++ sendFiles(j, l); ++} ++ +void PsiAccount::actionExecuteCommand(const Jid& j) +{ + printf("Non-specific\n"); @@ -1266,8 +1499,16 @@ void PsiAccount::actionDefault(const Jid &j) diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/psiaccount.h psi.rc/psi/src/psiaccount.h --- psi.clean/psi/src/psiaccount.h Wed Aug 18 03:35:35 2004 -+++ psi.rc/psi/src/psiaccount.h Tue Dec 28 00:58:26 2004 -@@ -263,6 +263,8 @@ ++++ psi.rc/psi/src/psiaccount.h Sun Jan 2 19:52:36 2005 +@@ -204,6 +204,7 @@ + static void getErrorInfo(int err, AdvancedConnector *conn, Stream *stream, QCATLSHandler *tlsHandler, QString *_str, bool *_reconn); + + void deleteQueueFile(); ++ void sendFiles(const Jid&, const QStringList&, bool direct = false); + + signals: + void disconnected(); +@@ -263,6 +264,8 @@ void actionInvite(const Jid &, const QString &); void actionSendFile(const Jid &); void actionSendFiles(const Jid &, const QStringList&); @@ -1278,7 +1519,7 @@ void actionAssignKey(const Jid &); diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/rc.cpp psi.rc/psi/src/rc.cpp --- psi.clean/psi/src/rc.cpp Thu Jan 1 01:00:00 1970 -+++ psi.rc/psi/src/rc.cpp Tue Dec 28 23:05:51 2004 ++++ psi.rc/psi/src/rc.cpp Sun Jan 2 20:10:10 2005 @@ -0,0 +1,220 @@ +/* + * rc.cpp - Implementation of JEP-146 (Remote Controlling Clients) @@ -1316,7 +1557,7 @@ + return manager()->account()->jid().compare(j,false); +} + -+AHCommand RCSetStatusServer::execute(const AHCommand& c) ++AHCommand RCSetStatusServer::execute(const AHCommand& c, const Jid&) +{ + // Check if the session ID is correct + //if (c.sessionId() != "") @@ -1325,7 +1566,7 @@ + if (!c.hasData()) { + // Initial set status form + XData form; -+ form.setTitle(QObject::QObject::tr("Set Status")); ++ form.setTitle(QObject::tr("Set Status")); + form.setInstructions(QObject::tr("Choose the status and status message")); + form.setType(XData::Data_Form); + XData::FieldList fields; @@ -1425,7 +1666,7 @@ +} + + -+AHCommand RCSetOptionsServer::execute(const AHCommand& c) ++AHCommand RCSetOptionsServer::execute(const AHCommand& c, const Jid&) +{ + if (!c.hasData()) { + // Initial set options form @@ -1502,7 +1743,7 @@ +} diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/rc.h psi.rc/psi/src/rc.h --- psi.clean/psi/src/rc.h Thu Jan 1 01:00:00 1970 -+++ psi.rc/psi/src/rc.h Tue Dec 28 19:59:35 2004 ++++ psi.rc/psi/src/rc.h Sun Jan 2 20:09:50 2005 @@ -0,0 +1,69 @@ +/* + * rc.h - Implementation of JEP-146 (Remote Controlling Clients) @@ -1548,7 +1789,7 @@ + RCSetStatusServer(AHCServerManager* m) : RCCommandServer(m) { } + virtual QString name() const { return "Set Status"; } + virtual QString rcNode() const { return "set-status"; } -+ virtual AHCommand execute(const AHCommand&); ++ virtual AHCommand execute(const AHCommand&, const Jid&); +}; + +/*class RCForwardServer : public RCCommandServer @@ -1566,35 +1807,36 @@ + RCSetOptionsServer(AHCServerManager* m, PsiCon* c) : RCCommandServer(m), psiCon_(c) { } + virtual QString name() const { return "Set Options"; } + virtual QString rcNode() const { return "set-options"; } -+ virtual AHCommand execute(const AHCommand& c); ++ virtual AHCommand execute(const AHCommand& c, const Jid&); + +private: + PsiCon* psiCon_; +}; + +#endif -diff -urN -x *.o -x CVS -x .gdb_history -x Makefile -x conf.log -x conf.pri -x extra.pri -x *.moc -x *.dylib -x moc_* -x disk -x *.dmg* -x .ui -x .moc -x *.out -x config.h -x Info.plist -x *.app -x .DS_Store -x .#* psi.clean/psi/src/src.pro psi.rc/psi/src/src.pro ---- psi.clean/psi/src/src.pro Fri Dec 10 01:31:07 2004 -+++ psi.rc/psi/src/src.pro Sat Dec 25 21:50:57 2004 -@@ -128,7 +128,9 @@ +--- psi-0.10-test2/src/src.pro.orig 2005-09-07 00:21:38.584676952 +0200 ++++ xxx/psi-0.10-test2/src/src.pro 2005-09-07 00:22:57.554671688 +0200 +@@ -135,7 +135,10 @@ $$PSI_CPP/actionlist.h \ $$PSI_CPP/psiactionlist.h \ $$PSI_CPP/xdata_widget.h \ - $$PSI_CPP/xmpp_xdata.h + $$PSI_CPP/xmpp_xdata.h \ <<Diff was trimmed, longer than 597 lines>> ---- CVS-web: http://cvs.pld-linux.org/SOURCES/psi-adhoc_and_rc.patch?r1=1.1&r2=1.1.2.1&f=u http://cvs.pld-linux.org/SOURCES/psi-empty_group-fix.patch?r1=1.1&r2=1.1.2.1&f=u http://cvs.pld-linux.org/SOURCES/psi-icon_buttons_big_return-mod.patch?r1=1.1&r2=1.1.2.1&f=u http://cvs.pld-linux.org/SOURCES/psi-nicechats-mod.patch?r1=1.2.2.7&r2=1.2.2.8&f=u http://cvs.pld-linux.org/SOURCES/psi-no_online_status-mod.patch?r1=1.1.2.1&r2=1.1.2.2&f=u http://cvs.pld-linux.org/SOURCES/psi-roster-rich.patch?r1=1.1.2.1&r2=1.1.2.2&f=u http://cvs.pld-linux.org/SOURCES/psi-settoggles-fix.patch?r1=1.1&r2=1.1.2.1&f=u http://cvs.pld-linux.org/SOURCES/psi-status_history-add.patch?r1=1.1.2.1&r2=1.1.2.2&f=u http://cvs.pld-linux.org/SOURCES/psi-status_indicator-add.patch?r1=1.2.2.3&r2=1.2.2.4&f=u _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit