diff options
25 files changed, 352 insertions, 131 deletions
| diff --git a/Swift/QtUI/QtChatWindow.cpp b/Swift/QtUI/QtChatWindow.cpp index 6328156..2e08adb 100644 --- a/Swift/QtUI/QtChatWindow.cpp +++ b/Swift/QtUI/QtChatWindow.cpp @@ -1,7 +1,7 @@  #include "QtChatWindow.h"  #include "QtSwiftUtil.h" -#include "QtTreeWidget.h" -#include "QtTreeWidgetFactory.h" +#include "Roster/QtTreeWidget.h" +#include "Roster/QtTreeWidgetFactory.h"  #include "QtChatView.h"  #include "MessageSnippet.h"  #include "SystemMessageSnippet.h" diff --git a/Swift/QtUI/QtChatWindowFactory.cpp b/Swift/QtUI/QtChatWindowFactory.cpp index 927447c..47c943f 100644 --- a/Swift/QtUI/QtChatWindowFactory.cpp +++ b/Swift/QtUI/QtChatWindowFactory.cpp @@ -3,7 +3,7 @@  #include "QtChatTabs.h"  #include "QtChatWindow.h"  #include "QtSwiftUtil.h" -#include "QtTreeWidgetFactory.h" +#include "Roster/QtTreeWidgetFactory.h"  namespace Swift { diff --git a/Swift/QtUI/QtMainWindow.cpp b/Swift/QtUI/QtMainWindow.cpp index a9ffc51..fffd478 100644 --- a/Swift/QtUI/QtMainWindow.cpp +++ b/Swift/QtUI/QtMainWindow.cpp @@ -2,8 +2,8 @@  #include "QtJoinMUCDialog.h"  #include "QtSwiftUtil.h" -#include "QtTreeWidgetFactory.h" -#include "QtTreeWidget.h" +#include "Roster/QtTreeWidgetFactory.h" +#include "Roster/QtTreeWidget.h"  #include "QtStatusWidget.h"  #include <QBoxLayout> diff --git a/Swift/QtUI/QtMainWindowFactory.cpp b/Swift/QtUI/QtMainWindowFactory.cpp index 288d182..9594ade 100644 --- a/Swift/QtUI/QtMainWindowFactory.cpp +++ b/Swift/QtUI/QtMainWindowFactory.cpp @@ -1,6 +1,6 @@  #include "QtMainWindowFactory.h"  #include "QtMainWindow.h" -#include "QtTreeWidgetFactory.h" +#include "Roster/QtTreeWidgetFactory.h"  namespace Swift { diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp index e1fac9c..00efc17 100644 --- a/Swift/QtUI/QtSwift.cpp +++ b/Swift/QtUI/QtSwift.cpp @@ -3,7 +3,7 @@  #include "QtLoginWindowFactory.h"  #include "QtChatWindowFactory.h"  #include "QtMainWindowFactory.h" -#include "QtTreeWidgetFactory.h" +#include "Roster/QtTreeWidgetFactory.h"  #include "QtSystemTray.h"  #include "QtSoundPlayer.h" diff --git a/Swift/QtUI/QtTreeWidget.cpp b/Swift/QtUI/QtTreeWidget.cpp deleted file mode 100644 index 66c653e..0000000 --- a/Swift/QtUI/QtTreeWidget.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "QtTreeWidget.h" - -#include "Swiften/Base/Platform.h" -#include "Swiften/Roster/OpenChatRosterAction.h" - -namespace Swift { - -QtTreeWidget::QtTreeWidget(QWidget* parent) : QTreeWidget(parent) { -	setHeaderHidden(true); -#ifdef SWIFT_PLATFORM_MACOSX -	setAlternatingRowColors(true); -#endif -	setAnimated(true); -	setIndentation(0); -  setRootIsDecorated(true); -	connect(this, SIGNAL(itemActivated(QTreeWidgetItem*, int)), this, SLOT(handleItemActivated(QTreeWidgetItem*, int))); -} - -void QtTreeWidget::handleItemActivated(QTreeWidgetItem* item, int column) { -	QtTreeWidgetItem* qtItem = dynamic_cast<QtTreeWidgetItem*>(item); -	if (qtItem) { -		qtItem->performUserAction(boost::shared_ptr<UserRosterAction>(new OpenChatRosterAction())); -	} -} - -void QtTreeWidget::drawBranches(QPainter*, const QRect&, const QModelIndex&) const { -} - -} diff --git a/Swift/QtUI/QtTreeWidget.h b/Swift/QtUI/QtTreeWidget.h deleted file mode 100644 index e1d83de..0000000 --- a/Swift/QtUI/QtTreeWidget.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef SWIFT_QtTreeWidget_H -#define SWIFT_QtTreeWidget_H - -#include <QTreeWidget> - -#include "Swiften/Roster/TreeWidgetFactory.h" -#include "Swiften/Roster/TreeWidget.h" -#include "Swiften/Roster/TreeWidgetItem.h" -#include "Swift/QtUI/QtTreeWidgetItem.h" -#include "Swift/QtUI/QtTreeWidget.h" - -namespace Swift { - -class QtTreeWidget : public QTreeWidget, public TreeWidget { -	Q_OBJECT -	public: -		QtTreeWidget(QWidget* parent = 0); -	 -	private slots: -		void handleItemActivated(QTreeWidgetItem*, int); - -  private: -    void drawBranches(QPainter*, const QRect&, const QModelIndex&) const; -}; - -} -#endif - diff --git a/Swift/QtUI/QtTreeWidgetItem.h b/Swift/QtUI/QtTreeWidgetItem.h deleted file mode 100644 index 34ad93c..0000000 --- a/Swift/QtUI/QtTreeWidgetItem.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef SWIFT_QtTreeWidgetItem_H -#define SWIFT_QtTreeWidgetItem_H - -#include <QColor> - -#include "Swiften/Base/String.h" -#include "Swiften/Roster/TreeWidgetFactory.h" -#include "Swiften/Roster/TreeWidget.h" -#include "Swiften/Roster/TreeWidgetItem.h" -#include "Swift/QtUI/QtTreeWidgetItem.h" -#include "Swift/QtUI/QtTreeWidget.h" -#include "Swift/QtUI/QtSwiftUtil.h" - -namespace Swift { - -class QtTreeWidgetItem : public QTreeWidgetItem, public TreeWidgetItem { -	public: -		QtTreeWidgetItem(QTreeWidget* parent) : QTreeWidgetItem(parent) { -		} - -		QtTreeWidgetItem(QTreeWidgetItem* parent) : QTreeWidgetItem(parent) { -		} - -		void setText(const String& text) { -			QTreeWidgetItem::setText(0, P2QSTRING(text)); -		} - -		void setTextColor(unsigned long color) { -			QTreeWidgetItem::setTextColor(0, QColor( -					((color & 0xFF0000)>>16), -					((color & 0xFF00)>>8),  -					(color & 0xFF))); -		} - -		void setBackgroundColor(unsigned long color) { -			QTreeWidgetItem::setBackgroundColor(0, QColor( -					((color & 0xFF0000)>>16), -					((color & 0xFF00)>>8),  -					(color & 0xFF))); -		} - -		void setExpanded(bool b) { -			treeWidget()->setItemExpanded(this, b); -		} - -		void hide() { -			setHidden(true); -		} - -		void show() { -			setHidden(false); -		} -}; - -} -#endif - diff --git a/Swift/QtUI/Roster/QtTreeWidget.cpp b/Swift/QtUI/Roster/QtTreeWidget.cpp new file mode 100644 index 0000000..d40169f --- /dev/null +++ b/Swift/QtUI/Roster/QtTreeWidget.cpp @@ -0,0 +1,37 @@ +#include "Roster/QtTreeWidget.h" + +#include "Swiften/Base/Platform.h" +#include "Swiften/Roster/OpenChatRosterAction.h" + +namespace Swift { + +QtTreeWidget::QtTreeWidget(QWidget* parent) : QTreeView(parent), RosterItem(NULL) { +	model_ = new RosterModel(this); +    setModel(model_); +    //setWindowTitle("A roster"); +    //show(); +	setHeaderHidden(true); +#ifdef SWIFT_PLATFORM_MACOSX +	setAlternatingRowColors(true); +#endif +	setAnimated(true); +	setIndentation(0); +	setRootIsDecorated(true); +	connect(this, SIGNAL(itemActivated(QTreeWidgetItem*, int)), this, SLOT(handleItemActivated(QTreeWidgetItem*, int))); +} + +// void QtTreeWidget::handleItemActivated(QTreeWidgetItem* item, int column) { +// 	QtTreeWidgetItem* qtItem = dynamic_cast<QtTreeWidgetItem*>(item); +// 	if (qtItem) { +// 		qtItem->performUserAction(boost::shared_ptr<UserRosterAction>(new OpenChatRosterAction())); +// 	} +// } + +void QtTreeWidget::drawBranches(QPainter*, const QRect&, const QModelIndex&) const { +} + +void QtTreeWidget::show() { +	QWidget::show(); +} + +} diff --git a/Swift/QtUI/Roster/QtTreeWidget.h b/Swift/QtUI/Roster/QtTreeWidget.h new file mode 100644 index 0000000..f246e83 --- /dev/null +++ b/Swift/QtUI/Roster/QtTreeWidget.h @@ -0,0 +1,32 @@ +#ifndef SWIFT_QtTreeWidget_H +#define SWIFT_QtTreeWidget_H + +#include <QTreeView> + +#include "Swiften/Roster/TreeWidgetFactory.h" +#include "Swiften/Roster/TreeWidget.h" +#include "Swiften/Roster/TreeWidgetItem.h" +#include "Swift/QtUI/Roster/QtTreeWidgetItem.h" +#include "Swift/QtUI/Roster/QtTreeWidget.h" +#include "Swift/QtUI/Roster/RosterModel.h" +#include "Swift/QtUI/Roster/RosterItem.h" + +namespace Swift { + +class QtTreeWidget : public QTreeView, public TreeWidget, public RosterItem { +	Q_OBJECT +	public: +		QtTreeWidget(QWidget* parent = 0); +		void show(); +	//private slots: +	//	void handleItemActivated(QTreeWidgetItem*, int); + +	private: +		void drawBranches(QPainter*, const QRect&, const QModelIndex&) const; +		RosterModel* model_; +		 +}; + +} +#endif + diff --git a/Swift/QtUI/QtTreeWidgetFactory.cpp b/Swift/QtUI/Roster/QtTreeWidgetFactory.cpp index e69de29..e69de29 100644 --- a/Swift/QtUI/QtTreeWidgetFactory.cpp +++ b/Swift/QtUI/Roster/QtTreeWidgetFactory.cpp diff --git a/Swift/QtUI/QtTreeWidgetFactory.h b/Swift/QtUI/Roster/QtTreeWidgetFactory.h index e0140d2..353f697 100644 --- a/Swift/QtUI/QtTreeWidgetFactory.h +++ b/Swift/QtUI/Roster/QtTreeWidgetFactory.h @@ -4,8 +4,8 @@  #include "Swiften/Roster/TreeWidgetFactory.h"  #include "Swiften/Roster/TreeWidget.h"  #include "Swiften/Roster/TreeWidgetItem.h" -#include "Swift/QtUI/QtTreeWidgetItem.h" -#include "Swift/QtUI/QtTreeWidget.h" +#include "Swift/QtUI/Roster/QtTreeWidgetItem.h" +#include "Swift/QtUI/Roster/QtTreeWidget.h"  namespace Swift { @@ -21,13 +21,18 @@ class QtTreeWidgetFactory : public TreeWidgetFactory {  		TreeWidgetItem* createTreeWidgetItem(TreeWidgetItem* item) {  			QtTreeWidgetItem* qtItem = dynamic_cast<QtTreeWidgetItem*>(item);  			assert(qtItem); -			return new QtTreeWidgetItem(qtItem); +			QtTreeWidgetItem* newItem = new QtTreeWidgetItem(qtItem); +			qtItem->addChild(newItem); +			return newItem;  		}  		TreeWidgetItem* createTreeWidgetItem(TreeWidget* item) {  			QtTreeWidget* qtItem = dynamic_cast<QtTreeWidget*>(item);  			assert(qtItem); -			return new QtTreeWidgetItem(qtItem); +			QtTreeWidgetItem* newItem = new QtTreeWidgetItem(qtItem); +			//qtItem->setItemWidget(newItem, 0, newItem->getCollapsedRosterWidget()); +			qtItem->addChild(newItem); +			return newItem;  		}  }; diff --git a/Swift/QtUI/Roster/QtTreeWidgetItem.cpp b/Swift/QtUI/Roster/QtTreeWidgetItem.cpp new file mode 100644 index 0000000..f65c3bf --- /dev/null +++ b/Swift/QtUI/Roster/QtTreeWidgetItem.cpp @@ -0,0 +1,17 @@ +#include "Swift/QtUI/Roster/QtTreeWidgetItem.h" +#include "Swift/QtUI/Roster/QtTreeWidget.h" +namespace Swift { + +QWidget* QtTreeWidgetItem::getCollapsedRosterWidget() { +	QWidget* widget = new QWidget(); +	 +	return widget; +} + +QWidget* QtTreeWidgetItem::getExpandedRosterWidget() { +	QWidget* widget = new QWidget(); +	 +	return widget; +} + +}
\ No newline at end of file diff --git a/Swift/QtUI/Roster/QtTreeWidgetItem.h b/Swift/QtUI/Roster/QtTreeWidgetItem.h new file mode 100644 index 0000000..c35a840 --- /dev/null +++ b/Swift/QtUI/Roster/QtTreeWidgetItem.h @@ -0,0 +1,65 @@ +#ifndef SWIFT_QtTreeWidgetItem_H +#define SWIFT_QtTreeWidgetItem_H + +#include <QColor> + +#include "Swiften/Base/String.h" +#include "Swiften/Roster/TreeWidgetFactory.h" +#include "Swiften/Roster/TreeWidget.h" +#include "Swiften/Roster/TreeWidgetItem.h" +#include "Swift/QtUI/Roster/QtTreeWidgetItem.h" +#include "Swift/QtUI/Roster/RosterItem.h" + + +#include "Swift/QtUI/QtSwiftUtil.h" + + +namespace Swift { +class QtTreeWidget; +class QtTreeWidgetItem : public TreeWidgetItem, public RosterItem { +	public: +		QtTreeWidgetItem(RosterItem* parentItem) : RosterItem(parentItem) { + +		} + +		void setText(const String& text) { +			displayName_ = P2QSTRING(text); +			// QTreeWidgetItem::setText(0, P2QSTRING(text)); +		} + +		void setTextColor(unsigned long color) { +			// QTreeWidgetItem::setTextColor(0, QColor( +			// 					((color & 0xFF0000)>>16), +			// 					((color & 0xFF00)>>8),  +			// 					(color & 0xFF))); +		} + +		void setBackgroundColor(unsigned long color) { +			// QTreeWidgetItem::setBackgroundColor(0, QColor( +			// 					((color & 0xFF0000)>>16), +			// 					((color & 0xFF00)>>8),  +			// 					(color & 0xFF))); +		} + +		void setExpanded(bool b) { +			//treeWidget()->setItemExpanded(this, b); +		} + +		void hide() { +			//setHidden(true); +		} + +		void show() { +			//setHidden(false); +		} +		 +		QWidget* getCollapsedRosterWidget(); +		QWidget* getExpandedRosterWidget(); +		 +	private: +		QString displayName_; +}; + +} +#endif + diff --git a/Swift/QtUI/Roster/Roster.pri b/Swift/QtUI/Roster/Roster.pri new file mode 100644 index 0000000..56ff472 --- /dev/null +++ b/Swift/QtUI/Roster/Roster.pri @@ -0,0 +1,12 @@ +SOURCES += $$PWD/RosterDelegate.cpp \ +	$$PWD/RosterItem.cpp \ +	$$PWD/RosterModel.cpp \ +	$$PWD/QtTreeWidget.cpp \ +	$$PWD/QtTreeWidgetItem.cpp  + +HEADERS += $$PWD/RosterDelegate.h \ +	$$PWD/RosterItem.h \ +	$$PWD/RosterModel.h \ +	$$PWD/QtTreeWidget.h \ +	$$PWD/QtTreeWidgetFactory.h \ +	$$PWD/QtTreeWidgetItem.h  diff --git a/Swift/QtUI/Roster/Roster.pro b/Swift/QtUI/Roster/Roster.pro new file mode 100644 index 0000000..c829d5c --- /dev/null +++ b/Swift/QtUI/Roster/Roster.pro @@ -0,0 +1,12 @@ +include(Roster.pri) +SOURCES += main.cpp + +DEPENDPATH += ../. ../../.. ../../../3rdParty/Boost +INCLUDEPATH += ../. ../../.. ../../../3rdParty/Boost + +DEFINES += BOOST_SIGNALS_NAMESPACE=bsignals BOOST_ALL_NO_LIB + +exists(../config.pri) { +	LIBS += ../../Controllers/Controllers.a ../../../Swiften/Swiften.a +	include(../config.pri) +}
\ No newline at end of file diff --git a/Swift/QtUI/QtTreeWidgetItem.cpp b/Swift/QtUI/Roster/RosterDelegate.cpp index e69de29..e69de29 100644 --- a/Swift/QtUI/QtTreeWidgetItem.cpp +++ b/Swift/QtUI/Roster/RosterDelegate.cpp diff --git a/Swift/QtUI/Roster/RosterDelegate.h b/Swift/QtUI/Roster/RosterDelegate.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Swift/QtUI/Roster/RosterDelegate.h diff --git a/Swift/QtUI/Roster/RosterItem.cpp b/Swift/QtUI/Roster/RosterItem.cpp new file mode 100644 index 0000000..14b4525 --- /dev/null +++ b/Swift/QtUI/Roster/RosterItem.cpp @@ -0,0 +1,28 @@ +#include "RosterItem.h" + +namespace Swift { +	 +RosterItem::RosterItem(RosterItem* parent) { +	parent_ = parent; +} + +RosterItem* RosterItem::getParentItem() { +	return parent_; +} + +void RosterItem::addChild(RosterItem* child) { +	children_.append(child); +} + +int RosterItem::rowCount() { +	return children_.size(); +} + +int RosterItem::rowOf(RosterItem* item) { +	return children_.indexOf(item);; +} +	 +RosterItem* RosterItem::getItem(int row) { +	return children_[row]; +} +}
\ No newline at end of file diff --git a/Swift/QtUI/Roster/RosterItem.h b/Swift/QtUI/Roster/RosterItem.h new file mode 100644 index 0000000..f7cd804 --- /dev/null +++ b/Swift/QtUI/Roster/RosterItem.h @@ -0,0 +1,20 @@ +#pragma once + +#include <QList> + +namespace Swift { +	class RosterItem { +	public: +		RosterItem(RosterItem* parent); +		~RosterItem(); +		void addChild(RosterItem* child); +		RosterItem* getParentItem(); +		int rowCount(); +		int rowOf(RosterItem* item); +		RosterItem* getItem(int row); +	private: +		QList<RosterItem*> children_; +		RosterItem* parent_; +	}; +	 +}
\ No newline at end of file diff --git a/Swift/QtUI/Roster/RosterModel.cpp b/Swift/QtUI/Roster/RosterModel.cpp new file mode 100644 index 0000000..2c9a2cc --- /dev/null +++ b/Swift/QtUI/Roster/RosterModel.cpp @@ -0,0 +1,56 @@ +#include "RosterModel.h" + +namespace Swift { + +RosterModel::RosterModel(RosterItem* tree) { +	tree_ = tree; +} + +RosterModel::~RosterModel() { +	 +} + +int RosterModel::columnCount(const QModelIndex& parent) const { +	Q_UNUSED(parent); +	return 1; +} + +QVariant RosterModel::data(const QModelIndex& index, int role) const { +	if (!index.isValid()) { +		return QVariant(); +	} +	return QVariant("bob"); +} + +QModelIndex RosterModel::index(int row, int column, const QModelIndex& parent) const { +	RosterItem* parentItem = parent.isValid() ? static_cast<RosterItem*>(parent.internalPointer()) : tree_; +	Q_ASSERT(parentItem); +	 +	return row < parentItem->rowCount() ? createIndex(row, column, parentItem->getItem(row)) : QModelIndex(); +} + +QModelIndex RosterModel::parent(const QModelIndex& index) const { +	if (!index.isValid()) { +		return QModelIndex(); +	} +	 +	RosterItem* item = static_cast<RosterItem*>(index.internalPointer()); +	Q_ASSERT(item); + +	RosterItem* parentItem = item->getParentItem(); +	return parentItem == tree_ ? QModelIndex() : createIndex(parentItem->getParentItem()->rowOf(parentItem), 0, parentItem); + +} + +int RosterModel::rowCount(const QModelIndex& parent) const { +	if (!parent.isValid()) { +		return 0; +	} +	 +	RosterItem* item = static_cast<RosterItem*>(parent.internalPointer()); +	Q_ASSERT(item); +	 +	return item->rowCount(); +} + +}
\ No newline at end of file diff --git a/Swift/QtUI/Roster/RosterModel.h b/Swift/QtUI/Roster/RosterModel.h new file mode 100644 index 0000000..a958f0d --- /dev/null +++ b/Swift/QtUI/Roster/RosterModel.h @@ -0,0 +1,22 @@ +#pragma once + +#include "Swift/QtUI/Roster/RosterItem.h" + +#include <QAbstractItemModel> +#include <QList> + +namespace Swift { +class RosterModel : public QAbstractItemModel { +public: +	RosterModel(RosterItem* tree); +	~RosterModel(); +	int columnCount(const QModelIndex& parent = QModelIndex()) const; +	QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; +	QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const; +	QModelIndex parent(const QModelIndex& index) const; +	int rowCount(const QModelIndex& parent = QModelIndex()) const; +private: +	RosterItem* tree_; +}; + +}
\ No newline at end of file diff --git a/Swift/QtUI/Roster/main.cpp b/Swift/QtUI/Roster/main.cpp new file mode 100644 index 0000000..f3623ac --- /dev/null +++ b/Swift/QtUI/Roster/main.cpp @@ -0,0 +1,31 @@ +#include <QtGui> +#include "QtTreeWidget.h" +#include "QtTreeWidgetFactory.h" + +int main(int argc, char *argv[]) +{ +    QApplication app(argc, argv); + +    //Swift::RosterModel model; + +    //QTreeView view; +    //view.setModel(&model); +    //view.setWindowTitle("A roster"); +    //view.show(); + +	Swift::QtTreeWidgetFactory treeWidgetFactory; +	Swift::QtTreeWidget* tree = dynamic_cast<Swift::QtTreeWidget*>(treeWidgetFactory.createTreeWidget()); +	Swift::QtTreeWidgetItem* group = dynamic_cast<Swift::QtTreeWidgetItem*>(treeWidgetFactory.createTreeWidgetItem(tree)); +	group->setText("People"); +	group->setBackgroundColor(0xBBBBBB); +	Swift::QtTreeWidgetItem* item1 = dynamic_cast<Swift::QtTreeWidgetItem*>(treeWidgetFactory.createTreeWidgetItem(group)); +	Swift::QtTreeWidgetItem* item2 = dynamic_cast<Swift::QtTreeWidgetItem*>(treeWidgetFactory.createTreeWidgetItem(group)); +	Swift::QtTreeWidgetItem* item3 = dynamic_cast<Swift::QtTreeWidgetItem*>(treeWidgetFactory.createTreeWidgetItem(group)); +	Swift::QtTreeWidgetItem* item4 = dynamic_cast<Swift::QtTreeWidgetItem*>(treeWidgetFactory.createTreeWidgetItem(group)); +	item1->setText("Remko"); +	item2->setText("Kevin"); +	item3->setText("Cath"); +	item4->setText("Kim"); +	tree->show(); +    return app.exec(); +}
\ No newline at end of file diff --git a/Swift/QtUI/Swift.pro b/Swift/QtUI/Swift.pro index 0af8216..7c36c07 100644 --- a/Swift/QtUI/Swift.pro +++ b/Swift/QtUI/Swift.pro @@ -55,9 +55,6 @@ HEADERS += \  	QtSettingsProvider.h \  	QtStatusWidget.h \  	QtSwift.h \ -	QtTreeWidget.h \ -	QtTreeWidgetFactory.h \ -	QtTreeWidgetItem.h \  	QtChatView.h \  	QtChatTabs.h \  	QtSoundPlayer.h \ @@ -79,7 +76,6 @@ SOURCES += \  	QtSettingsProvider.cpp \  	QtStatusWidget.cpp \  	QtSwift.cpp \ -	QtTreeWidget.cpp \  	QtChatView.cpp	\  	QtChatTabs.cpp \  	QtSoundPlayer.cpp \ @@ -91,6 +87,8 @@ SOURCES += \  FORMS += QtJoinMUCDialog.ui +include(Roster/Roster.pri) +  RESOURCES += Swift.qrc DefaultTheme.qrc  win32 { diff --git a/Swiften/Roster/Roster.cpp b/Swiften/Roster/Roster.cpp index 61c0286..b51d8eb 100644 --- a/Swiften/Roster/Roster.cpp +++ b/Swiften/Roster/Roster.cpp @@ -39,7 +39,7 @@ GroupRosterItem* Roster::getGroup(const String& groupName) {  	}  	GroupRosterItem* group = new GroupRosterItem(groupName, treeWidget_, widgetFactory_);  	children_.push_back(group); -  items_.push_back(group); +	items_.push_back(group);  	return group;  } @@ -49,7 +49,7 @@ void Roster::handleUserAction(boost::shared_ptr<UserRosterAction> action) {  void Roster::addContact(const JID& jid, const String& name, const String& group) {  	ContactRosterItem *item = new ContactRosterItem(jid, name, getGroup(group), widgetFactory_); -  items_.push_back(item); +	items_.push_back(item);  	item->onUserAction.connect(boost::bind(&Roster::handleUserAction, this, _1));  	filterItem(item); | 
 Swift
 Swift