+/*****************************************
+* User Category Items (like @vh etc.)
+*****************************************/
+class UserCategoryItem : public PropertyMapItem {
+ Q_OBJECT
+ Q_PROPERTY(QString categoryId READ categoryId)
+
+public:
+ UserCategoryItem(int category, AbstractTreeItem *parent);
+
+ QString categoryId();
+ virtual quint64 id() const;
+ virtual QVariant data(int column, int role) const;
+
+ void addUser(IrcUser *ircUser);
+ bool removeUser(IrcUser *ircUser);
+
+ static int categoryFromModes(const QString &modes);
+
+private:
+ int _category;
+
+ struct Category {
+ QChar mode;
+ QString displayString;
+ inline Category(QChar mode_, QString displayString_) : mode(mode_), displayString(displayString_) {};
+ };
+
+ static const QList<Category> categories;
+};
+