X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fcontextmenuactionprovider.cpp;h=02542332c9a9557c060327267f0e81653ee82c49;hb=3202bf5340396b5c6b467e8d92d808b1cbbbf7fb;hp=55932e3f274487fda08dde43c3e627464b748b70;hpb=bfc818029e87656c7b7f322d04f6e168261a96f6;p=quassel.git diff --git a/src/uisupport/contextmenuactionprovider.cpp b/src/uisupport/contextmenuactionprovider.cpp index 55932e3f..02542332 100644 --- a/src/uisupport/contextmenuactionprovider.cpp +++ b/src/uisupport/contextmenuactionprovider.cpp @@ -62,7 +62,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM registerAction(NickCtcpVersion, tr("Version")); registerAction(NickCtcpTime, tr("Time")); registerAction(NickCtcpPing, tr("Ping")); - registerAction(NickCtcpFinger, tr("Finger")); + registerAction(NickCtcpClientinfo, tr("Client info")); registerAction(NickIgnoreCustom, tr("Custom...")); // these texts are only dummies! don't think about tr() here! @@ -77,6 +77,8 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM registerAction(NickOp, SmallIcon("irc-operator"), tr("Give Operator Status")); registerAction(NickDeop, SmallIcon("irc-remove-operator"), tr("Take Operator Status")); + registerAction(NickHalfop, SmallIcon("irc-voice"), tr("Give Half-Operator Status")); + registerAction(NickDehalfop, SmallIcon("irc-unvoice"), tr("Take Half-Operator Status")); registerAction(NickVoice, SmallIcon("irc-voice"), tr("Give Voice")); registerAction(NickDevoice, SmallIcon("irc-unvoice"), tr("Take Voice")); registerAction(NickKick, SmallIcon("im-kick-user"), tr("Kick From Channel")); @@ -106,13 +108,16 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM nickCtcpMenu->addAction(action(NickCtcpPing)); nickCtcpMenu->addAction(action(NickCtcpVersion)); nickCtcpMenu->addAction(action(NickCtcpTime)); - nickCtcpMenu->addAction(action(NickCtcpFinger)); + nickCtcpMenu->addAction(action(NickCtcpClientinfo)); _nickCtcpMenuAction = new Action(tr("CTCP"), 0); _nickCtcpMenuAction->setMenu(nickCtcpMenu); QMenu *nickModeMenu = new QMenu(); nickModeMenu->addAction(action(NickOp)); nickModeMenu->addAction(action(NickDeop)); + // this is where the halfops will be placed if available + nickModeMenu->addAction(action(NickHalfop)); + nickModeMenu->addAction(action(NickDehalfop)); nickModeMenu->addAction(action(NickVoice)); nickModeMenu->addAction(action(NickDevoice)); nickModeMenu->addSeparator(); @@ -318,6 +323,16 @@ void ContextMenuActionProvider::addIrcUserActions(QMenu *menu, const QModelIndex IrcUser *ircUser = qobject_cast(index.data(NetworkModel::IrcUserRole).value()); if(ircUser) { + Network *network = ircUser->network(); + // only show entries for usermode +h if server supports it + if(network && network->prefixModes().contains('h')) { + action(NickHalfop)->setVisible(true); + action(NickDehalfop)->setVisible(true); + } + else { + action(NickHalfop)->setVisible(false); + action(NickDehalfop)->setVisible(false); + } // ignoreliststuff QString bufferName; BufferInfo bufferInfo = index.data(NetworkModel::BufferInfoRole).value();