
New patches:

[Typeahead find bar.
Maciej Niedzielski <machekku@uaznia.net>**20061116030534] {
hunk ./options/default.xml 139
+				<find-next type="QVariantList" comment="Find next text occurence">
+					<item type="QKeySequence">F3</item>
+					<item type="QKeySequence">Ctrl+Down</item>
+				</find-next>
+				<find-prev type="QKeySequence" comment="Find previous text occurence" >Ctrl+Up</find-prev>
hunk ./src/chatdlg.cpp 75
+#include "typeaheadfind.h"
hunk ./src/chatdlg.cpp 111
-	IconAction *act_clear, *act_history, *act_info, *act_pgp, *act_icon, *act_file, *act_compact, *act_voice;
+	TypeAheadFindBar *typeahead;
+	IconAction *act_clear, *act_history, *act_info, *act_pgp, *act_icon, *act_file, *act_compact, *act_voice, *act_find;
hunk ./src/chatdlg.cpp 273
+	QHBoxLayout *hb3a = new QHBoxLayout(vb3);
+	d->typeahead = new TypeAheadFindBar(d->log, tr("Find toolbar"), 0);
+	hb3a->addWidget( d->typeahead );
+
hunk ./src/chatdlg.cpp 282
+	d->act_find = new IconAction(tr("Find"), "psi/search", tr("&Find"), 0, this);
+	connect(d->act_find, SIGNAL(activated()), d->typeahead, SLOT(open()));
+
hunk ./src/chatdlg.cpp 326
+	d->toolbar->addAction(d->act_find);
hunk ./src/chatdlg.cpp 430
+	d->act_find->setShortcuts(ShortcutManager::instance()->shortcuts("chat.find"));
hunk ./src/chatdlg.cpp 843
+	d->typeahead->optionsUpdate();
merger 0.0 (
hunk ./src/eventdlg.cpp 75
+#include "xdata_widget.h"
hunk ./src/eventdlg.cpp 75
+#include "typeaheadfind.h"
)
hunk ./src/eventdlg.cpp 512
-	IconToolButton *tb_url, *tb_info, *tb_history, *tb_pgp, *tb_icon;
+	IconToolButton *tb_url, *tb_info, *tb_history, *tb_pgp, *tb_icon, *tb_find;
hunk ./src/eventdlg.cpp 520
+	TypeAheadFindBar *typeahead;
hunk ./src/eventdlg.cpp 783
+	if(!d->composing) {
+		d->tb_find = new IconToolButton(this);
+		d->tb_find->setIcon(IconsetFactory::iconPtr("psi/search"));
+		d->tb_find->setToolTip(tr("Find"));
+		connect(d->tb_find, SIGNAL(clicked()), this, SLOT(doFind()));
+	}
hunk ./src/eventdlg.cpp 813
-	toolButtons << d->tb_url << d->tb_info << d->tb_history;
+	toolButtons << d->tb_find << d->tb_url << d->tb_info << d->tb_history;
hunk ./src/eventdlg.cpp 830
+		if(!d->composing)
+			hb3->addWidget(d->tb_find);
hunk ./src/eventdlg.cpp 847
+		if(!d->composing)
+			hb3->addWidget(d->tb_find);
hunk ./src/eventdlg.cpp 873
+	// typeahead find bar
+	if(!d->composing) {
+		d->typeahead = new TypeAheadFindBar(d->mle, tr("Find toolbar"), 0);
+		vb1->addWidget(d->typeahead);
+	}
+	else
+		d->typeahead = 0;
+
hunk ./src/eventdlg.cpp 1017
+	if (d->typeahead)
+		ShortcutManager::connect("chat.find", this, SLOT(doFind()));
hunk ./src/eventdlg.cpp 1400
+
+	// typeahead
+	if (d->typeahead)
+		d->typeahead->optionsUpdate();
hunk ./src/eventdlg.cpp 1706
+
+void EventDlg::doFind()
+{
+	d->typeahead->open();
+}
hunk ./src/eventdlg.h 178
+	void doFind();
hunk ./src/groupchatdlg.cpp 76
+#include "typeaheadfind.h"
hunk ./src/groupchatdlg.cpp 414
+	TypeAheadFindBar *typeahead;
hunk ./src/groupchatdlg.cpp 429
-	QPointer<GCFindDlg> findDlg;
-	QString lastSearch;
-
hunk ./src/groupchatdlg.cpp 472
-public:
-	bool internalFind(QString str, bool startFromBeginning = false)
-	{
-		if (startFromBeginning) {
-			QTextCursor cursor = te_log->textCursor();
-			cursor.movePosition(QTextCursor::Start, QTextCursor::KeepAnchor);
-			cursor.clearSelection();
-			te_log->setTextCursor(cursor);
-		}
-		
-		bool found = te_log->find(str);
-		if(!found) {
-			if (!startFromBeginning)
-				return internalFind(str, true);
-			
-			return false;
-		}
-
-		return true;
-	}
-	
hunk ./src/groupchatdlg.cpp 760
-	d->findDlg = 0;
hunk ./src/groupchatdlg.cpp 800
-	d->act_find = new IconAction(tr("Find"), "psi/search", tr("&Find"), 0, this);
-	connect(d->act_find, SIGNAL(activated()), SLOT(openFind()));
-	d->act_find->addTo( sp_top_top );
-	
hunk ./src/groupchatdlg.cpp 829
+	// typeahead find bar
+	d->typeahead = new TypeAheadFindBar(d->te_log, tr("Find toolbar"), 0);
+	d->typeahead->displayIconText(true);
+	vb_bottom->addWidget( d->typeahead );
+
hunk ./src/groupchatdlg.cpp 837
-	
+
+	d->act_find = new IconAction(tr("Find"), "psi/search", tr("&Find"), 0, this);
+	connect(d->act_find, SIGNAL(activated()), d->typeahead, SLOT(open()));
+
hunk ./src/groupchatdlg.cpp 851
+	d->toolbar->addAction(d->act_find);
hunk ./src/groupchatdlg.cpp 1132
-void GCMainDlg::openFind()
-{
-	if(d->findDlg)
-		bringToFront(d->findDlg);
-	else {
-		d->findDlg = new GCFindDlg(d->lastSearch, this);
-		connect(d->findDlg, SIGNAL(find(const QString &)), SLOT(doFind(const QString &)));
-		d->findDlg->show();
-	}
-}
-
hunk ./src/groupchatdlg.cpp 1144
-void GCMainDlg::doFind(const QString &str)
-{
-	d->lastSearch = str;
-	if (d->internalFind(str))
-		d->findDlg->found();
-	else
-		d->findDlg->error(str);
-}
-
hunk ./src/groupchatdlg.cpp 1744
+	d->typeahead->optionsUpdate();
hunk ./src/groupchatdlg.h 153
-	void openFind();
hunk ./src/groupchatdlg.h 154
-	void doFind(const QString &);
addfile ./src/widgets/typeaheadfind.cpp
hunk ./src/widgets/typeaheadfind.cpp 1
+/*
+ * typeaheadfind.cpp - Typeahead find toolbar
+ * Copyright (C) 2006  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 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 "typeaheadfind.h"
+
+#include <QAction>
+#include <QLineEdit>
+#include <QCheckBox>
+#include <QLabel>
+#include <QTextEdit>
+
+#include "iconaction.h"
+#include "stretchwidget.h"
+#include "shortcutmanager.h"
+
+/**
+ * \class TypeAheadFindBar
+ * \brief The TypeAheadFindBar class provides a toolbar for typeahead finding.
+ */
+
+class TypeAheadFindBar::Private
+{
+public:
+	// setup search and react to search results
+	void doFind(bool backward = false)
+	{
+		QTextDocument::FindFlags options;
+
+		if (caseSensitive)
+			options |= QTextDocument::FindCaseSensitively;
+
+		if (backward) {
+			options |= QTextDocument::FindBackward;
+
+			// move cursor before currect selection
+			// to prevent finding the same occurence again
+			QTextCursor cursor = te->textCursor();
+			cursor.setPosition(cursor.selectionStart());
+			cursor.movePosition(QTextCursor::Left);
+			te->setTextCursor(cursor);
+		}
+
+		if (find(text, options)) {
+			le_find->setStyleSheet("");
+		}
+		else {
+			le_find->setStyleSheet("QLineEdit { background: #ff6666; color: #ffffff }");
+		}
+	}
+
+	// real search code
+
+	bool find(const QString &str, QTextDocument::FindFlags options, QTextCursor::MoveOperation start = QTextCursor::NoMove)
+	{
+		if (start != QTextCursor::NoMove) {
+			QTextCursor cursor = te->textCursor();
+			cursor.movePosition(start);
+			te->setTextCursor(cursor);
+		}
+
+		bool found = te->find(text, options);
+		if (!found) {
+			if (start == QTextCursor::NoMove)
+				return find(text, options, options & QTextDocument::FindBackward ? QTextCursor::End : QTextCursor::Start);
+
+			return false;
+		}
+
+		return true;
+	}
+
+	QString text;
+	bool caseSensitive;
+
+	QTextEdit *te;
+	QAction *act_close;
+	QLineEdit *le_find;
+	QAction *act_next;
+	QAction *act_prev;
+	QCheckBox *cb_case;
+};
+
+/**
+ * \brief Creates new find toolbar, hidden by default.
+ * \param textedit, QTextEdit that this toolbar will operate on.
+ * \param title, toolbar's title
+ * \param parent, toolbar's parent
+ */
+TypeAheadFindBar::TypeAheadFindBar(QTextEdit *textedit, const QString &title, QWidget *parent)
+: QToolBar(title, parent)
+{
+	d = new Private();
+
+	setIconSize(QSize(16,16));
+	setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+	setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
+
+	d->te = textedit;
+	d->caseSensitive = false;
+	d->text = "";
+
+	d->act_close = new IconAction(tr("Close"), "psi/close", "", 0, this);
+	d->act_close->setToolTip(tr("Close"));
+	connect(d->act_close, SIGNAL(activated()), SLOT(close()));
+	addAction(d->act_close);
+
+	addSeparator();
+
+	addWidget(new QLabel("Search: ", this));
+
+	d->le_find = new QLineEdit(this);
+	d->le_find->setMaximumWidth(128);
+	connect(d->le_find, SIGNAL(textEdited(const QString &)), SLOT(textChanged(const QString &)));
+	addWidget(d->le_find);
+
+	d->act_next = new IconAction(tr("Find next"), "psi/arrowDown", "", 0, this);
+	d->act_next->setEnabled(false);
+	connect(d->act_next, SIGNAL(activated()), SLOT(findNext()));
+	addAction(d->act_next);
+
+	d->act_prev = new IconAction(tr("Find previous"), "psi/arrowUp", "", 0, this);
+	d->act_prev->setEnabled(false);
+	connect(d->act_prev, SIGNAL(activated()), SLOT(findPrevious()));
+	addAction(d->act_prev);
+
+	d->cb_case = new QCheckBox("&Case sensitive", this);
+	connect(d->cb_case, SIGNAL(stateChanged(int)), SLOT(caseToggled(int)));
+	addWidget(d->cb_case);
+
+	addWidget(new StretchWidget(this));
+
+	optionsUpdate();
+
+	hide();
+}
+
+/**
+ * \brief Destroys the toolbar.
+ */
+TypeAheadFindBar::~TypeAheadFindBar()
+{
+	delete d;
+	d = 0;
+}
+
+/**
+ * \brief Should be called when application options are changed.
+ * This slot updates toolbar's shortcuts.
+ */
+void TypeAheadFindBar::optionsUpdate()
+{
+	d->act_close->setShortcuts(ShortcutManager::instance()->shortcuts("common.close"));
+	d->act_next->setShortcuts(ShortcutManager::instance()->shortcuts("chat.find-next"));
+	d->act_prev->setShortcuts(ShortcutManager::instance()->shortcuts("chat.find-prev"));
+}
+
+/**
+ * \brief Opens (shows) the toolbar.
+ */
+void TypeAheadFindBar::open()
+{
+	show();
+	d->le_find->setFocus();
+	d->le_find->selectAll();
+	emit visibilityChanged(true);
+}
+
+/**
+ * \brief Closes (hides) the toolbar.
+ */
+void TypeAheadFindBar::close()
+{
+	hide();
+	emit visibilityChanged(false);
+}
+
+/**
+ * \brief Switched between visible and hidden state.
+ */
+void TypeAheadFindBar::toggleVisibility()
+{
+	if (isVisible())
+		hide();
+	else
+		show();
+}
+
+/**
+ * \brief Enable icons text if \a yes is true.
+ */
+void TypeAheadFindBar::displayIconText(bool yes)
+{
+	if (yes) {
+		d->act_next->setIconText(tr("Find &next"));
+		d->act_prev->setIconText(tr("Find &previous"));
+	}
+	else {
+		d->act_next->setIconText("");
+		d->act_prev->setIconText("");
+	}
+}
+
+/**
+ * \brief Private slot activated when find text chagnes.
+ */
+void TypeAheadFindBar::textChanged(const QString &str)
+{
+	QTextCursor cursor = d->te->textCursor();
+	
+	if (str.isEmpty()) {
+		d->act_next->setEnabled(false);
+		d->act_prev->setEnabled(false);
+		d->le_find->setStyleSheet("");
+		cursor.clearSelection();
+		d->te->setTextCursor(cursor);
+	}
+	else {
+		d->act_next->setEnabled(true);
+		d->act_prev->setEnabled(true);
+
+		// don't jump to next word occurence after appending new charater
+		cursor.setPosition(cursor.selectionStart());
+		d->te->setTextCursor(cursor);
+
+		d->text = str;
+		d->doFind();
+	}
+}
+
+/**
+ * \brief Private slot activated when find-next is requested.
+ */
+void TypeAheadFindBar::findNext()
+{
+	d->doFind();
+}
+
+/**
+ * \brief Private slot activated when find-prev is requested.
+ */
+void TypeAheadFindBar::findPrevious()
+{
+	d->doFind(true);
+}
+
+/**
+ * \brief Private slot activated when case-sensitive box is toggled.
+ */
+void TypeAheadFindBar::caseToggled(int state)
+{
+	d->caseSensitive = (state == QCheckBox::On);
+}
addfile ./src/widgets/typeaheadfind.h
hunk ./src/widgets/typeaheadfind.h 1
+/*
+ * typeaheadfind.h - Typeahead find toolbar
+ * Copyright (C) 2006  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 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 TYPEAHEADFIND_H
+#define TYPEAHEADFIND_H
+
+#include <QToolBar>
+
+class QTextEdit;
+class QString;
+
+class TypeAheadFindBar : public QToolBar
+{
+	Q_OBJECT
+public:
+	TypeAheadFindBar(QTextEdit *textedit, const QString &title, QWidget *parent = 0);
+	~TypeAheadFindBar();
+
+public slots:
+	void open();
+	void close();
+	void toggleVisibility();
+	void optionsUpdate();
+	void displayIconText(bool yes);
+
+signals:
+	void visibilityChanged(bool visible);
+
+private slots:
+	void textChanged(const QString &);
+	void findNext();
+	void findPrevious();
+	void caseToggled(int);
+
+private:
+	class Private;
+	Private *d;
+};
+
+#endif
hunk ./src/widgets/widgets.pri 17
-	$$PWD/psitabbar.cpp
+	$$PWD/psitabbar.cpp \
+	$$PWD/typeaheadfind.cpp
hunk ./src/widgets/widgets.pri 40
-	$$PWD/psitabbar.h
+	$$PWD/psitabbar.h \
+	$$PWD/typeaheadfind.h
}

[Update Typeahead to current mainline
Maciej Niedzielski <machekku@uaznia.net>**20070125214450] {
hunk ./src/eventdlg.cpp 75
+#include "typeaheadfind.h"
+#include "xdata_widget.h"
hunk ./src/eventdlg.cpp 787
-		d->tb_find->setIcon(IconsetFactory::iconPtr("psi/search"));
+		d->tb_find->setPsiIcon(IconsetFactory::iconPtr("psi/search"));
}

[Fix typeahead crash in EventDlg
Maciej Niedzielski <machekku@uaznia.net>**20070125214601] {
hunk ./src/eventdlg.cpp 815
-	toolButtons << d->tb_find << d->tb_url << d->tb_info << d->tb_history;
+	if (!d->composing)
+		toolButtons << d->tb_find;
+	toolButtons << d->tb_url << d->tb_info << d->tb_history;
}

Context:

[Stanza error handling improvements
Maciej Niedzielski <machekku@uaznia.net>**20070125151126] 
[Fixed tooltips in DiscoDlg.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070118175228] 
[Use XMPP::Status::* constants instead of STATUS_*.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070110151520] 
[Removed outdated iconsets/emoticons/README file.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070109163008] 
[OptionsTabIconset* are now able to list embedded iconsets; Embedded default emoticons iconset.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070109162511] 
[IconsetSelect wouldn't assert when it doesn't have any iconsets.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070109161707] 
[Another qt3to4 patch (thanks again Stigger)
Kevin Smith <kismith@psi-im.org>**20070109105500] 
[Converting some classes using Qt3support to Qt4 proper (Thanks to Stigger)
Kevin Smith <kismith@psi-im.org>**20070109102145] 
[Added QSize to optionstree types.
Remko Troncon <remko@psi-im.org>**20070108203340] 
[GlobalAccel is now obsolete and removed from repository.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070108170202] 
[Global shortcuts.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070108065657
 Thanks to Machekku.
] 
[Sort room roster in groupchats.
Michail Pishchagin <mblsha@users.sourceforge.net>**20070107212236] 
[Gracefully resize columns in DiscoDlg.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061225004401] 
[Don't crash in GroupChatDlg when trying to perform an action on user who quit the room.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061224231038
 Thanks to Dion.
] 
[Use hostname when using HTTP connect proxy (FS#579).
Remko Troncon <remko@psi-im.org>**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 <remko@psi-im.org>**20061220123454] 
[Fixed empty window appearing on OS X (FS#605).
Remko Troncon <remko@psi-im.org>**20061217201724] 
[Fix segfault on OS X due to double delete.
Remko Troncon <remko@psi-im.org>**20061217200303] 
[Added Q_OBJECT macro to TranslationManager.
Remko Troncon <remko@psi-im.org>**20061217104147] 
[Removing Q3CString from Jid.
Remko Troncon <remko@psi-im.org>**20061215224858] 
[Tightening include in jid.cpp.
Remko Troncon <remko@psi-im.org>**20061215222713] 
[Completed XEP-0004 (Data forms) support.
Remko Troncon <remko@psi-im.org>**20061214140351
 We now support data forms in messages (thanks to Roelof Naude)
] 
[Reply to invalid disco#info requests.
Remko Troncon <remko@psi-im.org>**20061214123701] 
[Added shortcuts icon.
Remko Troncon <remko@psi-im.org>**20061214115800] 
[Forgot closing #warning.
Remko Troncon <remko@psi-im.org>**20061214085033] 
[Removed MainWin::setInfo().
Michail Pishchagin <mblsha@users.sourceforge.net>**20061213161941] 
[Cleaning up some more singletons.
Remko Troncon <remko@psi-im.org>**20061213144209] 
[Clean up the default menubar.
Remko Troncon <remko@psi-im.org>**20061213143809] 
[Clean up the shortcutmanager upon exit.
Remko Troncon <remko@psi-im.org>**20061213141827] 
[Include language_name in the translations.
Remko Troncon <remko@psi-im.org>**20061213134432] 
[Fixed the SyncThread::call() method.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061213124029] 
[Chop off encoding from XML language string.
Remko Troncon <remko@psi-im.org>**20061213085832] 
[Added stream language setting.
Remko Troncon <remko@psi-im.org>**20061212232131] 
[Moved translation operations into TranslationManager.
Remko Troncon <remko@psi-im.org>**20061212222831] 
[Moving XData to iris.
Remko Troncon <remko@psi-im.org>**20061212144557] 
[Fixed compilation warnings when compiling in release mode.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061212100730] 
[Don't issue warning when deleting of pointer to incomplete type, when compiling moc_tabdlg.cpp.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061208085153] 
[Remove dependency on image plugins.
Remko Troncon <remko@psi-im.org>**20061207102450] 
[Fix double 'overwrite file' check.
Remko Troncon <remko@psi-im.org>**20061206215847
 Thanks to machekku.
] 
[HttpAuthRequest refactoring.
Remko Troncon <remko@psi-im.org>**20061206203535] 
[Allow empty http auth requests.
Remko Troncon <remko@psi-im.org>**20061206200908
 Thanks to Machekku.
] 
[Don't show http auth confirmation when iq type is not get.
Remko Troncon <remko@psi-im.org>**20061206195927
 Thanks to machekku.
] 
[Shortcuts options tab fix.
Remko Troncon <remko@psi-im.org>**20061206195426] 
[Reply to privacy list pushes.
Remko Troncon <remko@psi-im.org>**20061206194718] 
[Fix error replies to server.
Remko Troncon <remko@psi-im.org>**20061206194712] 
[Privacy list refactoring.
Remko Troncon <remko@psi-im.org>**20061206192411] 
[Filter text nodes in privacy lists.
Remko Troncon <remko@psi-im.org>**20061206191808] 
[Don't use relative paths in Psi project files.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061206162140] 
[Fixed menubar on non-osx platforms.
Remko Troncon <remko@psi-im.org>**20061206130833] 
[Fixed disappearing menubar on OS X.
Remko Troncon <remko@psi-im.org>**20061205194734] 
[Reset status messages when going offline.
Remko Troncon <remko@psi-im.org>**20061204133046] 
[Last Activity (XEP-0012) for offline users.
Remko Troncon <remko@psi-im.org>**20061204131343] 
[Disable 'Publish tune' if no PEP is available (FS#594).
Remko Troncon <remko@psi-im.org>**20061203150921] 
[Some PsiContactList refactoring.
Remko Troncon <remko@psi-im.org>**20061203133749] 
[Fix illegal nick change handling (FS#596).
Remko Troncon <remko@psi-im.org>**20061203123229] 
[Uncheck legacy ssl probe if disabled.
Remko Troncon <remko@psi-im.org>**20061129191140] 
[Some xmpptest tweaks.
Remko Troncon <remko@psi-im.org>**20061129191102] 
[Remove obsolete widgets.
Remko Troncon <remko@psi-im.org>**20061128175136] 
[Keep account JID bare.
Remko Troncon <remko@psi-im.org>**20061128140200] 
[Finished authzid support.
Remko Troncon <remko@psi-im.org>**20061128125911] 
[Encode domain names before passing them to SASL.
Remko Troncon <remko@psi-im.org>**20061128104108] 
[Fix overriding of realms in simplesasl.
Remko Troncon <remko@psi-im.org>**20061128104041] 
[Compilation fix.
Remko Troncon <remko@psi-im.org>**20061128092442] 
[Encode internationalized domain names.
Remko Troncon <remko@psi-im.org>**20061128091835] 
[Reworked SSL/TLS account settings.
Remko Troncon <remko@psi-im.org>**20061127221100] 
[We don't need PsiCon::mainWin() around anymore.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061126210629] 
[Removed dependencies on MainWin.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061126194557] 
[Fix httpconnect.cpp newline detection bug.
Remko Troncon <remko@psi-im.org>**20061126181911
 Thanks to michalj.
] 
[but lets make it statuschangeless in MUC by default
Kevin Smith <kismith@psi-im.org>**20061126124231] 
[Show status changes in MUC (thanks dion)
Kevin Smith <kismith@psi-im.org>**20061126123852] 
[OptionsTab Shortcuts (Thanks Ephraim)
Kevin Smith <kismith@psi-im.org>**20061126120715] 
[temporary add options.ui.contactlist.temp-no-roster-animation option to workaround extrem CPU usage of animated roaster icons
Martin H. <textshell-I1QKlO@neutronstar.dyndns.org>**20060730215542] 
[Auto-copy fix
Maciej Niedzielski <machekku@uaznia.net>**20061106222750] 
[Report reason when people leave a MUC (Thanks Dion)
Kevin Smith <kismith@psi-im.org>**20061126102314] 
[IconToolButton will display text if it doesn't have an icon.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061125185504] 
[options.tip.* -> options.ui.tip.*.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061125184705] 
[Icon -> PsiIcon.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061125173226] 
[Windows Vista detection support
Kevin Smith <kismith@psi-im.org>**20061122230043] 
[Three doxygen comments from Textshell
Kevin Smith <kismith@psi-im.org>**20061122221724] 
[(ClassName *)PsiAccount::dialogFind("ClassName") -> PsiAccount::findDialog<ClassName*>().
Michail Pishchagin <mblsha@users.sourceforge.net>**20061122132956] 
[Two null XMPP::Jids are equal.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061122120403] 
[Correctly ignore WinAmp header warnings.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061120145252] 
[Suppress more warnings.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061120140823] 
[Suppress compilation warnings.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061120140034] 
[Conditional plugin compilation.
Remko Troncon <remko@psi-im.org>**20061120140852] 
[Fix to BookmarkManager (thanks Ephraim)
Kevin Smith <kismith@psi-im.org>**20061119195128] 
[Make window flashing optional (options.xml)
Kevin Smith <kismith@psi-im.org>**20061119152845] 
[Don't needlessly expand LineEdit vertically in ChatDlg.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061113125127] 
[New Alertable class to simplify alert icon plumbing.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061114213929] 
[Strip unnecessary data from the manifest file.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061108164138] 
[Compile-in image format plugins on Windows.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061108160706] 
[Ephraim's fix correction for the gcdialog
Kevin Smith <kismith@psi-im.org>**20061107165709] 
[AvatarFactory ensures that all avatars are square in size.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061107160555] 
[Moved function to create transparent QPixmaps to separate file.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061107160210] 
[Changed animation groupbox to combobox.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061106163452
 Thanks to Martin H.
] 
[Visual Styles Manifest (for Windows)
Maciej Niedzielski <machekku@uaznia.net>**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 <mblsha@users.sourceforge.net>**20061106151310
 Thanks to Ephraim.
] 
[Added Q_OBJECT macro to aboutdlg.
Remko Troncon <remko@psi-im.org>**20061104145551] 
[Fixed sort order in groupchat dialog.
Remko Troncon <remko@psi-im.org>**20061103220932] 
[Do not add a body to MUC topic changes.
Remko Troncon <remko@psi-im.org>**20061103170842] 
[More Aspell UTF-8 support.
Remko Troncon <remko@psi-im.org>**20061102211848] 
[Added Mac OS X spell checking support.
Remko Troncon <remko@psi-im.org>**20061102203818] 
[Use UTF-8 in the ASpellChecker.
Remko Troncon <remko@psi-im.org>**20061102182805] 
[Fix statusdlg signal slot.
Remko Troncon <remko@psi-im.org>**20061101003800] 
[Added support for JEP-70.
Remko Troncon <remko@psi-im.org>**20061031193236
 Thanks to Machekku.
] 
[Added more ignore rules to the boring file.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061030100120] 
[Tab drag and drop
Kevin Smith <psichangelog@kismith.co.uk>**20061026100810] 
[Disable 'check spelling' option when no spell checker is available.
Remko Troncon <remko@psi-im.org>**20061026095747
 Thanks to Ephraim.
] 
[Added XMPP::Status constructor.
Remko Troncon <remko@psi-im.org>**20061026095152] 
[Fix shortcuts in event dialog.
Remko Troncon <remko@psi-im.org>**20061026085820] 
[Remove unwanted whitespace from error stanza.
Remko Troncon <remko@psi-im.org>**20061026075059
 Thanks to Machekku.
] 
[Fixed typo in shortcut manager.
Remko Troncon <remko@psi-im.org>**20061026074154] 
[Fixed warning fix.
Remko Troncon <remko@psi-im.org>**20061025213440] 
[Fix compilation warning.
Remko Troncon <remko@psi-im.org>**20061025172832] 
[Make sure that there is at least one shortcut to send chat messages.
Remko Troncon <remko@psi-im.org>**20061025154932] 
[Workaround for shortcut segfault.
Remko Troncon <remko@psi-im.org>**20061025154348] 
[Remove the shortcut for clearing the chatlog.
Remko Troncon <remko@psi-im.org>**20061025153546] 
[Start rewriting Tab widgets
Kevin Smith <psichangelog@kismith.co.uk>**20061025150151] 
[Narrowing includes down.
Remko Troncon <remko@psi-im.org>**20061025134832] 
[Split off some common classes from im.h.
Remko Troncon <remko@psi-im.org>**20061025134244] 
[Make resourceMenu use XMPP::Status.
Remko Troncon <remko@psi-im.org>**20061025121333] 
[Make status presets use XMPP::Status.
Remko Troncon <remko@psi-im.org>**20061025120452] 
[Removed redundant type field from XMPP::Status.
Remko Troncon <remko@psi-im.org>**20061025114556] 
[Added XMPP::Status::type() function and Type enum for safer programming.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061025105450] 
[Refactored BlockTransportPopupList class a little.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061025082210] 
[mac builds should be devel, not beta3
Kevin Smith <psichangelog@kismith.co.uk>**20061025094954] 
[Use QDesktopServices::openUrl instead of our hand coded way.
Remko Troncon <remko@psi-im.org>**20061025094241] 
[Enable new tray icon by default on all platforms.
Remko Troncon <remko@psi-im.org>**20061024214146] 
[Add shadow around tray icon on X11.
Remko Troncon <remko@psi-im.org>**20061024192121] 
[More tray icon code.
Remko Troncon <remko@psi-im.org>**20061024190541] 
[Some more tray menu refactoring.
Remko Troncon <remko@psi-im.org>**20061024184654] 
[Fixed trayicon slot mismatch.
Remko Troncon <remko@psi-im.org>**20061024181846] 
[Use QSystemTrayIcon on Mac OS X.
Remko Troncon <remko@psi-im.org>**20061024180330] 
[Renamed MTray to PsiTrayIcon, and put it in a separate file.
Remko Troncon <remko@psi-im.org>**20061024161054] 
[Use QSyntaxHighlighter for spell checking.
Remko Troncon <remko@psi-im.org>**20061024154309
 Fixes highlighting issues.
] 
[Do not set mask while the pixmap is being painted on.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061024141610] 
[Extracted AccountLabel to separate file.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061024120956] 
[Disabling qca-gnupg.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061024120537] 
[Refactored PsiCon::accountList() -> PsiContactList::accounts().
Michail Pishchagin <mblsha@users.sourceforge.net>**20061024112623
 To be more precise: accountList(false) -> PsiContactList::accounts() and
 accountList(true) -> PsiContactList::enabledAccounts().
] 
[Moved PsiAccountList to the separate PsiContactList class.
Michail Pishchagin <mblsha@users.sourceforge.net>**20061024102058] 
[Added more valgrind suppressions (tested on Kubuntu Dapper).
Michail Pishchagin <mblsha@users.sourceforge.net>**20061024100830] 
[Workaround for 100% CPU usage on connection error.
Remko Troncon <remko@psi-im.org>**20061024084520] 
[Migrating tip of the day.
Remko Troncon <remko@psi-im.org>**20061023185050] 
[Moved text utilities to TextUtil.
Remko Troncon <remko@psi-im.org>**20061023121846] 
[Fixed X11 compilation issues.
Remko Troncon <remko@psi-im.org>**20061023115501] 
[Some more common.h reordering.
Remko Troncon <remko@psi-im.org>**20061023113057] 
[Moving some things out of common.cpp.
Remko Troncon <remko@psi-im.org>**20061023111734] 
[Moved global PsiIconset instance into PsiIconset.
Remko Troncon <remko@psi-im.org>**20061023094755] 
[Cleanups in common.h.
Remko Troncon <remko@psi-im.org>**20061023085345] 
[Remove dependency on Psi from aspellchecker.
Remko Troncon <remko@psi-im.org>**20061023082646] 
[Aspell fix.
Remko Troncon <remko@psi-im.org>**20061023075215] 
[Some src.pri cleanups.
Remko Troncon <remko@psi-im.org>**20061022213649] 
[More portable way of linking against static jingle.
Remko Troncon <remko@psi-im.org>**20061022212611] 
[More portable way of linking against a static qca.
Remko Troncon <remko@psi-im.org>**20061022212124] 
[Tightening includes.
Remko Troncon <remko@psi-im.org>**20061022204405] 
[Copied BSocket from ambrosia.
Remko Troncon <remko@psi-im.org>**20061022200658] 
[Removed Q3CStrings.
Remko Troncon <remko@psi-im.org>**20061022200025] 
[Split off AboutDlg.
Remko Troncon <remko@psi-im.org>**20061022185351] 
[Fixed segfault on linux in getHomeDir().
Remko Troncon <remko@psi-im.org>**20061022152235] 
[Migrate global shortcut options to new options system.
Remko Troncon <remko@psi-im.org>**20061021213722] 
[More common.h cleanups.
Remko Troncon <remko@psi-im.org>**20061021210021] 
[Some more common.h cleanups.
Remko Troncon <remko@psi-im.org>**20061021201149] 
[Fixed windows building of QCA.
Remko Troncon <remko@psi-im.org>**20061021201442] 
[Moved application information out of common.h into ApplicationInfo.
Remko Troncon <remko@psi-im.org>**20061021191231] 
[Added Mac OS X support in SystemInfo.
Remko Troncon <remko@psi-im.org>**20061021173553] 
[Sorting Ad-Hoc commands.
Remko Troncon <remko@psi-im.org>**20061021172941
 Thanks to Norman Rasmussen.
] 
[Added missing includes to systeminfo.
Remko Troncon <remko@psi-im.org>**20061021172045] 
[Added busywidget to ad-hoc command dialog.
Remko Troncon <remko@psi-im.org>**20061021171745
 Thanks to Norman Rasmussen.
] 
[Added extra include to systeminfo.
Remko Troncon <remko@psi-im.org>**20061021171133] 
[Moved system information methods from common.h to SystemInfo.
Remko Troncon <remko@psi-im.org>**20061021163132] 
[Removed obsolete string functions from common.h
Remko Troncon <remko@psi-im.org>**20061021150533] 
[Added registrationdlg to darcs.
Remko Troncon <remko@psi-im.org>**20061021143528] 
[Moved StretchWidget from common.h.
Remko Troncon <remko@psi-im.org>**20061021143301] 
[Splitting up servicesdlg into searchdlg and registrationdlg.
Remko Troncon <remko@psi-im.org>**20061021142021] 
[Removing some qt3support dependencies.
Remko Troncon <remko@psi-im.org>**20061021135310] 
[Ported all Q3FileDialogs.
Remko Troncon <remko@psi-im.org>**20061021134311] 
[Refactoring + Qt4-proper port of SSLCertDlg.
Remko Troncon <remko@psi-im.org>**20061021130542] 
[Clear keypad modifier from key events.
Remko Troncon <remko@psi-im.org>**20061021112448] 
[Added workaround to force VS2005/VC8 to link.
Remko Troncon <remko@psi-im.org>**20061021104201
 Thanks to Norman Rasmussen.
] 
[Migration of 'enter sends message' to new shortcut system.
Remko Troncon <remko@psi-im.org>**20061021093801] 
[Updated README.
Remko Troncon <remko@psi-im.org>**20061020160227] 
[Make (group)chatdlg respect shortcuts.
Remko Troncon <remko@psi-im.org>**20061020141504] 
[Fixed compilation problems.
Remko Troncon <remko@psi-im.org>**20061020144525] 
[Removed roster opacity from common.h.
Remko Troncon <remko@psi-im.org>**20061020135341] 
[Removed 'enter sends message' option from the UI.
Remko Troncon <remko@psi-im.org>*-20061019184833] 
[TAG 20061020
Remko Troncon <remko@psi-im.org>**20061020124531] 
Patch bundle hash:
0c123dfe7a2ac384d99e91b823ae87807cf651ca
