X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnickmodel.h;h=2dc3574212a1b1eea92498172dd89fba7b544945;hp=4baa1117b1f3555178b29dc5feed0486230ac5df;hb=e226a532d5f6cb4ff58edd30421386c6f8dc7d4d;hpb=57ce4f437b29e538c80029d57f39efdbb9afb328 diff --git a/src/client/nickmodel.h b/src/client/nickmodel.h index 4baa1117..2dc35742 100644 --- a/src/client/nickmodel.h +++ b/src/client/nickmodel.h @@ -18,78 +18,22 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _NICKMODEL_H_ -#define _NICKMODEL_H_ +#ifndef NICKMODEL_H +#define NICKMODEL_H -#include #include -#include -class IrcChannel; -class IrcUser; +class NetworkModel; -//! Represents the IrcUsers in a given IrcChannel. -/** This model is a wrapper around the nicks/IrcUsers stored in an IrcChannel. It provides a tree with two, - * levels, where the top-level items are the categories (such as Ops, Voiced etc), and the second-level items - * the actual nicks/users. Several roles are provided to access information about a nick. - * - * Note that the nicks are not sorted in any way. Use a FilteredNickModel instead. - */ -class NickModel : public QAbstractItemModel { - Q_OBJECT - - public: - enum NickModelRole { SortKeyRole = Qt::UserRole }; - - NickModel(IrcChannel *channel = 0, QObject *parent = 0); - virtual ~NickModel(); - - virtual QModelIndex index(int row, int col, const QModelIndex &parent) const; - virtual QModelIndex parent(const QModelIndex &index) const; - virtual int rowCount(const QModelIndex &) const; - virtual int columnCount(const QModelIndex &) const; - virtual QVariant data(const QModelIndex &, int role) const; - virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - - IrcChannel *ircChannel() const; - - QModelIndex indexOfUser(IrcUser *) const; - int categoryFromModes(const QString &modes) const; - int categoryFromIndex(const QModelIndex &index) const; - int userCategory(IrcUser *) const; - - public slots: - void setIrcChannel(IrcChannel *chan = 0); - void addUser(IrcUser *); - void removeUser(IrcUser *); - void removeUser(const QModelIndex &); - void renameUser(IrcUser *); - void changeUserModes(IrcUser *); - - private: - - IrcChannel *_ircChannel; - QVector > users; - -}; +// This is proxymodel is purely for the sorting right now +// the old nickmodel is stored for future reference in /devnotes //! This ProxyModel can be used on top of a NickModel in order to provide a sorted nicklist and to hide unused categories. -class FilteredNickModel : public QSortFilterProxyModel { +class NickModel : public QSortFilterProxyModel { Q_OBJECT public: - FilteredNickModel(QObject *parent = 0); - virtual ~FilteredNickModel(); - - virtual void setSourceModel(QAbstractItemModel *model); - - private slots: - void sourceRowsInserted(const QModelIndex &, int, int); - void sourceRowsRemoved(const QModelIndex &, int, int); - - protected: - virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; - + NickModel(NetworkModel *parent = 0); }; #endif