New patches: [XEP-0076 scanner Maciej Niedzielski **20070401000028] { hunk ./options/default.xml 53 + + true + addfile ./src/antievil.cpp hunk ./src/antievil.cpp 1 +/* + * antievil.cpp - anti evil scanner task + * Copyright (C) 2007-04-01 Maciej Niedzielski + * + * 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 + * Lesser 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 "antievil.h" +#include "psioptions.h" +#include "xmpp_xmlcommon.h" + +using namespace XMPP; + + +/** + * \class AntiEvil + * \brief XEP-0076 implementation + * + * This tasks protects from evil + */ + + +AntiEvil::Stats AntiEvil::s; + +AntiEvil::AntiEvil(Task *parent) +:Task(parent) +{ +} + +AntiEvil::~AntiEvil() +{ +} + +bool AntiEvil::take(const QDomElement &e) +{ + if (!PsiOptions::instance()->getOption("options.anti-evil.enable").toBool()) + return false; + + bool evil = false; + for (QDomNode n = e.firstChild(); !n.isNull(); n = n.nextSibling()) { + QDomElement i = n.toElement(); + if (!i.isNull() && i.tagName() == "evil" && i.attribute("xmlns") == "http://jabber.org/protocol/evil") { + //qDebug("evil stanza received"); + evil = true; + break; + } + } + + ++s.scanned; + emit s.scannedNext(s.scanned); + + if (!evil) + return false; + + ++s.blocked; + s.lastBlockedFrom = e.attribute("from"); + s.lastBlockedTime = QDateTime::currentDateTime(); + emit s.blockedNext(s.blocked, s.lastBlockedFrom, s.lastBlockedTime); + + return true; +} addfile ./src/antievil.h hunk ./src/antievil.h 1 +/* + * antievil.h - anti evil scanner task + * Copyright (C) 2007-04-01 Maciej Niedzielski + * + * 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 + * Lesser 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 ANTIEVIL_H +#define ANTIEVIL_H + +#include "xmpp_task.h" +#include + +class AntiEvil : public XMPP::Task +{ +public: + AntiEvil(Task *); + ~AntiEvil(); + bool take(const QDomElement &); + + class Stats; + static const Stats* stats() { return &s; } + +private: + static Stats s; + +}; + +class AntiEvil::Stats : public QObject +{ + Q_OBJECT +public: + int scanned; + int blocked; + + QString lastBlockedFrom; + QDateTime lastBlockedTime; + +signals: + void scannedNext(int); + void blockedNext(int, const QString&, const QDateTime&); + + friend AntiEvil; +}; + +#endif addfile ./src/options/opt_antievil.cpp hunk ./src/options/opt_antievil.cpp 1 +#include "opt_antievil.h" + +#include "antievil.h" +#include "psioptions.h" +#include "ui_opt_antievil.h" + +#include +#include + +class OptAntiEvilUI : public QWidget, public Ui::OptAntiEvil +{ +public: + OptAntiEvilUI() : QWidget() { setupUi(this); } +}; + +//---------------------------------------------------------------------------- +// OptionsTabAntiEvil +//---------------------------------------------------------------------------- + +OptionsTabAntiEvil::OptionsTabAntiEvil(QObject *parent) +: OptionsTab(parent, "antievil", "", tr("AntiEvil"), tr("Anti evil scanner"), "psi/advanced") +{ + w = 0; +} + +OptionsTabAntiEvil::~OptionsTabAntiEvil() +{ +} + +QWidget *OptionsTabAntiEvil::widget() +{ + if ( w ) + return 0; + + w = new OptAntiEvilUI(); + OptAntiEvilUI *d = (OptAntiEvilUI *)w; + + QWhatsThis::add(d->ck_enable, + tr("Check this option to protect you Psi from evil stanzas.")); + + + const AntiEvil::Stats *s = AntiEvil::stats(); + d->lb_statsScanned->setNum(s->scanned); + if (s->blocked) { + blockedNext(s->blocked, s->lastBlockedFrom, s->lastBlockedTime) + } + + connect(AntiEvil::stats(), SIGNAL(scannedNext(int)), d->lb_statsScanned, SLOT(setNum(int))); + connect(AntiEvil::stats(), SIGNAL(blockedNext(int, QString, QDateTime)), this, SLOT(blockedNext(int, QString, QDateTime))); + + return w; +} + +void OptionsTabAntiEvil::applyOptions(Options *opt) +{ + if ( !w ) + return; + + OptAntiEvilUI *d = (OptAntiEvilUI *)w; + + PsiOptions::instance()->setOption("options.anti-evil.enable" ,d->ck_enable->isChecked()); +} + +void OptionsTabAntiEvil::restoreOptions(const Options *opt) +{ + if ( !w ) + return; + + OptAntiEvilUI *d = (OptAntiEvilUI *)w; + + d->ck_enable->setChecked(PsiOptions::instance()->getOption("options.anti-evil.enable").toBool()); +} + +void OptionsTabAntiEvil::blockedNext(int n, const QString &j, const QDateTime &dt) +{ + OptAntiEvilUI *d = (OptAntiEvilUI *)w; + d->lb_statsBlocked->setNum(n); + d->lb_lastFrom->setText(j); + d->lb_lastTime->setText(dt.toString(Qt::TextDate)); +} addfile ./src/options/opt_antievil.h hunk ./src/options/opt_antievil.h 1 +#ifndef OPT_ANTIEVIL_H +#define OPT_ANTIEVIL_H + +#include "optionstab.h" +#include + +class QWidget; +struct Options; + +class OptionsTabAntiEvil : public OptionsTab +{ + Q_OBJECT +public: + OptionsTabAntiEvil(QObject *parent); + ~OptionsTabAntiEvil(); + + QWidget *widget(); + void applyOptions(Options *opt); + void restoreOptions(const Options *opt); + +private: + QWidget *w; + +private slots: + void blockedNext(int, const QString&, const QDateTime&); +}; + +#endif addfile ./src/options/opt_antievil.ui hunk ./src/options/opt_antievil.ui 1 + + OptAntiEvil + + + + 0 + 0 + 295 + 255 + + + + OptAntiEvil + + + + 9 + + + 6 + + + + + Protect me from evil + + + + + + + Stats + + + + 9 + + + 6 + + + + + 0 + + + + + + + 0 + + + + + + + Evil stanzas blocked: + + + + + + + Stanzas scanned: + + + + + + + + + + Last evil stanza + + + + 9 + + + 6 + + + + + - + + + + + + + - + + + + + + + Time: + + + + + + + From: + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + ck_enable + + + + hunk ./src/options/options.pri 63 + +psi_antievil { + INTERFACES += $$PWD/opt_antievil.ui + SOURCES += $$PWD/opt_antievil.cpp + HEADERS += $$PWD/opt_antievil.h +} hunk ./src/options/optionsdlg.cpp 37 +#ifdef PSI_ANTIEVIL +#include "opt_antievil.h" +#endif + hunk ./src/options/optionsdlg.cpp 334 +#ifdef PSI_ANTIEVIL + tabs.append( new OptionsTabAntiEvil(this) ); +#endif hunk ./src/psiaccount.cpp 124 +#ifdef PSI_ANTIEVIL +#include "antievil.h" +#endif + hunk ./src/psiaccount.cpp 517 +#ifdef PSI_ANTIEVIL + new AntiEvil(d->client->rootTask()); +#endif + hunk ./src/src.pri 397 + +# AntiEvil +CONFIG += psi_antievil +psi_antievil { + DEFINES += PSI_ANTIEVIL + HEADERS += $$PWD/antievil.h + SOURCES += $$PWD/antievil.cpp +} } Context: [PEP Publish+Configure. Remko Troncon **20070330092413 Mood is set using Presence access, Tune is set using default access (which is typically 'default' anyway. This is just for testing purposes. ] [Connect WbManager to the correct signal. Michail Pishchagin **20070330000140] [Don't enable vCard buttons in AddUserDlg on incorrect JIDs. Michail Pishchagin **20070329235227] [Final fix for whiteboard compilation. Michail Pishchagin **20070329220320] [Fixed PsiIconset memleak. Michail Pishchagin **20070329214549] [Destroy IconsetFactoryPrivate on program termination. Michail Pishchagin **20070328190038] [Note the existance of third alternative to get transparent QPixmaps. Michail Pishchagin **20070329214149] [Delete AvatarFactory when destroying PsiAccount. Michail Pishchagin **20070329213759] [Delete avatars when destroying AvatarFactory. Michail Pishchagin **20070329212817] [AddUserDlg: Disable vcard and nick resolution buttons if jid is empty, thanks to Sander Dijkhuis Martin H. **20070328213015] [Delete PsiIconset prior to program termination. Michail Pishchagin **20070327220444] [Compilation fixes for whiteboard. Michail Pishchagin **20070327141622] [Fixing potential crash in History dialog. Michail Pishchagin **20070326161115] [Move PGPUtil::keystores initialisation to start of PsiCon::init() Martin H. **20070327130111] [Display fingerprints in SSLCertDlg Martin H. **20070326231654] [Fix typo in WhatThis help in opt_appearance.cpp Martin H. **20070326201014] [Fix ordering in privacylist editor; also don't use uninizialized variables as .order_ Martin H. **20070326123124] [Fix qca-sasl to compile again. Martin H. **20070326125653] [QCA: Upgrade core to new keystore api; fix api drift. Martin H. **20070326120147] [QCA: Upgrade core to latest KDE SVN version. Also pull a few updates for the plugins and fix api drift. Martin H. **20070324181635] [Client doesn't automatically send composing event to the contact from whom he has just received a message. Michail Pishchagin **20070324172528] [Also check for id-on-xmppAddr in X.509 Certs Martin H. **20070324123958] [Update SSLCertDlg to show dns and xmpp names, Add showCert slot to PsiAccount. Martin H. **20070324105204] [Upgrade qpipe.cpp to latest KDE SVN version Martin H. **20070323235550] [IrisNet sync. Remko Troncon **20070323083234] [QCA: Fix handling of repeated items in X.509 certs Martin H. **20070320215900] [Simplified GAdvancedWidget::Private::flashing() function. Michail Pishchagin **20070320192500] [Added JIDUtil::defaultDomain() method. Michail Pishchagin **20070320175624] [Refactored InfoDlg. Michail Pishchagin **20070320174426] [Qt4fied eventdb a little. Michail Pishchagin **20070320172400] [Open percent encoded URLs Maciej Niedzielski **20070320160022 Created openUrl function in new DesktopUtil namespace. ] [Fix sizing of comboboxes in accountmodify.ui's connection tab. Martin H. **20070319135029] [Change "Automatic" encryption option to "When available". Remko Troncon **20070319133107] [Preserve whitespace in plain2rich() Maciej Niedzielski **20070319154627 Now we can exchange indented code easily again. ] [Don't put gpg's stdout and stderr to the diagnostic text. Michail Pishchagin **20070319024618] [There can be only one TipDlg. Michail Pishchagin **20070319003537] [Handle lost connection while SSLCertDlg is being displayed Maciej Niedzielski **20070318031735 Also refactored surrounding code a bit to make it more readable. ] [Equalized margins in options dialog Maciej Niedzielski **20070317233739] [Hide certificate warning when connection is closed Maciej Niedzielski **20070317220758 This fixed two issues: - crash when trying to continue on closed connection - many warning messages if you leave Psi alone for some time and connection is lost multiple times ] [Show selected iconsets in IconsetSelect widget Maciej Niedzielski **20070317023633] [Save last profile and language in PSIDATADIR Martin H. **20070316231113] [Seperate auto-login from PsiAccount constructor Martin H. **20070316223352 Fixes FS#628 — login: password prompt does not indicate server name for first account ] [Change global shortcuts without restarting Maciej Niedzielski **20070316215751 This is a very simple hack, just to make this work in 0.11. A proper solution should appear when shortcut manager learns how to actually manage shortcuts (automatically). ] [Display avatar and status icons in InfoDlg Maciej Niedzielski **20070316214826] [Remove obsolete checkbox from opt_application.ui. Remko Troncon **20070316183847] [Show/hide PGP button when pgp availability changes. Remko Troncon **20070316183821] ["Join Psi Discussion Room" in Help menu Maciej Niedzielski **20070316155608] [Don't show emoticons button on top toolbar if emoticons are disabled Maciej Niedzielski **20070316145955] [Removing ChangeLog. Remko Troncon **20070316124319] [Discontinued the WindowMaker docklet. Remko Troncon **20070316121034 See README for details. ] [Qt4fied the BusyWidget. Michail Pishchagin **20070311222037] [Show PGP button always when encryption is possible Maciej Niedzielski **20070316143701] [Send timestamps in UTC Maciej Niedzielski **20070316114719] [Disable RichText pasting in status dialog Maciej Niedzielski **20070315174543] [Tooltips for new toolbar buttons Maciej Niedzielski **20070312175602] [Now it's possible to cancel key shortcut entry; Prettified key grabbing dialog. Michail Pishchagin **20070311202802] [Clarify keep-alive text a bit. Remko Troncon **20070311173111] [Remove compact mode from MUC dialog. Remko Troncon **20070311163043] [Display keyboard shortcuts localizable and platfrom native. Fix globalshortcut to follow Qt's odd modifier mapping. Martin H. **20070311154041] [Delay disconnect() after sending offline presence (FS#613). Remko Troncon **20070310122446] [Compact AccountModifyDlg. Remko Troncon **20070310113815] [Proactivly fix ChatEdit::setCheckSpelling to be crash safer. Martin H. **20070310014133] [UNDO: Work around qca-gnupg hang caused by a QProcess bug. Martin H. **20070309202909 The Q3Process usage (for sound) caused this bug to manifest. As that's fixed now and this patch seems to have it's own problems, revert it. ] [Port sound output from Q3Process to QProcess Martin H. **20070308221012 Q3Process and QProcess can't reliably used in the same program. ] [Don't show a tooltip if mouse already left tooltip's widget Maciej Niedzielski **20070309133420 PsiToolTip::showText() is sometimes called already after mouse left the widget for which it was called. This results in a tooltip that appears too late and stays there until it times out or user moves mouse back to it. This patch detects such situations and don't show tooltips then. ] [Don't show connection as encrypted if only integrity protection is used (SASL). Martin H. **20070308153846] [Assume jid's domain if only server port is specified manually (instead of silently ignoring to port setting) Martin H. **20070308153219] [Work around qca-gnupg hang caused by a QProcess bug. Martin H. **20070307225606 QProcess sometimes doesn't signal process exit (finished is never emitted) - assume gpg exited if status pipe is broken. For now return exit code 99 - delete QProcess on a seperate thread, because it hangs to long in in the destructor in this case - terminate those threads if they are still around when psi terminates Thanks Marco Balmer for his patient testing. ] [Fixed the FreeDesktop spec version again. Remko Troncon **20070307163035] [Clear HistoryDlg's saved ids when erasing history Maciej Niedzielski **20070308202854 Prevents enabling Previous/Next buttons when history is empty ] [Erase history via EDBHandle Maciej Niedzielski **20070308152450 In addition, new code solves file locking problem on Windows (FS#429) ] [Narrowing includes down in irisnet servsock.h (syncing) Maciej Niedzielski **20070307021631] [Enable TranslationManager to switch back to English Maciej Niedzielski **20070307020224] [Make tooltips look nice again Maciej Niedzielski **20070306230952 - fix line/word wrapping - remove empty space on the right - add tooltip margin - use font and palette provided by OS ] [Don't crash when unable to determine signer of OpenPGP-signed status. Michail Pishchagin **20070306225236] [Added Cancel button to promptUserToCreateAccount() Maciej Niedzielski **20070306201333] [Correctly detect buttons availability in EventDlg Maciej Niedzielski **20070306112014] [Fixed ChatEdit/ChatView potential crashes. Michail Pishchagin **20070304220024] [RegistrationDlg will give a chance to correct input when getting not-acceptable errors from server. Michail Pishchagin **20070304185258] [Added (default) option to allow plaintext over TLS. Remko Troncon **20070303091811] [Fail gracefully if ndns from irisnet tries to resolve a non-existing host. And update docs. Martin H. **20070302151643] [fail gracefully if ndns tries to resolve a non-existing host. Martin H. **20070301225330] [Narrowing includes down in servsock.h Maciej Niedzielski **20070302082435 This may fix compilation errors on Windows. ] [Merge toolbars in groupchat dialog Maciej Niedzielski **20070302032623] [Don't show triple dots on toolbuttons in ChatDlg on Windows. Michail Pishchagin **20070302024850] [LineEdit doesn't resize the dialog anymore. Michail Pishchagin **20070302015348] [Fix button size in merged chatdlg toolbar. Michail Pishchagin **20070301174901 Thanks to Martin H. ] [Upgrade qpipe.cpp to latest KDE SVN version Maciej Niedzielski **20070301231157 This should solve problems with GPG crashes. Thanks to infiniti. ] [PsiIcon doesn't pass QPixmaps around in its signals anymore. Michail Pishchagin **20070301150259] [Don't auto-join bookmarked conferences before fully logging in Maciej Niedzielski **20070301162202 MUCJoinDlg needs a logged in account, but the account could be waiting for GPG passphrase to send initial presence. ] [Ensure that MUCJoinDlg has its PsiAccount when attempting to join the room Maciej Niedzielski **20070301155940] [Reworked initial registration process. Remko Troncon **20070227195203] [Enabling GnuPG again. Remko Troncon **20070227193703] [Syncing servsock with irisnet. Remko Troncon **20070227164257 This fixes potential file transfer bugs (thanks textshell) ] [Removed confirmation dialog when canceling MUC join. Remko Troncon **20070227164055 This fixes crashes and other misleading situations where groupchats are already joined when confirming. (FS#621). ] [Allow to minimize toolwindow roster on Windows Maciej Niedzielski **20070228155620] [Use window() instead of obsolete topLevelWidget() Maciej Niedzielski **20070227002632] [Refactored bringToFront function. Michail Pishchagin **20070225210411] [Additional insurance for dialogs that haven't cleanly unregistered themselves. Michail Pishchagin **20070225154052] [Do not create empty pixmaps in the Impix class. Michail Pishchagin **20070225152531] [Removed duplicate code when performing actions on selected items in SearchDlg. Michail Pishchagin **20070225150245] [Initialize PGP prior to account auto-login time. Michail Pishchagin **20070224155353] [Try to decrypt incoming encrypted messages even if PGP is not currently active. Michail Pishchagin **20070224143000] [Make total number of recent joins to be remembered customizable. Remko Troncon **20070225102621] [Process GPG messages encrypted with several keys. Michail Pishchagin **20070224142153] [Auto-raise tabbed chat fix Maciej Niedzielski **20070223204304] [MUC Affiliation list sorting and filtering. Michail Pishchagin **20070223201052 Thanks to Dion. ] [Don't allow to drop on disabled MUC affiliation groups. Michail Pishchagin **20070223200639] [WDestructiveClose -> WA_DeleteOnClose. Michail Pishchagin **20070223173040] [Actually delete the Account Modify dialog when it's closed. Michail Pishchagin **20070223164210] [Bring tabbed chat to front properly Maciej Niedzielski **20070223130410] [Shortcuts editor improvements Maciej Niedzielski **20070223022729 - corrected reaction to double clicking on a not-key item - added Edit button - simplified some parts of the code (use the fact that user can never select more than one item in the tree) ] [Impix will now convert QImages to QPixmaps lazily. Should cure weird crashes when loading iconsets in separate thread. Michail Pishchagin **20070220214757] [Fixes of X11 and modifier stripping. Michail Pishchagin **20070220200340 Thanks to Martin H. ] [Display current status icon on small change status button Maciej Niedzielski **20070221222059] [Frome beta5 back to development K**20070219212250] [Do not cancel a form when closing the event dialog. Remko Troncon **20070219173615] [Fix presence issues with private chats. Remko Troncon **20070216233230 Thanks to Martin H. ] [Supress popups when a MUC is in the roster. Remko Troncon **20070216233020 Thanks to Martin H. ] [Fix where submitting a form actually submits 2 forms. Remko Troncon **20070216231756 Thanks to Roelof Naude. ] [src.pri comments fix. Remko Troncon **20070216223906] [Added whiteboarding images. Remko Troncon **20070216010129] [Merged all new whiteboarding files. Remko Troncon **20070215091616] [Merged Psi whiteboard changes. Remko Troncon **20070215091025] [Merging Iris changes for whiteboarding. Remko Troncon **20070215090604] [Added 'plaintext auth not enabled' to list of examples of unavailable mechanism error. Remko Troncon **20070214183225] [TAG 0.11-beta5 Kevin Smith **20070213132059] [Correct date in README Kevin Smith **20070213132024] [TAG 0.11-beta5 Kevin Smith **20070209160641] [Beta 5 Kevin Smith **20070209160537] [Hide hidden contacts by default. Remko Troncon **20070213092911] [Merge central chat toolbar with top toolbar. Remko Troncon **20070211161933] [Enabled setting of custom realm. Remko Troncon **20070210114733] [Replaced dynamic_cast with isWidgetType() + cast. Remko Troncon **20070210215709 Should be faster, and avoids a segfault on Windows for some weird reason (probably a default -fno-rtti on Windows). Thanks to Dion for reporting this. ] [Fixed some problems with GPG. Michail Pishchagin **20070211084707] [Restoring missing error conditions. Michail Pishchagin **20070211084354] [Don't override XMPP::Message's id when sending it if it's not empty. Michail Pishchagin **20070211084015] [Remember size of GroupChat window (FS#583). Michail Pishchagin **20070211083634] [Change 'authorize as' into 'authenticate as'. Remko Troncon **20070210104004] [Pass MUC presence through core presence. Remko Troncon **20070209202919 I forgot why i disabled it before. ] [Conflict resolution between xhtml and seperating //**__ Kevin Smith **20070209155139] [seperate out //**__ formatting from the emoticons (new options.xml flag) - patch re-attempt Kevin Smith **20070109163736] [Fix disco dialog 'enter' behavior. Remko Troncon **20070208175644 Thanks to Martin H. for noticing this. ] [Bring To Front and New Blank Message global shortcuts Maciej Niedzielski **20070208151313] [Disable auto-browse by default. Remko Troncon **20070208140039] [Show Hidden -> Show Hidden Contacts. Remko Troncon **20070207140047] [Default 'Show "show away/xa"' to false. Remko Troncon **20070207135851] [Reply to roster pushes. Remko Troncon **20070207112517] [Don't advertise empty hostnames for file transfer Maciej Niedzielski **20070207125626] [Dynamic tune plugins Maciej Niedzielski **20070207055626] [Disable rich text pasting in message window Maciej Niedzielski **20070206201931] [Display inline message subject in a separate line Maciej Niedzielski **20070206200127] [Enable XHTML-IM rendering in messages Maciej Niedzielski **20070206193616] [Don't invite people to a MUC if they are already there. Remko Troncon **20070206151054] [Add drag functionality to MUC dialog. Remko Troncon **20070206145853] [Fixing 'Add' button in MUC config dialog. Remko Troncon **20070206142956] [Removing some obsolete code. Remko Troncon **20070205131835] [Added a Google FT dialog. Remko Troncon **20070205122919] [Fixed some XML namespace problems with libjingle. Remko Troncon **20070205103134] [Forgot 2 class declarations. Remko Troncon **20070205101157] [Initial work on Google FT support. Remko Troncon **20070204153530] [Separating Google FT from Jingle. Remko Troncon **20070204105034] [More flexible libjingle compilation. Remko Troncon **20070203201432] [Making the tip dialog bigger. Remko Troncon **20070203203643] [Add missing library to XMMS plugin. Remko Troncon **20070203161332] [Fixed compilation warning on Linux. Michail Pishchagin **20070202201441] [Fixed QCA-SASL issue where the authzid was always set. Remko Troncon **20070202155936] [Join two lines in advanced options. Remko Troncon **20070202012231] [Some visual tweaks in the toolbar dialog. Remko Troncon **20070202011819] [Make more room in the toolbar dialog. Remko Troncon **20070202010534] [Clarified 'Unable to bind port' message. Remko Troncon **20070202004805] [Make about dialog parentless. Remko Troncon **20070202003224] [Avoid compilation warning. Remko Troncon **20070202001336] [Fancifying the tip of the day. Remko Troncon **20070202000723] [Disable gnupg again. Remko Troncon **20070201174210] [Fix disabled 'add' button in MUC config dialog. Remko Troncon **20070201173036] [Avoid broadcasting tune information when WinAmp scrolls. Remko Troncon **20070201102418 Thanks to michalj. ] [Fix simplesasl challenge parser Maciej Niedzielski **20070206120831] [(Don't) sort groups in MUC window Maciej Niedzielski **20070201163554] [Do not present error message when unable to fetch the server list. Remko Troncon **20070131202025] [Updated README. Remko Troncon **20070131190050] [Fix tab order in account registration dialog. Remko Troncon **20070131184220] [Make registration URIs clickable (and selectable). Remko Troncon **20070131182626] [Move the account registration dialog back to the first step upon disconnect. Remko Troncon **20070131121609] [Fix segfault when enabling/disabling accounts. Remko Troncon **20070131103630] [Fixing the crash when using tabs and trying to close a chat with a recently incoming message. Kevin Smith **20070131094422] [Workaround for servers that do not send a response to an unregister request. Remko Troncon **20070131093531] [Inform the user of his JID after registration. Remko Troncon **20070130212800] [Make Search button the default button of Search Dialog Maciej Niedzielski **20070201012915] [Handle TLS when registering account. Remko Troncon **20070130205346] [Disabling of SSL is not necessary for account registration. Remko Troncon **20070130202653] [Some aesthetic changes to the regdlg. Remko Troncon **20070130201354] [Allow to retrieve the list of XMPP servers that support in-band registration. Remko Troncon **20070130192240] [Close connection when the user cancels registration. Remko Troncon **20070130181246] [Implemented in-band registration (XEP-0077). Remko Troncon **20070130171858 Refactored registration dialog in the process. ] [Add instructions to XDataWidget. Remko Troncon **20070130153427] [Removed UI compilation warning. Remko Troncon **20070130115852] [Removed some warnings from .qc modules. Remko Troncon **20070130115709] [Move 'User says' chat option to hidden options. Remko Troncon **20070130102356] [Set 'Notify when auth received' to false by default. Remko Troncon **20070130101601] [Fixed Prev/Next tab comments. Remko Troncon **20070130100908] [Updated .desktop file to most recent version. Remko Troncon **20070130095632 Alphabetized translations. Thanks to Cliff Dugal. ] [Added more tab-switching shortcuts for Windows users. Michail Pishchagin **20070129175036] [Refactored main window position restoring code. Michail Pishchagin **20070129173038] [Make auto-copy work also when selecting by double clicking Maciej Niedzielski **20070128145937] [Get the next/previous tabs the right way around in the config file Kevin Smith **20070126201231] [Change ContactView shortcuts without restart Maciej Niedzielski **20070126111028] [Stanza error handling improvements Maciej Niedzielski **20070125151126] [Fixed tooltips in DiscoDlg. Michail Pishchagin **20070118175228] [Use XMPP::Status::* constants instead of STATUS_*. Michail Pishchagin **20070110151520] [Removed outdated iconsets/emoticons/README file. Michail Pishchagin **20070109163008] [OptionsTabIconset* are now able to list embedded iconsets; Embedded default emoticons iconset. Michail Pishchagin **20070109162511] [IconsetSelect wouldn't assert when it doesn't have any iconsets. Michail Pishchagin **20070109161707] [Another qt3to4 patch (thanks again Stigger) Kevin Smith **20070109105500] [Converting some classes using Qt3support to Qt4 proper (Thanks to Stigger) Kevin Smith **20070109102145] [Added QSize to optionstree types. Remko Troncon **20070108203340] [GlobalAccel is now obsolete and removed from repository. Michail Pishchagin **20070108170202] [Global shortcuts. Michail Pishchagin **20070108065657 Thanks to Machekku. ] [Sort room roster in groupchats. Michail Pishchagin **20070107212236] [Gracefully resize columns in DiscoDlg. Michail Pishchagin **20061225004401] [Don't crash in GroupChatDlg when trying to perform an action on user who quit the room. Michail Pishchagin **20061224231038 Thanks to Dion. ] [Use hostname when using HTTP connect proxy (FS#579). Remko Troncon **20061223102350 Warning: this means that no SRV lookups are done anymore when a HTTP CONNECT PROXY is used. A slightly better detection mechanism will be implemented later. ] [Do not sign presence sent to MUC rooms (FS#606). Remko Troncon **20061220123454] [Fixed empty window appearing on OS X (FS#605). Remko Troncon **20061217201724] [Fix segfault on OS X due to double delete. Remko Troncon **20061217200303] [Added Q_OBJECT macro to TranslationManager. Remko Troncon **20061217104147] [Removing Q3CString from Jid. Remko Troncon **20061215224858] [Tightening include in jid.cpp. Remko Troncon **20061215222713] [Completed XEP-0004 (Data forms) support. Remko Troncon **20061214140351 We now support data forms in messages (thanks to Roelof Naude) ] [Reply to invalid disco#info requests. Remko Troncon **20061214123701] [Added shortcuts icon. Remko Troncon **20061214115800] [Forgot closing #warning. Remko Troncon **20061214085033] [Removed MainWin::setInfo(). Michail Pishchagin **20061213161941] [Cleaning up some more singletons. Remko Troncon **20061213144209] [Clean up the default menubar. Remko Troncon **20061213143809] [Clean up the shortcutmanager upon exit. Remko Troncon **20061213141827] [Include language_name in the translations. Remko Troncon **20061213134432] [Fixed the SyncThread::call() method. Michail Pishchagin **20061213124029] [Chop off encoding from XML language string. Remko Troncon **20061213085832] [Added stream language setting. Remko Troncon **20061212232131] [Moved translation operations into TranslationManager. Remko Troncon **20061212222831] [Moving XData to iris. Remko Troncon **20061212144557] [Fixed compilation warnings when compiling in release mode. Michail Pishchagin **20061212100730] [Don't issue warning when deleting of pointer to incomplete type, when compiling moc_tabdlg.cpp. Michail Pishchagin **20061208085153] [Remove dependency on image plugins. Remko Troncon **20061207102450] [Fix double 'overwrite file' check. Remko Troncon **20061206215847 Thanks to machekku. ] [HttpAuthRequest refactoring. Remko Troncon **20061206203535] [Allow empty http auth requests. Remko Troncon **20061206200908 Thanks to Machekku. ] [Don't show http auth confirmation when iq type is not get. Remko Troncon **20061206195927 Thanks to machekku. ] [Shortcuts options tab fix. Remko Troncon **20061206195426] [Reply to privacy list pushes. Remko Troncon **20061206194718] [Fix error replies to server. Remko Troncon **20061206194712] [Privacy list refactoring. Remko Troncon **20061206192411] [Filter text nodes in privacy lists. Remko Troncon **20061206191808] [Don't use relative paths in Psi project files. Michail Pishchagin **20061206162140] [Fixed menubar on non-osx platforms. Remko Troncon **20061206130833] [Fixed disappearing menubar on OS X. Remko Troncon **20061205194734] [Reset status messages when going offline. Remko Troncon **20061204133046] [Last Activity (XEP-0012) for offline users. Remko Troncon **20061204131343] [Disable 'Publish tune' if no PEP is available (FS#594). Remko Troncon **20061203150921] [Some PsiContactList refactoring. Remko Troncon **20061203133749] [Fix illegal nick change handling (FS#596). Remko Troncon **20061203123229] [Uncheck legacy ssl probe if disabled. Remko Troncon **20061129191140] [Some xmpptest tweaks. Remko Troncon **20061129191102] [Remove obsolete widgets. Remko Troncon **20061128175136] [Keep account JID bare. Remko Troncon **20061128140200] [Finished authzid support. Remko Troncon **20061128125911] [Encode domain names before passing them to SASL. Remko Troncon **20061128104108] [Fix overriding of realms in simplesasl. Remko Troncon **20061128104041] [Compilation fix. Remko Troncon **20061128092442] [Encode internationalized domain names. Remko Troncon **20061128091835] [Reworked SSL/TLS account settings. Remko Troncon **20061127221100] [We don't need PsiCon::mainWin() around anymore. Michail Pishchagin **20061126210629] [Removed dependencies on MainWin. Michail Pishchagin **20061126194557] [Fix httpconnect.cpp newline detection bug. Remko Troncon **20061126181911 Thanks to michalj. ] [but lets make it statuschangeless in MUC by default Kevin Smith **20061126124231] [Show status changes in MUC (thanks dion) Kevin Smith **20061126123852] [OptionsTab Shortcuts (Thanks Ephraim) Kevin Smith **20061126120715] [temporary add options.ui.contactlist.temp-no-roster-animation option to workaround extrem CPU usage of animated roaster icons Martin H. **20060730215542] [Auto-copy fix Maciej Niedzielski **20061106222750] [Report reason when people leave a MUC (Thanks Dion) Kevin Smith **20061126102314] [IconToolButton will display text if it doesn't have an icon. Michail Pishchagin **20061125185504] [options.tip.* -> options.ui.tip.*. Michail Pishchagin **20061125184705] [Icon -> PsiIcon. Michail Pishchagin **20061125173226] [Windows Vista detection support Kevin Smith **20061122230043] [Three doxygen comments from Textshell Kevin Smith **20061122221724] [(ClassName *)PsiAccount::dialogFind("ClassName") -> PsiAccount::findDialog(). Michail Pishchagin **20061122132956] [Two null XMPP::Jids are equal. Michail Pishchagin **20061122120403] [Correctly ignore WinAmp header warnings. Michail Pishchagin **20061120145252] [Suppress more warnings. Michail Pishchagin **20061120140823] [Suppress compilation warnings. Michail Pishchagin **20061120140034] [Conditional plugin compilation. Remko Troncon **20061120140852] [Fix to BookmarkManager (thanks Ephraim) Kevin Smith **20061119195128] [Make window flashing optional (options.xml) Kevin Smith **20061119152845] [Don't needlessly expand LineEdit vertically in ChatDlg. Michail Pishchagin **20061113125127] [New Alertable class to simplify alert icon plumbing. Michail Pishchagin **20061114213929] [Strip unnecessary data from the manifest file. Michail Pishchagin **20061108164138] [Compile-in image format plugins on Windows. Michail Pishchagin **20061108160706] [Ephraim's fix correction for the gcdialog Kevin Smith **20061107165709] [AvatarFactory ensures that all avatars are square in size. Michail Pishchagin **20061107160555] [Moved function to create transparent QPixmaps to separate file. Michail Pishchagin **20061107160210] [Changed animation groupbox to combobox. Michail Pishchagin **20061106163452 Thanks to Martin H. ] [Visual Styles Manifest (for Windows) Maciej Niedzielski **20061018203842 Enables Windows Visual Styles in Psi. Now all common dialogs (file open, file save) will use visual styles, too. ] [Fixed splitter resizing in chats and groupchats. Michail Pishchagin **20061106151310 Thanks to Ephraim. ] [Added Q_OBJECT macro to aboutdlg. Remko Troncon **20061104145551] [Fixed sort order in groupchat dialog. Remko Troncon **20061103220932] [Do not add a body to MUC topic changes. Remko Troncon **20061103170842] [More Aspell UTF-8 support. Remko Troncon **20061102211848] [Added Mac OS X spell checking support. Remko Troncon **20061102203818] [Use UTF-8 in the ASpellChecker. Remko Troncon **20061102182805] [Fix statusdlg signal slot. Remko Troncon **20061101003800] [Added support for JEP-70. Remko Troncon **20061031193236 Thanks to Machekku. ] [Added more ignore rules to the boring file. Michail Pishchagin **20061030100120] [Tab drag and drop Kevin Smith **20061026100810] [Disable 'check spelling' option when no spell checker is available. Remko Troncon **20061026095747 Thanks to Ephraim. ] [Added XMPP::Status constructor. Remko Troncon **20061026095152] [Fix shortcuts in event dialog. Remko Troncon **20061026085820] [Remove unwanted whitespace from error stanza. Remko Troncon **20061026075059 Thanks to Machekku. ] [Fixed typo in shortcut manager. Remko Troncon **20061026074154] [Fixed warning fix. Remko Troncon **20061025213440] [Fix compilation warning. Remko Troncon **20061025172832] [Make sure that there is at least one shortcut to send chat messages. Remko Troncon **20061025154932] [Workaround for shortcut segfault. Remko Troncon **20061025154348] [Remove the shortcut for clearing the chatlog. Remko Troncon **20061025153546] [Start rewriting Tab widgets Kevin Smith **20061025150151] [Narrowing includes down. Remko Troncon **20061025134832] [Split off some common classes from im.h. Remko Troncon **20061025134244] [Make resourceMenu use XMPP::Status. Remko Troncon **20061025121333] [Make status presets use XMPP::Status. Remko Troncon **20061025120452] [Removed redundant type field from XMPP::Status. Remko Troncon **20061025114556] [Added XMPP::Status::type() function and Type enum for safer programming. Michail Pishchagin **20061025105450] [Refactored BlockTransportPopupList class a little. Michail Pishchagin **20061025082210] [mac builds should be devel, not beta3 Kevin Smith **20061025094954] [Use QDesktopServices::openUrl instead of our hand coded way. Remko Troncon **20061025094241] [Enable new tray icon by default on all platforms. Remko Troncon **20061024214146] [Add shadow around tray icon on X11. Remko Troncon **20061024192121] [More tray icon code. Remko Troncon **20061024190541] [Some more tray menu refactoring. Remko Troncon **20061024184654] [Fixed trayicon slot mismatch. Remko Troncon **20061024181846] [Use QSystemTrayIcon on Mac OS X. Remko Troncon **20061024180330] [Renamed MTray to PsiTrayIcon, and put it in a separate file. Remko Troncon **20061024161054] [Use QSyntaxHighlighter for spell checking. Remko Troncon **20061024154309 Fixes highlighting issues. ] [Do not set mask while the pixmap is being painted on. Michail Pishchagin **20061024141610] [Extracted AccountLabel to separate file. Michail Pishchagin **20061024120956] [Disabling qca-gnupg. Michail Pishchagin **20061024120537] [Refactored PsiCon::accountList() -> PsiContactList::accounts(). Michail Pishchagin **20061024112623 To be more precise: accountList(false) -> PsiContactList::accounts() and accountList(true) -> PsiContactList::enabledAccounts(). ] [Moved PsiAccountList to the separate PsiContactList class. Michail Pishchagin **20061024102058] [Added more valgrind suppressions (tested on Kubuntu Dapper). Michail Pishchagin **20061024100830] [Workaround for 100% CPU usage on connection error. Remko Troncon **20061024084520] [Migrating tip of the day. Remko Troncon **20061023185050] [Moved text utilities to TextUtil. Remko Troncon **20061023121846] [Fixed X11 compilation issues. Remko Troncon **20061023115501] [Some more common.h reordering. Remko Troncon **20061023113057] [Moving some things out of common.cpp. Remko Troncon **20061023111734] [Moved global PsiIconset instance into PsiIconset. Remko Troncon **20061023094755] [Cleanups in common.h. Remko Troncon **20061023085345] [Remove dependency on Psi from aspellchecker. Remko Troncon **20061023082646] [Aspell fix. Remko Troncon **20061023075215] [Some src.pri cleanups. Remko Troncon **20061022213649] [More portable way of linking against static jingle. Remko Troncon **20061022212611] [More portable way of linking against a static qca. Remko Troncon **20061022212124] [Tightening includes. Remko Troncon **20061022204405] [Copied BSocket from ambrosia. Remko Troncon **20061022200658] [Removed Q3CStrings. Remko Troncon **20061022200025] [Split off AboutDlg. Remko Troncon **20061022185351] [Fixed segfault on linux in getHomeDir(). Remko Troncon **20061022152235] [Migrate global shortcut options to new options system. Remko Troncon **20061021213722] [More common.h cleanups. Remko Troncon **20061021210021] [Some more common.h cleanups. Remko Troncon **20061021201149] [Fixed windows building of QCA. Remko Troncon **20061021201442] [Moved application information out of common.h into ApplicationInfo. Remko Troncon **20061021191231] [Added Mac OS X support in SystemInfo. Remko Troncon **20061021173553] [Sorting Ad-Hoc commands. Remko Troncon **20061021172941 Thanks to Norman Rasmussen. ] [Added missing includes to systeminfo. Remko Troncon **20061021172045] [Added busywidget to ad-hoc command dialog. Remko Troncon **20061021171745 Thanks to Norman Rasmussen. ] [Added extra include to systeminfo. Remko Troncon **20061021171133] [Moved system information methods from common.h to SystemInfo. Remko Troncon **20061021163132] [Removed obsolete string functions from common.h Remko Troncon **20061021150533] [Added registrationdlg to darcs. Remko Troncon **20061021143528] [Moved StretchWidget from common.h. Remko Troncon **20061021143301] [Splitting up servicesdlg into searchdlg and registrationdlg. Remko Troncon **20061021142021] [Removing some qt3support dependencies. Remko Troncon **20061021135310] [Ported all Q3FileDialogs. Remko Troncon **20061021134311] [Refactoring + Qt4-proper port of SSLCertDlg. Remko Troncon **20061021130542] [Clear keypad modifier from key events. Remko Troncon **20061021112448] [Added workaround to force VS2005/VC8 to link. Remko Troncon **20061021104201 Thanks to Norman Rasmussen. ] [Migration of 'enter sends message' to new shortcut system. Remko Troncon **20061021093801] [Updated README. Remko Troncon **20061020160227] [Make (group)chatdlg respect shortcuts. Remko Troncon **20061020141504] [Fixed compilation problems. Remko Troncon **20061020144525] [Removed roster opacity from common.h. Remko Troncon **20061020135341] [Removed 'enter sends message' option from the UI. Remko Troncon *-20061019184833] [TAG 20061020 Remko Troncon **20061020124531] Patch bundle hash: 76bccf6db948cec7f35959a6bacf40794323812d