The new 'All Buffers' view is no properly presorted.
[quassel.git] / src / client / networkmodel.h
index 807403e..4c78878 100644 (file)
 #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;
 
 /*****************************************
@@ -153,6 +140,7 @@ public:
   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;
 
@@ -289,7 +277,6 @@ public:
 
   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);
 
@@ -319,6 +306,8 @@ public:
   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);
@@ -344,6 +333,8 @@ private:
   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)