--- psi/src/psiiconset.cpp	2009-04-28 21:42:14 +0400
+++ psi-dev/src/psiiconset.cpp	2009-05-27 20:12:01 +0400
@@ -42,8 +42,8 @@
 private:
 	PsiIconset *psi;
 public:
-	Iconset system;
-	QString cur_system, cur_status;
+	Iconset system, psiplus;
+	QString cur_system, cur_status, cur_psiplus;
 	QStringList cur_emoticons;
 	QMap<QString, QString> cur_service_status;
 	QMap<QString, QString> cur_custom_status;
@@ -253,6 +254,20 @@
 		return def;
 	}
 
+	Iconset psiplusIconset(bool *ok)
+	{
+		Iconset def;
+		*ok = def.load( iconsetPath("psiplus/default") );
+
+		Iconset is;
+		is.load ( iconsetPath("psiplus/psiplus.jisp") );
+		loadIconset(&def, &is);
+		
+		stripFirstAnimFrame( def );
+
+		return def;
+	}
+
 	Iconset *defaultRosterIconset(bool *ok)
 	{
 		Iconset *def = new Iconset;
@@ -397,6 +412,19 @@
 	return ok;
 }
 
+bool PsiIconset::loadPsiplus()
+{
+	bool ok = true;
+	QString cur_psiplus("psiplus.jisp");
+	Iconset psiplus = d->psiplusIconset(&ok);
+
+	d->loadIconset(&d->psiplus, &psiplus);
+	d->psiplus.addToFactory();
+	d->cur_psiplus = cur_psiplus;
+
+	return ok;
+}
+
 bool PsiIconset::loadRoster()
 {
 	// load roster
@@ -419,6 +447,7 @@
 	if (!loadSystem() || !loadRoster())
 		return false;
 
+	loadPsiplus();
 	loadEmoticons();
 	return true;
 }
--- psi/src/psiiconset.h	2009-04-28 21:42:15 +0400
+++ psi-dev/src/psiiconset.h	2009-05-27 20:07:38 +0400
@@ -46,6 +46,7 @@
 
 	QHash<QString, Iconset*> roster;
 	QList<Iconset*> emoticons;
+	Iconset psiplus;
 	const Iconset &system() const;
 	void stripFirstAnimFrame(Iconset *);
 	static void removeAnimation(Iconset *);
@@ -96,6 +96,7 @@
 
 	static PsiIconset* instance_;
 
+	bool loadPsiplus();
 	bool loadRoster();
 	void loadEmoticons();
 }; 
