X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fcontextmenuactionprovider.cpp;fp=src%2Fuisupport%2Fnetworkmodelactionprovider.cpp;h=8ab622e8c0f01b46620c82ca9e8054d2e4f3ec89;hp=9c817bfa3967e56b9d7e2bc1c9aef0edb5b05d6f;hb=a540a0285feef171e16fd6225b0e045fc5fc52e4;hpb=0d8b43cb8f3e1cedd57983c66f2b1108e1df010f diff --git a/src/uisupport/networkmodelactionprovider.cpp b/src/uisupport/contextmenuactionprovider.cpp similarity index 86% rename from src/uisupport/networkmodelactionprovider.cpp rename to src/uisupport/contextmenuactionprovider.cpp index 9c817bfa..8ab622e8 100644 --- a/src/uisupport/networkmodelactionprovider.cpp +++ b/src/uisupport/contextmenuactionprovider.cpp @@ -22,7 +22,7 @@ #include #include -#include "networkmodelactionprovider.h" +#include "contextmenuactionprovider.h" #include "buffermodel.h" #include "buffersettings.h" @@ -31,8 +31,8 @@ #include "network.h" #include "util.h" -NetworkModelActionProvider::NetworkModelActionProvider(QObject *parent) -: AbstractActionProvider(parent), +ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) +: QObject(parent), _actionCollection(new ActionCollection(this)), _messageFilter(0), _receiver(0) @@ -114,7 +114,7 @@ NetworkModelActionProvider::NetworkModelActionProvider(QObject *parent) _nickModeMenuAction->setMenu(nickModeMenu); } -NetworkModelActionProvider::~NetworkModelActionProvider() { +ContextMenuActionProvider::~ContextMenuActionProvider() { _hideEventsMenuAction->menu()->deleteLater(); _hideEventsMenuAction->deleteLater(); _nickCtcpMenuAction->menu()->deleteLater(); @@ -123,11 +123,11 @@ NetworkModelActionProvider::~NetworkModelActionProvider() { _nickModeMenuAction->deleteLater(); } -void NetworkModelActionProvider::registerAction(ActionType type, const QString &text, bool checkable) { +void ContextMenuActionProvider::registerAction(ActionType type, const QString &text, bool checkable) { registerAction(type, QPixmap(), text, checkable); } -void NetworkModelActionProvider::registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable) { +void ContextMenuActionProvider::registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable) { Action *act; if(icon.isNull()) act = new Action(text, this); @@ -141,34 +141,34 @@ void NetworkModelActionProvider::registerAction(ActionType type, const QPixmap & _actionByType[type] = act; } -void NetworkModelActionProvider::addActions(QMenu *menu, BufferId bufId, QObject *receiver, const char *method) { +void ContextMenuActionProvider::addActions(QMenu *menu, BufferId bufId, QObject *receiver, const char *method) { if(!bufId.isValid()) return; addActions(menu, Client::networkModel()->bufferIndex(bufId), receiver, method); } -void NetworkModelActionProvider::addActions(QMenu *menu, const QModelIndex &index, QObject *receiver, const char *method, bool isCustomBufferView) { +void ContextMenuActionProvider::addActions(QMenu *menu, const QModelIndex &index, QObject *receiver, const char *method, bool isCustomBufferView) { if(!index.isValid()) return; addActions(menu, QList() << index, 0, QString(), receiver, method, isCustomBufferView); } -void NetworkModelActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, QObject *receiver, const char *slot) { +void ContextMenuActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, QObject *receiver, const char *slot) { addActions(menu, filter, msgBuffer, QString(), receiver, slot); } -void NetworkModelActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, const QString &chanOrNick, QObject *receiver, const char *method) { +void ContextMenuActionProvider::addActions(QMenu *menu, MessageFilter *filter, BufferId msgBuffer, const QString &chanOrNick, QObject *receiver, const char *method) { if(!filter) return; addActions(menu, QList() << Client::networkModel()->bufferIndex(msgBuffer), filter, chanOrNick, receiver, method, false); } -void NetworkModelActionProvider::addActions(QMenu *menu, const QList &indexList, QObject *receiver, const char *method, bool isCustomBufferView) { +void ContextMenuActionProvider::addActions(QMenu *menu, const QList &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, +void ContextMenuActionProvider::addActions(QMenu *menu, const QList &indexList, MessageFilter *filter, const QString &contextItem, @@ -244,7 +244,7 @@ void NetworkModelActionProvider::addActions(QMenu *menu, } } -void NetworkModelActionProvider::addNetworkItemActions(QMenu *menu, const QModelIndex &index) { +void ContextMenuActionProvider::addNetworkItemActions(QMenu *menu, const QModelIndex &index) { NetworkId networkId = index.data(NetworkModel::NetworkIdRole).value(); if(!networkId.isValid()) return; @@ -261,7 +261,7 @@ void NetworkModelActionProvider::addNetworkItemActions(QMenu *menu, const QModel } -void NetworkModelActionProvider::addBufferItemActions(QMenu *menu, const QModelIndex &index, bool isCustomBufferView) { +void ContextMenuActionProvider::addBufferItemActions(QMenu *menu, const QModelIndex &index, bool isCustomBufferView) { BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value(); menu->addSeparator(); @@ -298,7 +298,7 @@ void NetworkModelActionProvider::addBufferItemActions(QMenu *menu, const QModelI } } -void NetworkModelActionProvider::addIrcUserActions(QMenu *menu, const QModelIndex &index) { +void ContextMenuActionProvider::addIrcUserActions(QMenu *menu, const QModelIndex &index) { // this can be called: a) as a nicklist context menu (index has IrcUserItemType) // b) as a query buffer context menu (index has BufferItemType and is a QueryBufferItem) // c) right-click in a query chatview (same as b), index will be the corresponding QueryBufferItem) @@ -325,7 +325,7 @@ void NetworkModelActionProvider::addIrcUserActions(QMenu *menu, const QModelInde /******** Helper Functions ***********************************************************************/ -bool NetworkModelActionProvider::checkRequirements(const QModelIndex &index, ItemActiveStates requiredActiveState) { +bool ContextMenuActionProvider::checkRequirements(const QModelIndex &index, ItemActiveStates requiredActiveState) { if(!index.isValid()) return false; @@ -339,19 +339,19 @@ bool NetworkModelActionProvider::checkRequirements(const QModelIndex &index, Ite return true; } -Action * NetworkModelActionProvider::addAction(ActionType type , QMenu *menu, const QModelIndex &index, ItemActiveStates requiredActiveState) { +Action * ContextMenuActionProvider::addAction(ActionType type , QMenu *menu, const QModelIndex &index, ItemActiveStates requiredActiveState) { return addAction(action(type), menu, checkRequirements(index, requiredActiveState)); } -Action * NetworkModelActionProvider::addAction(Action *action , QMenu *menu, const QModelIndex &index, ItemActiveStates requiredActiveState) { +Action * ContextMenuActionProvider::addAction(Action *action , QMenu *menu, const QModelIndex &index, ItemActiveStates requiredActiveState) { return addAction(action, menu, checkRequirements(index, requiredActiveState)); } -Action * NetworkModelActionProvider::addAction(ActionType type , QMenu *menu, bool condition) { +Action * ContextMenuActionProvider::addAction(ActionType type , QMenu *menu, bool condition) { return addAction(action(type), menu, condition); } -Action * NetworkModelActionProvider::addAction(Action *action , QMenu *menu, bool condition) { +Action * ContextMenuActionProvider::addAction(Action *action , QMenu *menu, bool condition) { if(condition) { menu->addAction(action); action->setVisible(true); @@ -361,21 +361,21 @@ Action * NetworkModelActionProvider::addAction(Action *action , QMenu *menu, boo return action; } -void NetworkModelActionProvider::addHideEventsMenu(QMenu *menu, BufferId bufferId) { +void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, BufferId bufferId) { if(BufferSettings(bufferId).hasFilter()) addHideEventsMenu(menu, BufferSettings(bufferId).messageFilter()); else addHideEventsMenu(menu); } -void NetworkModelActionProvider::addHideEventsMenu(QMenu *menu, MessageFilter *msgFilter) { +void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, MessageFilter *msgFilter) { if(BufferSettings(msgFilter->idString()).hasFilter()) addHideEventsMenu(menu, BufferSettings(msgFilter->idString()).messageFilter()); else addHideEventsMenu(menu); } -void NetworkModelActionProvider::addHideEventsMenu(QMenu *menu, int filter) { +void ContextMenuActionProvider::addHideEventsMenu(QMenu *menu, int filter) { action(HideApplyToAll)->setEnabled(filter != -1); action(HideUseDefaults)->setEnabled(filter != -1); if(filter == -1) @@ -391,7 +391,7 @@ void NetworkModelActionProvider::addHideEventsMenu(QMenu *menu, int filter) { menu->addAction(_hideEventsMenuAction); } -QString NetworkModelActionProvider::nickName(const QModelIndex &index) const { +QString ContextMenuActionProvider::nickName(const QModelIndex &index) const { IrcUser *ircUser = qobject_cast(index.data(NetworkModel::IrcUserRole).value()); if(ircUser) return ircUser->nick(); @@ -405,7 +405,7 @@ QString NetworkModelActionProvider::nickName(const QModelIndex &index) const { return bufferInfo.bufferName(); // FIXME this might break with merged queries maybe } -BufferId NetworkModelActionProvider::findQueryBuffer(const QModelIndex &index, const QString &predefinedNick) const { +BufferId ContextMenuActionProvider::findQueryBuffer(const QModelIndex &index, const QString &predefinedNick) const { NetworkId networkId = index.data(NetworkModel::NetworkIdRole).value(); if(!networkId.isValid()) return BufferId(); @@ -417,11 +417,11 @@ BufferId NetworkModelActionProvider::findQueryBuffer(const QModelIndex &index, c return findQueryBuffer(networkId, nick); } -BufferId NetworkModelActionProvider::findQueryBuffer(NetworkId networkId, const QString &nick) const { +BufferId ContextMenuActionProvider::findQueryBuffer(NetworkId networkId, const QString &nick) const { return Client::networkModel()->bufferId(networkId, nick); } -void NetworkModelActionProvider::handleExternalAction(ActionType type, QAction *action) { +void ContextMenuActionProvider::handleExternalAction(ActionType type, QAction *action) { Q_UNUSED(type); if(_receiver && _method) { if(!QMetaObject::invokeMethod(_receiver, _method, Q_ARG(QAction *, action))) @@ -431,7 +431,7 @@ void NetworkModelActionProvider::handleExternalAction(ActionType type, QAction * /******** Handle Actions *************************************************************************/ -void NetworkModelActionProvider::actionTriggered(QAction *action) { +void ContextMenuActionProvider::actionTriggered(QAction *action) { ActionType type = (ActionType)action->data().toInt(); if(type > 0) { if(type & NetworkMask) @@ -454,7 +454,7 @@ void NetworkModelActionProvider::actionTriggered(QAction *action) { _receiver = 0; } -void NetworkModelActionProvider::handleNetworkAction(ActionType type, QAction *) { +void ContextMenuActionProvider::handleNetworkAction(ActionType type, QAction *) { if(!_indexList.count()) return; const Network *network = Client::network(_indexList.at(0).data(NetworkModel::NetworkIdRole).value()); @@ -474,7 +474,7 @@ void NetworkModelActionProvider::handleNetworkAction(ActionType type, QAction *) } } -void NetworkModelActionProvider::handleBufferAction(ActionType type, QAction *) { +void ContextMenuActionProvider::handleBufferAction(ActionType type, QAction *) { if(type == BufferRemove) { removeBuffers(_indexList); } else { @@ -504,7 +504,7 @@ void NetworkModelActionProvider::handleBufferAction(ActionType type, QAction *) } } -void NetworkModelActionProvider::removeBuffers(const QModelIndexList &indexList) { +void ContextMenuActionProvider::removeBuffers(const QModelIndexList &indexList) { QList inactive; foreach(QModelIndex index, indexList) { BufferInfo info = index.data(NetworkModel::BufferInfoRole).value(); @@ -532,21 +532,21 @@ void NetworkModelActionProvider::removeBuffers(const QModelIndexList &indexList) } } -void NetworkModelActionProvider::handleHideAction(ActionType type, QAction *action) { +void ContextMenuActionProvider::handleHideAction(ActionType type, QAction *action) { Q_UNUSED(action) int filter = 0; - if(NetworkModelActionProvider::action(HideJoin)->isChecked()) + if(ContextMenuActionProvider::action(HideJoin)->isChecked()) filter |= Message::Join; - if(NetworkModelActionProvider::action(HidePart)->isChecked()) + if(ContextMenuActionProvider::action(HidePart)->isChecked()) filter |= Message::Part; - if(NetworkModelActionProvider::action(HideQuit)->isChecked()) + if(ContextMenuActionProvider::action(HideQuit)->isChecked()) filter |= Message::Quit; - if(NetworkModelActionProvider::action(HideNick)->isChecked()) + if(ContextMenuActionProvider::action(HideNick)->isChecked()) filter |= Message::Nick; - if(NetworkModelActionProvider::action(HideMode)->isChecked()) + if(ContextMenuActionProvider::action(HideMode)->isChecked()) filter |= Message::Mode; - if(NetworkModelActionProvider::action(HideDayChange)->isChecked()) + if(ContextMenuActionProvider::action(HideDayChange)->isChecked()) filter |= Message::DayChange; switch(type) { @@ -586,7 +586,7 @@ void NetworkModelActionProvider::handleHideAction(ActionType type, QAction *acti }; } -void NetworkModelActionProvider::handleGeneralAction(ActionType type, QAction *action) { +void ContextMenuActionProvider::handleGeneralAction(ActionType type, QAction *action) { Q_UNUSED(action) if(!_indexList.count()) @@ -620,7 +620,7 @@ void NetworkModelActionProvider::handleGeneralAction(ActionType type, QAction *a } } -void NetworkModelActionProvider::handleNickAction(ActionType type, QAction *) { +void ContextMenuActionProvider::handleNickAction(ActionType type, QAction *) { foreach(QModelIndex index, _indexList) { NetworkId networkId = index.data(NetworkModel::NetworkIdRole).value(); if(!networkId.isValid())