#include "network.h"
#include "networkmodel.h"
#include "buffermodel.h"
-#include "nickmodel.h"
#include "quasselui.h"
#include "signalproxy.h"
#include "util.h"
mainUi(0),
_networkModel(0),
_bufferModel(0),
- _nickModel(0),
_connectedToCore(false),
_syncedToCore(false)
{
_networkModel, SLOT(bufferUpdated(BufferInfo)));
_bufferModel = new BufferModel(_networkModel);
- _nickModel = new NickModel(_networkModel);
SignalProxy *p = signalProxy();
p->attachSignal(this, SIGNAL(sendSessionData(const QString &, const QVariant &)),
return instance()->_bufferModel;
}
-NickModel *Client::nickModel() {
- return instance()->_nickModel;
-}
-
-
SignalProxy *Client::signalProxy() {
return instance()->_signalProxy;
}
class BufferModel;
class IrcUser;
class IrcChannel;
-class NickModel;
class SignalProxy;
struct NetworkInfo;
static NetworkModel *networkModel();
static BufferModel *bufferModel();
- static NickModel *nickModel();
static SignalProxy *signalProxy();
static AbstractUiMsg *layoutMsg(const Message &);
QPointer<AbstractUi> mainUi;
QPointer<NetworkModel> _networkModel;
QPointer<BufferModel> _bufferModel;
- QPointer<NickModel> _nickModel;
ClientMode clientMode;
DEPMOD = common
QT_MOD = core network gui
SRCS += buffer.cpp treemodel.cpp networkmodel.cpp buffermodel.cpp client.cpp clientsettings.cpp clientsyncer.cpp \
- mappedselectionmodel.cpp modelpropertymapper.cpp nickmodel.cpp selectionmodelsynchronizer.cpp
+ mappedselectionmodel.cpp modelpropertymapper.cpp selectionmodelsynchronizer.cpp
HDRS += buffer.h treemodel.h networkmodel.h buffermodel.h client.h clientsettings.h clientsyncer.h quasselui.h \
- mappedselectionmodel.h modelpropertymapper.h nickmodel.h selectionmodelsynchronizer.h
+ mappedselectionmodel.h modelpropertymapper.h selectionmodelsynchronizer.h
QVariant UserCategoryItem::data(int column, int role) const {
switch(role) {
+ case NetworkModel::ItemActiveRole:
+ return true;
case NetworkModel::ItemTypeRole:
return NetworkModel::UserCategoryItemType;
case NetworkModel::BufferIdRole:
QVariant IrcUserItem::data(int column, int role) const {
switch(role) {
+ case NetworkModel::ItemActiveRole:
+ return !_ircUser->isAway();
case NetworkModel::ItemTypeRole:
return NetworkModel::IrcUserItemType;
case NetworkModel::BufferIdRole:
#include "nickview.h"
#include "client.h"
#include "networkmodel.h"
-#include "nickmodel.h"
+#include "nickviewfilter.h"
NickListWidget::NickListWidget(QWidget *parent)
: QWidget(parent),
ui.stackedWidget->setCurrentWidget(nickViews.value(bufferId));
} else {
NickView *view = new NickView(this);
- view->setModel(Client::nickModel());
- view->setRootIndex(Client::nickModel()->mapFromSource(bufferIdx));
+ NickViewFilter *filter = new NickViewFilter(Client::networkModel());
+ view->setModel(filter);
+ view->setRootIndex(filter->mapFromSource(bufferIdx));
nickViews[bufferId] = view;
ui.stackedWidget->addWidget(view);
ui.stackedWidget->setCurrentWidget(view);
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#include "nickmodel.h"
+#include "nickviewfilter.h"
#include "networkmodel.h"
+#include <QColor>
/******************************************************************************************
- * NickModel
+ * NickViewFilter
******************************************************************************************/
-NickModel::NickModel(NetworkModel *parent)
+NickViewFilter::NickViewFilter(NetworkModel *parent)
: QSortFilterProxyModel(parent)
{
setSourceModel(parent);
setSortCaseSensitivity(Qt::CaseInsensitive);
}
+QVariant NickViewFilter::data(const QModelIndex &index, int role) const {
+ if(role == Qt::ForegroundRole)
+ return foreground(index);
+ else
+ return QSortFilterProxyModel::data(index, role);
+}
+
+QVariant NickViewFilter::foreground(const QModelIndex &index) const {
+ if(!index.data(NetworkModel::ItemActiveRole).toBool())
+ return QColor(Qt::gray);
+
+ return QColor(Qt::black);
+
+ // FIXME:: make colors configurable;
+}
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#ifndef NICKMODEL_H
-#define NICKMODEL_H
+#ifndef NICKVIEWFILTER_H
+#define NICKVIEWFILTER_H
#include <QSortFilterProxyModel>
// 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 NickModel : public QSortFilterProxyModel {
+class NickViewFilter : public QSortFilterProxyModel {
Q_OBJECT
- public:
- NickModel(NetworkModel *parent = 0);
+public:
+ NickViewFilter(NetworkModel *parent = 0);
+ QVariant data(const QModelIndex &index, int role) const;
+ QVariant foreground(const QModelIndex &index) const;
};
#endif
DEPMOD = common client
QT_MOD = core gui network
-SRCS += bufferview.cpp bufferviewfilter.cpp inputline.cpp nickview.cpp settingspage.cpp tabcompleter.cpp uisettings.cpp uistyle.cpp uistylesettings.cpp
-HDRS += bufferview.h bufferviewfilter.h inputline.h nickview.h settingspage.h tabcompleter.h uisettings.h uistyle.h uistylesettings.h
+SRCS += bufferview.cpp bufferviewfilter.cpp nickviewfilter.cpp inputline.cpp nickview.cpp settingspage.cpp tabcompleter.cpp uisettings.cpp uistyle.cpp uistylesettings.cpp
+HDRS += bufferview.h bufferviewfilter.h nickviewfilter.h inputline.h nickview.h settingspage.h tabcompleter.h uisettings.h uistyle.h uistylesettings.h
FORMNAMES =
quasselVersion = "0.2.0-pre";
quasselDate = "2008-01-30";
- quasselBuild = 415;
+ quasselBuild = 419;
//! Minimum client build number the core needs
clientBuildNeeded = 358;