/***************************************************************************
- * 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 *
void NetworkModelActionProvider::addActions(QMenu *menu, BufferId bufId, QObject *receiver, const char *method) {
if(!bufId.isValid())
return;
- _messageFilter = 0;
- _contextItem = QString();
addActions(menu, Client::networkModel()->bufferIndex(bufId), receiver, method);
}
void NetworkModelActionProvider::addActions(QMenu *menu, const QModelIndex &index, QObject *receiver, const char *method, bool isCustomBufferView) {
if(!index.isValid())
return;
- _messageFilter = 0;
- _contextItem = QString();
- addActions(menu, QList<QModelIndex>() << index, receiver, method, isCustomBufferView);
+ addActions(menu, QList<QModelIndex>() << index, 0, QString(), receiver, method, isCustomBufferView);
}
void NetworkModelActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, QObject *receiver, const char *slot) {
void NetworkModelActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, const QString &chanOrNick, QObject *receiver, const char *method) {
if(!filter)
return;
- _messageFilter = filter;
- _contextItem = chanOrNick;
- addActions(menu, QList<QModelIndex>() << Client::networkModel()->bufferIndex(msgBuffer), receiver, method);
+ addActions(menu, QList<QModelIndex>() << Client::networkModel()->bufferIndex(msgBuffer), filter, chanOrNick, receiver, method, false);
+}
+
+void NetworkModelActionProvider::addActions(QMenu *menu, const QList<QModelIndex> &indexList, QObject *receiver, const char *method, bool isCustomBufferView) {
+ addActions(menu, indexList, 0, QString(), receiver, method, isCustomBufferView);
}
// add a list of actions sensible for the current item(s)
void NetworkModelActionProvider::addActions(QMenu *menu,
const QList<QModelIndex> &indexList,
+ MessageFilter *filter,
+ const QString &contextItem,
QObject *receiver,
const char *method,
bool isCustomBufferView)
return;
_indexList = indexList;
+ _messageFilter = filter;
+ _contextItem = contextItem;
_receiver = receiver;
_method = method;
void NetworkModelActionProvider::addBufferItemActions(QMenu *menu, const QModelIndex &index, bool isCustomBufferView) {
BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
+ menu->addSeparator();
switch(bufferInfo.type()) {
case BufferInfo::ChannelBuffer:
addAction(BufferJoin, menu, index, InactiveState);
void NetworkModelActionProvider::removeBuffers(const QModelIndexList &indexList) {
QList<BufferInfo> inactive;
foreach(QModelIndex index, indexList) {
- if(!index.data(NetworkModel::ItemActiveRole).toBool()) {
- BufferInfo info = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
- if(info.isValid())
- inactive << info;
+ BufferInfo info = index.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
+ if(info.isValid()) {
+ if(info.type() == BufferInfo::QueryBuffer
+ || (info.type() == BufferInfo::ChannelBuffer && !index.data(NetworkModel::ItemActiveRole).toBool()))
+ inactive << info;
}
}
QString msg;