}
void ChatItem::addActionsToMenu(QMenu *menu, const QPointF &pos) {
- Q_UNUSED(menu);
Q_UNUSED(pos);
+ Client::mainUi()->actionProvider()->addActions(menu, chatScene()->filter(), data(MessageModel::BufferIdRole).value<BufferId>());
}
// ************************************************************
}
void ContentsChatItem::addActionsToMenu(QMenu *menu, const QPointF &pos) {
- Q_UNUSED(pos); // we assume that the current mouse cursor pos is the point of invocation
-
if(privateData()->currentClickable.isValid()) {
Clickable click = privateData()->currentClickable;
switch(click.type) {
break;
}
} else {
-
// Buffer-specific actions
- Client::mainUi()->actionProvider()->addActions(menu, chatScene()->filter(), data(MessageModel::BufferIdRole).value<BufferId>());
+ ChatItem::addActionsToMenu(menu, pos);
}
}
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, receiver, method, 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)
_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 handleGeneralAction(ActionType, QAction *);
void handleExternalAction(ActionType, QAction *);
- void addActions(QMenu *, const QList<QModelIndex> &indexList, MessageFilter *filter, QObject *receiver, const char *slot, bool allowBufferHide);
+ void addActions(QMenu *, const QList<QModelIndex> &indexList, MessageFilter *filter, const QString &chanOrNick,
+ QObject *receiver, const char *slot, bool allowBufferHide);
bool checkRequirements(const QModelIndex &index, ItemActiveStates requiredActiveState = QFlags<ItemActiveState>(ActiveState | InactiveState));
Action * addAction(ActionType, QMenu *, bool condition = true);