diff options
author | Benjamin Jemlich <pcgod@users.sourceforge.net> | 2011-05-14 11:29:47 +0400 |
---|---|---|
committer | Benjamin Jemlich <pcgod@users.sourceforge.net> | 2011-05-14 11:29:47 +0400 |
commit | f7d7b99b56497e22dddfdfba5a6f06945ddc5261 (patch) | |
tree | d2c6c37b296cb2848964ed34423903b0c7fce23a | |
parent | ba66c4dcbf00996e2569875e067679ccc48b1fc2 (diff) |
Merge ContextActionRemove and ContextActionAdd and rename it to ContextActionModify
-rw-r--r-- | src/Message.h | 5 | ||||
-rw-r--r-- | src/Mumble.proto | 13 | ||||
-rw-r--r-- | src/mumble/MainWindow.h | 1 | ||||
-rw-r--r-- | src/mumble/Messages.cpp | 18 | ||||
-rw-r--r-- | src/murmur/Messages.cpp | 5 | ||||
-rw-r--r-- | src/murmur/MurmurIce.cpp | 34 |
6 files changed, 43 insertions, 33 deletions
diff --git a/src/Message.h b/src/Message.h index 40383576c..526e5ccff 100644 --- a/src/Message.h +++ b/src/Message.h @@ -56,7 +56,7 @@ MUMBLE_MH_MSG(ACL) \ MUMBLE_MH_MSG(QueryUsers) \ MUMBLE_MH_MSG(CryptSetup) \ - MUMBLE_MH_MSG(ContextActionAdd) \ + MUMBLE_MH_MSG(ContextActionModify) \ MUMBLE_MH_MSG(ContextAction) \ MUMBLE_MH_MSG(UserList) \ MUMBLE_MH_MSG(VoiceTarget) \ @@ -65,8 +65,7 @@ MUMBLE_MH_MSG(UserStats) \ MUMBLE_MH_MSG(RequestBlob) \ MUMBLE_MH_MSG(ServerConfig) \ - MUMBLE_MH_MSG(SuggestConfig) \ - MUMBLE_MH_MSG(ContextActionRemove) + MUMBLE_MH_MSG(SuggestConfig) class MessageHandler { public: diff --git a/src/Mumble.proto b/src/Mumble.proto index 19a955de8..d2d3c6668 100644 --- a/src/Mumble.proto +++ b/src/Mumble.proto @@ -190,19 +190,20 @@ message CryptSetup { optional bytes server_nonce = 3; } -message ContextActionAdd { +message ContextActionModify { enum Context { Server = 0x01; Channel = 0x02; User = 0x04; } + enum Operation { + Add = 0; + Remove = 1; + } required string action = 1; - required string text = 2; + optional string text = 2; optional uint32 context = 3; -} - -message ContextActionRemove { - required string action = 1; + optional Operation operation = 4; } message ContextAction { diff --git a/src/mumble/MainWindow.h b/src/mumble/MainWindow.h index 756cd27d2..b2b6eabb0 100644 --- a/src/mumble/MainWindow.h +++ b/src/mumble/MainWindow.h @@ -246,6 +246,7 @@ class MainWindow : public QMainWindow, public MessageHandler, public Ui::MainWin #define MUMBLE_MH_MSG(x) void msg##x(const MumbleProto:: x &); MUMBLE_MH_ALL #undef MUMBLE_MH_MSG + void removeContextAction(const MumbleProto::ContextActionModify &msg); }; #else diff --git a/src/mumble/Messages.cpp b/src/mumble/Messages.cpp index 505d22770..d68935724 100644 --- a/src/mumble/Messages.cpp +++ b/src/mumble/Messages.cpp @@ -628,20 +628,28 @@ void MainWindow::msgCryptSetup(const MumbleProto::CryptSetup &msg) { void MainWindow::msgContextAction(const MumbleProto::ContextAction &) { } -void MainWindow::msgContextActionAdd(const MumbleProto::ContextActionAdd &msg) { +void MainWindow::msgContextActionModify(const MumbleProto::ContextActionModify &msg) { + if (msg.has_operation() && msg.operation() == MumbleProto::ContextActionModify_Operation_Remove) { + removeContextAction(msg); + return; + } + + if (msg.has_operation() && msg.operation() != MumbleProto::ContextActionModify_Operation_Add) + return; + QAction *a = new QAction(u8(msg.text()), g.mw); a->setData(u8(msg.action())); connect(a, SIGNAL(triggered()), this, SLOT(context_triggered())); unsigned int ctx = msg.context(); - if (ctx & MumbleProto::ContextActionAdd_Context_Server) + if (ctx & MumbleProto::ContextActionModify_Context_Server) qlServerActions.append(a); - if (ctx & MumbleProto::ContextActionAdd_Context_User) + if (ctx & MumbleProto::ContextActionModify_Context_User) qlUserActions.append(a); - if (ctx & MumbleProto::ContextActionAdd_Context_Channel) + if (ctx & MumbleProto::ContextActionModify_Context_Channel) qlChannelActions.append(a); } -void MainWindow::msgContextActionRemove(const MumbleProto::ContextActionRemove &msg) { +void MainWindow::removeContextAction(const MumbleProto::ContextActionModify &msg) { QString action = u8(msg.action()); QSet<QAction *> qs; diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp index fe29fdc7d..c0a69af59 100644 --- a/src/murmur/Messages.cpp +++ b/src/murmur/Messages.cpp @@ -1372,10 +1372,7 @@ void Server::msgCryptSetup(ServerUser *uSource, MumbleProto::CryptSetup &msg) { } } -void Server::msgContextActionAdd(ServerUser *, MumbleProto::ContextActionAdd &) { -} - -void Server::msgContextActionRemove(ServerUser *, MumbleProto::ContextActionRemove &) { +void Server::msgContextActionModify(ServerUser *, MumbleProto::ContextActionModify &) { } void Server::msgContextAction(ServerUser *uSource, MumbleProto::ContextAction &msg) { diff --git a/src/murmur/MurmurIce.cpp b/src/murmur/MurmurIce.cpp index c52b188b6..45ee609f6 100644 --- a/src/murmur/MurmurIce.cpp +++ b/src/murmur/MurmurIce.cpp @@ -497,11 +497,12 @@ void MurmurIce::contextAction(const ::User *pSrc, const QString &action, unsigne qmUser.remove(action); // Remove clientside entry - MumbleProto::ContextActionRemove mpcar; - mpcar.set_action(u8(action)); + MumbleProto::ContextActionModify mpcam; + mpcam.set_action(u8(action)); + mpcam.set_operation(MumbleProto::ContextActionModify_Operation_Remove); ServerUser *su = s->qhUsers.value(session); if (su) - s->sendMessage(su, mpcar); + s->sendMessage(su, mpcam); } } @@ -1024,7 +1025,7 @@ static void impl_Server_addContextCallback(const Murmur::AMD_Server_addContextCa QMap<QString, ::Murmur::ServerContextCallbackPrx> & qmPrx = mi->qmServerContextCallbacks[server_id][session]; - if (!(ctx & (MumbleProto::ContextActionAdd_Context_Server | MumbleProto::ContextActionAdd_Context_Channel | MumbleProto::ContextActionAdd_Context_User))) { + if (!(ctx & (MumbleProto::ContextActionModify_Context_Server | MumbleProto::ContextActionModify_Context_Channel | MumbleProto::ContextActionModify_Context_User))) { cb->ice_exception(InvalidCallbackException()); return; } @@ -1034,9 +1035,10 @@ static void impl_Server_addContextCallback(const Murmur::AMD_Server_addContextCa if (qmPrx.contains(u8(action))) { // Since the server has no notion of the ctx part of the context action // make sure we remove them all clientside when overriding an old callback - MumbleProto::ContextActionRemove mpcar; - mpcar.set_action(action); - server->sendMessage(user, mpcar); + MumbleProto::ContextActionModify mpcam; + mpcam.set_action(action); + mpcam.set_operation(MumbleProto::ContextActionModify_Operation_Remove); + server->sendMessage(user, mpcam); } qmPrx.insert(u8(action), oneway); cb->ice_response(); @@ -1045,11 +1047,12 @@ static void impl_Server_addContextCallback(const Murmur::AMD_Server_addContextCa return; } - MumbleProto::ContextActionAdd mpcaa; - mpcaa.set_action(action); - mpcaa.set_text(text); - mpcaa.set_context(ctx); - server->sendMessage(user, mpcaa); + MumbleProto::ContextActionModify mpcam; + mpcam.set_action(action); + mpcam.set_text(text); + mpcam.set_context(ctx); + mpcam.set_operation(MumbleProto::ContextActionModify_Operation_Add); + server->sendMessage(user, mpcam); } static void impl_Server_removeContextCallback(const Murmur::AMD_Server_removeContextCallbackPtr cb, int server_id, const Murmur::ServerContextCallbackPrx& cbptr) { @@ -1068,9 +1071,10 @@ static void impl_Server_removeContextCallback(const Murmur::AMD_Server_removeCon // Ask clients to remove the clientside callbacks if (user) { - MumbleProto::ContextActionRemove mpcar; - mpcar.set_action(u8(act)); - server->sendMessage(user, mpcar); + MumbleProto::ContextActionModify mpcam; + mpcam.set_action(u8(act)); + mpcam.set_operation(MumbleProto::ContextActionModify_Operation_Remove); + server->sendMessage(user, mpcam); } } } |