/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#ifndef BUFFERVIEWFILTER_H_
#define BUFFERVIEWFILTER_H_
-#include <QColor>
+#include <QAction>
#include <QDropEvent>
#include <QFlags>
-#include <QPixmap>
#include <QPointer>
#include <QSet>
#include <QSortFilterProxyModel>
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
QVariant data(const QModelIndex &index, int role) const;
- QVariant icon(const QModelIndex &index) const;
- QVariant foreground(const QModelIndex &index) const;
+ QVariant checkedState(const QModelIndex &index) const;
+
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ bool setCheckedState(const QModelIndex &index, Qt::CheckState state);
void setConfig(BufferViewConfig *config);
inline BufferViewConfig *config() const { return _config; }
virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+ QList<QAction *> actions(const QModelIndex &index);
+
public slots:
void checkPreviousCurrentForRemoval(const QModelIndex ¤t, const QModelIndex &previous);
void checkItemForRemoval(const QModelIndex &index) { checkItemsForRemoval(index, index); }
private slots:
void configInitialized();
- void showUserStateIconsChanged();
+ void enableEditMode(bool enable);
+ void showServerQueriesChanged();
private:
QPointer<BufferViewConfig> _config;
Qt::SortOrder _sortOrder;
- QColor _FgColorInactiveActivity;
- QColor _FgColorNoActivity;
- QColor _FgColorHighlightActivity;
- QColor _FgColorNewMessageActivity;
- QColor _FgColorOtherActivity;
-
- QPixmap _userOfflineIcon;
- QPixmap _userAwayIcon;
- QPixmap _userOnlineIcon;
- bool _showUserStateIcons;
-
- void loadColors();
+ bool _showServerQueries;
+ bool _editMode;
+ QAction _enableEditMode;
+ QSet<BufferId> _toAdd;
+ QSet<BufferId> _toTempRemove;
+ QSet<BufferId> _toRemove;
bool filterAcceptBuffer(const QModelIndex &) const;
bool filterAcceptNetwork(const QModelIndex &) const;
- void addBuffer(const BufferId &) const;
+ void addBuffer(const BufferId &bufferId) const;
+ void addBuffers(const QList<BufferId> &bufferIds) const;
+ static bool bufferIdLessThan(const BufferId &, const BufferId &);
};
Q_DECLARE_OPERATORS_FOR_FLAGS(BufferViewFilter::Modes)
-bool bufferIdLessThan(const BufferId &, const BufferId &);
-
#endif // BUFFERVIEWFILTER_H_