#ifndef NETWORKMODEL_H
#define NETWORKMODEL_H
-#include <QtCore>
-
-#include "treemodel.h"
#include "bufferinfo.h"
-
-#include <QPointer>
-
-class BufferInfo;
-
-#include "selectionmodelsynchronizer.h"
-#include "modelpropertymapper.h"
#include "clientsettings.h"
-#include "ircchannel.h"
-#include "ircuser.h"
#include "message.h"
#include "network.h"
+#include "treemodel.h"
-class MappedSelectionModel;
-class QAbstractItemView;
class BufferItem;
/*****************************************
QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *parent);
virtual QVariant data(int column, int role) const;
+ virtual bool setData(int column, const QVariant &value, int role);
virtual inline bool isActive() const { return (bool)_ircUser; }
virtual QString toolTip(int column) const;
public slots:
void attachIrcUser(IrcUser *ircUser);
- void ircUserDestroyed();
+ void ircUserQuited();
private:
IrcUser *_ircUser;
void userModeChanged(IrcUser *ircUser);
private slots:
- void ircChannelDestroyed();
+ void ircChannelParted();
private:
IrcChannel *_ircChannel;
virtual QString toolTip(int column) const;
private slots:
- inline void ircUserDestroyed() { parent()->removeChild(this); }
+ inline void ircUserQuited() { parent()->removeChild(this); }
private:
QPointer<IrcUser> _ircUser;
virtual QStringList mimeTypes() const;
virtual QMimeData *mimeData(const QModelIndexList &) const;
- virtual bool dropMimeData(const QMimeData *, Qt::DropAction, int, int, const QModelIndex &);
void attachNetwork(Network *network);
QString networkName(BufferId bufferId) const;
inline QList<BufferId> allBufferIds() const { return _bufferItemCache.keys(); }
+ QList<BufferId> allBufferIdsSorted() const;
+ void sortBufferIds(QList<BufferId> &bufferIds) const;
public slots:
void bufferUpdated(BufferInfo bufferInfo);
BufferItem *findBufferItem(BufferId bufferId) const;
BufferItem *bufferItem(const BufferInfo &bufferInfo);
+ static bool bufferItemLessThan(const BufferItem *left, const BufferItem *right);
+
QHash<BufferId, BufferItem *> _bufferItemCache;
};
Q_DECLARE_OPERATORS_FOR_FLAGS(NetworkModel::ItemTypes)