summaryrefslogtreecommitdiffstats
path: root/src/server/net/client.cpp
diff options
context:
space:
mode:
authorSimon Rettberg2016-10-19 23:56:34 +0200
committerSimon Rettberg2016-10-19 23:56:34 +0200
commit6534027c5ce5579c4293aa346cadf0850aa02157 (patch)
treef9974a9dbed4ca33a4e167e05cde1dc7915b31a4 /src/server/net/client.cpp
parent[client] Update translations (diff)
downloadpvs2-6534027c5ce5579c4293aa346cadf0850aa02157.tar.gz
pvs2-6534027c5ce5579c4293aa346cadf0850aa02157.tar.xz
pvs2-6534027c5ce5579c4293aa346cadf0850aa02157.zip
Implement "Attention" feature (virtual hand-raising)
Diffstat (limited to 'src/server/net/client.cpp')
-rw-r--r--src/server/net/client.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/server/net/client.cpp b/src/server/net/client.cpp
index 59211b7..7224339 100644
--- a/src/server/net/client.cpp
+++ b/src/server/net/client.cpp
@@ -91,6 +91,17 @@ void Client::sendMessage(NetworkMessage& message)
}
/******************************************************************************/
+void Client::removeAttentionInternal()
+{
+ NetworkMessage msg;
+ _wantsAttention = false;
+ msg.setField(_ID, _ATTENTION);
+ msg.setField(_ENABLE, __FALSE);
+ sendMessage(msg);
+ emit stateChanged();
+}
+
+/******************************************************************************/
void Client::requestThumb(const int width, const int height)
{
if (_socket->state() != QAbstractSocket::ConnectedState) {
@@ -113,9 +124,8 @@ void Client::onDataArrival()
return;
}
- bool ret;
while (_socket->bytesAvailable() > 0) {
- ret = _fromClient.readMessage(_socket); // let the message read data from socket
+ int ret = _fromClient.readMessage(_socket); // let the message read data from socket
if (ret == NM_READ_FAILED) { // error parsing msg, disconnect client!
this->disconnect();
return;
@@ -175,7 +185,6 @@ void Client::handleMsg()
const int projectionSource = (int)_fromClient.getFieldString("CLIENTID").toInt();
if (_fromClient.getFieldString("ENABLED").toInt() != 0) {
qDebug() << "Client " << _name << " started its VNC client (watching " << projectionSource << ")";
- _projectionSource = projectionSource;
_isActiveVncClient = true;
emit vncClientStateChange(this);
} else {
@@ -184,6 +193,9 @@ void Client::handleMsg()
emit vncClientStateChange(this);
}
emit stateChanged();
+ } else if (id == _ATTENTION) {
+ _wantsAttention = _fromClient.getFieldString(_ENABLE) == __TRUE;
+ emit stateChanged();
}
return;
}
@@ -301,7 +313,6 @@ bool Client::isManagerMachine()
{
foreach (const QHostAddress & address, QNetworkInterface::allAddresses())
if (address != QHostAddress(QHostAddress::LocalHost)
- && this != NULL
&& this->ip() == address.toString())
return true;
return false;
@@ -314,7 +325,7 @@ void Client::lockScreen(bool lock)
_locked = lock;
NetworkMessage msg;
msg.setField(_ID, _LOCK);
- msg.setField(_ENABLE, lock ? __TRUE : __FALSE);
+ msg.setField(_ENABLE, _BOOL(lock));
sendMessage(msg);
}
emit stateChanged();