#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;
public:
ChannelBufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent);
+ virtual QVariant data(int column, int role) const;
virtual inline bool isActive() const { return (bool)_ircChannel; }
virtual QString toolTip(int column) const;
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;
BufferInfoRole,
ItemTypeRole,
UserAwayRole,
- IrcUserRole
+ IrcUserRole,
+ IrcChannelRole
};
enum ItemType {
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);
* @param bufferName The bufferName we look for
* @return The id of the buffer if found, an invalid one else
*/
- BufferId bufferId(NetworkId networkId, const QString &bufferName) const;
+ BufferId bufferId(NetworkId networkId, const QString &bufferName, Qt::CaseSensitivity cs = Qt::CaseInsensitive) const;
QString bufferName(BufferId bufferId) const;
BufferInfo::Type bufferType(BufferId bufferId) const;
void checkForNewBuffers(const QModelIndex &parent, int start, int end);
private:
- int networkRow(NetworkId networkId);
- NetworkItem *findNetworkItem(NetworkId networkId);
+ int networkRow(NetworkId networkId) const;
+ NetworkItem *findNetworkItem(NetworkId networkId) const;
NetworkItem *networkItem(NetworkId networkId);
- inline BufferItem *findBufferItem(const BufferInfo &bufferInfo) { return findBufferItem(bufferInfo.bufferId()); }
- BufferItem *findBufferItem(BufferId bufferId);
+ inline BufferItem *findBufferItem(const BufferInfo &bufferInfo) const { return findBufferItem(bufferInfo.bufferId()); }
+ BufferItem *findBufferItem(BufferId bufferId) const;
BufferItem *bufferItem(const BufferInfo &bufferInfo);
QHash<BufferId, BufferItem *> _bufferItemCache;