refactor: use using enum EventTypes when possible to reduce verbosity

This commit is contained in:
sithlord48 2025-06-30 23:23:18 -04:00 committed by Chris Rizzitello
parent 8f6f014bcd
commit ab4fbd1c85
14 changed files with 122 additions and 113 deletions

View file

@ -55,10 +55,11 @@ Event::Flags Event::getFlags() const
void Event::deleteData(const Event &event) void Event::deleteData(const Event &event)
{ {
switch (event.getType()) { switch (event.getType()) {
case EventTypes::Unknown: using enum EventTypes;
case EventTypes::Quit: case Unknown:
case EventTypes::System: case Quit:
case EventTypes::Timer: case System:
case Timer:
break; break;
default: default:

View file

@ -468,12 +468,13 @@ void Client::cleanupConnecting()
void Client::cleanupConnection() void Client::cleanupConnection()
{ {
if (m_stream != nullptr) { if (m_stream != nullptr) {
m_events->removeHandler(EventTypes::StreamInputReady, m_stream->getEventTarget()); using enum EventTypes;
m_events->removeHandler(EventTypes::StreamOutputError, m_stream->getEventTarget()); m_events->removeHandler(StreamInputReady, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::StreamInputShutdown, m_stream->getEventTarget()); m_events->removeHandler(StreamOutputError, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::StreamOutputShutdown, m_stream->getEventTarget()); m_events->removeHandler(StreamInputShutdown, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::SocketDisconnected, m_stream->getEventTarget()); m_events->removeHandler(StreamOutputShutdown, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::SocketStopRetry, m_stream->getEventTarget()); m_events->removeHandler(SocketDisconnected, m_stream->getEventTarget());
m_events->removeHandler(SocketStopRetry, m_stream->getEventTarget());
cleanupStream(); cleanupStream();
} }
} }

View file

@ -318,11 +318,11 @@ void ClientApp::closeClient(Client *client)
if (client == nullptr) { if (client == nullptr) {
return; return;
} }
using enum EventTypes;
m_events->removeHandler(EventTypes::ClientConnected, client); m_events->removeHandler(ClientConnected, client);
m_events->removeHandler(EventTypes::ClientConnectionFailed, client); m_events->removeHandler(ClientConnectionFailed, client);
m_events->removeHandler(EventTypes::ClientConnectionRefused, client); m_events->removeHandler(ClientConnectionRefused, client);
m_events->removeHandler(EventTypes::ClientDisconnected, client); m_events->removeHandler(ClientDisconnected, client);
delete client; delete client;
} }

View file

@ -708,20 +708,21 @@ void KeyState::sendKeyEvent(
void *target, bool press, bool isAutoRepeat, KeyID key, KeyModifierMask mask, int32_t count, KeyButton button void *target, bool press, bool isAutoRepeat, KeyID key, KeyModifierMask mask, int32_t count, KeyButton button
) )
{ {
using enum EventTypes;
if (m_keyMap.isHalfDuplex(key, button)) { if (m_keyMap.isHalfDuplex(key, button)) {
if (isAutoRepeat) { if (isAutoRepeat) {
// ignore auto-repeat on half-duplex keys // ignore auto-repeat on half-duplex keys
} else { } else {
m_events->addEvent(Event(EventTypes::KeyStateKeyDown, target, KeyInfo::alloc(key, mask, button, 1))); m_events->addEvent(Event(KeyStateKeyDown, target, KeyInfo::alloc(key, mask, button, 1)));
m_events->addEvent(Event(EventTypes::KeyStateKeyUp, target, KeyInfo::alloc(key, mask, button, 1))); m_events->addEvent(Event(KeyStateKeyUp, target, KeyInfo::alloc(key, mask, button, 1)));
} }
} else { } else {
if (isAutoRepeat) { if (isAutoRepeat) {
m_events->addEvent(Event(EventTypes::KeyStateKeyRepeat, target, KeyInfo::alloc(key, mask, button, count))); m_events->addEvent(Event(KeyStateKeyRepeat, target, KeyInfo::alloc(key, mask, button, count)));
} else if (press) { } else if (press) {
m_events->addEvent(Event(EventTypes::KeyStateKeyDown, target, KeyInfo::alloc(key, mask, button, 1))); m_events->addEvent(Event(KeyStateKeyDown, target, KeyInfo::alloc(key, mask, button, 1)));
} else { } else {
m_events->addEvent(Event(EventTypes::KeyStateKeyUp, target, KeyInfo::alloc(key, mask, button, 1))); m_events->addEvent(Event(KeyStateKeyUp, target, KeyInfo::alloc(key, mask, button, 1)));
} }
} }
} }

View file

@ -285,9 +285,10 @@ void ServerApp::closePrimaryClient(PrimaryClient *primaryClient)
void ServerApp::closeServerScreen(deskflow::Screen *screen) void ServerApp::closeServerScreen(deskflow::Screen *screen)
{ {
if (screen != nullptr) { if (screen != nullptr) {
m_events->removeHandler(EventTypes::ScreenError, screen->getEventTarget()); using enum EventTypes;
m_events->removeHandler(EventTypes::ScreenSuspend, screen->getEventTarget()); m_events->removeHandler(ScreenError, screen->getEventTarget());
m_events->removeHandler(EventTypes::ScreenResume, screen->getEventTarget()); m_events->removeHandler(ScreenSuspend, screen->getEventTarget());
m_events->removeHandler(ScreenResume, screen->getEventTarget());
delete screen; delete screen;
} }
} }
@ -535,8 +536,8 @@ void ServerApp::handleResume()
ClientListener *ServerApp::openClientListener(const NetworkAddress &address) ClientListener *ServerApp::openClientListener(const NetworkAddress &address)
{ {
auto securityLevel = args().m_enableCrypto ? args().m_chkPeerCert ? SecurityLevel::PeerAuth : SecurityLevel::Encrypted using enum SecurityLevel;
: SecurityLevel::PlainText; auto securityLevel = args().m_enableCrypto ? args().m_chkPeerCert ? PeerAuth : Encrypted : PlainText;
auto *listen = new ClientListener(getAddress(address), getSocketFactory(), m_events, securityLevel); auto *listen = new ClientListener(getAddress(address), getSocketFactory(), m_events, securityLevel);

View file

@ -12,11 +12,12 @@
bool Fingerprint::isValid() const bool Fingerprint::isValid() const
{ {
switch (type) { switch (type) {
case Fingerprint::Type::Invalid: using enum Type;
case Invalid:
return false; return false;
case Fingerprint::Type::SHA1: case SHA1:
return data.length() == 20; return data.length() == 20;
case Fingerprint::Type::SHA256: case SHA256:
return data.length() == 32; return data.length() == 32;
default: default:
return false; return false;
@ -68,12 +69,13 @@ Fingerprint Fingerprint::fromDbLine(const QString &line)
Fingerprint::Type Fingerprint::typeFromString(const QString &type) Fingerprint::Type Fingerprint::typeFromString(const QString &type)
{ {
using enum Type;
const auto t = type.toLower(); const auto t = type.toLower();
if (t == m_type_sha1) if (t == m_type_sha1)
return Type::SHA1; return SHA1;
if (t == m_type_sha256) if (t == m_type_sha256)
return Type::SHA256; return SHA256;
return Type::Invalid; return Invalid;
} }
QString Fingerprint::typeToString(Fingerprint::Type type) QString Fingerprint::typeToString(Fingerprint::Type type)

View file

@ -626,9 +626,10 @@ void SecureSocket::checkResult(int status, int &retry)
void SecureSocket::disconnect() void SecureSocket::disconnect()
{ {
sendEvent(EventTypes::SocketStopRetry); using enum EventTypes;
sendEvent(EventTypes::SocketDisconnected); sendEvent(SocketStopRetry);
sendEvent(EventTypes::StreamInputShutdown); sendEvent(SocketDisconnected);
sendEvent(StreamInputShutdown);
} }
bool SecureSocket::verifyCertFingerprint(const QString &FingerprintDatabasePath) const bool SecureSocket::verifyCertFingerprint(const QString &FingerprintDatabasePath) const

View file

@ -485,16 +485,18 @@ ISocketMultiplexerJob *TCPSocket::serviceConnecting(ISocketMultiplexerJob *job,
ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, bool read, bool write, bool error) ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, bool read, bool write, bool error)
{ {
using enum EventTypes;
Lock lock(&m_mutex); Lock lock(&m_mutex);
if (error) { if (error) {
sendEvent(EventTypes::SocketDisconnected); sendEvent(SocketDisconnected);
onDisconnected(); onDisconnected();
return newJob(); return newJob();
} }
EJobResult readResult = kRetry; EJobResult readResult = kRetry;
EJobResult writeResult = kRetry; EJobResult writeResult = kRetry;
if (write) { if (write) {
try { try {
writeResult = doWrite(); writeResult = doWrite();
@ -502,23 +504,23 @@ ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, b
// remote read end of stream hungup. our output side // remote read end of stream hungup. our output side
// has therefore shutdown. // has therefore shutdown.
onOutputShutdown(); onOutputShutdown();
sendEvent(EventTypes::StreamOutputShutdown); sendEvent(StreamOutputShutdown);
if (!m_readable && m_inputBuffer.getSize() == 0) { if (!m_readable && m_inputBuffer.getSize() == 0) {
sendEvent(EventTypes::SocketDisconnected); sendEvent(SocketDisconnected);
m_connected = false; m_connected = false;
} }
writeResult = kNew; writeResult = kNew;
} catch (XArchNetworkDisconnected &) { } catch (XArchNetworkDisconnected &) {
// stream hungup // stream hungup
onDisconnected(); onDisconnected();
sendEvent(EventTypes::SocketDisconnected); sendEvent(SocketDisconnected);
writeResult = kNew; writeResult = kNew;
} catch (XArchNetwork &e) { } catch (XArchNetwork &e) {
// other write error // other write error
LOG((CLOG_WARN "error writing socket: %s", e.what())); LOG((CLOG_WARN "error writing socket: %s", e.what()));
onDisconnected(); onDisconnected();
sendEvent(EventTypes::StreamOutputError); sendEvent(StreamOutputError);
sendEvent(EventTypes::SocketDisconnected); sendEvent(SocketDisconnected);
writeResult = kNew; writeResult = kNew;
} }
} }
@ -528,7 +530,7 @@ ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, b
readResult = doRead(); readResult = doRead();
} catch (XArchNetworkDisconnected &) { } catch (XArchNetworkDisconnected &) {
// stream hungup // stream hungup
sendEvent(EventTypes::SocketDisconnected); sendEvent(SocketDisconnected);
onDisconnected(); onDisconnected();
readResult = kNew; readResult = kNew;
} catch (XArchNetwork &e) { } catch (XArchNetwork &e) {

View file

@ -1477,17 +1477,18 @@ void XWindowsScreen::onMousePress(const XButtonEvent &xbutton)
void XWindowsScreen::onMouseRelease(const XButtonEvent &xbutton) void XWindowsScreen::onMouseRelease(const XButtonEvent &xbutton)
{ {
using enum EventTypes;
LOG((CLOG_DEBUG1 "event: ButtonRelease button=%d", xbutton.button)); LOG((CLOG_DEBUG1 "event: ButtonRelease button=%d", xbutton.button));
ButtonID button = mapButtonFromX(&xbutton); ButtonID button = mapButtonFromX(&xbutton);
KeyModifierMask mask = m_keyState->mapModifiersFromX(xbutton.state); KeyModifierMask mask = m_keyState->mapModifiersFromX(xbutton.state);
if (button != kButtonNone) { if (button != kButtonNone) {
sendEvent(EventTypes::PrimaryScreenButtonUp, ButtonInfo::alloc(button, mask)); sendEvent(PrimaryScreenButtonUp, ButtonInfo::alloc(button, mask));
} else if (xbutton.button == 4) { } else if (xbutton.button == 4) {
// wheel forward (away from user) // wheel forward (away from user)
sendEvent(EventTypes::PrimaryScreenWheel, WheelInfo::alloc(0, 120)); sendEvent(PrimaryScreenWheel, WheelInfo::alloc(0, 120));
} else if (xbutton.button == 5) { } else if (xbutton.button == 5) {
// wheel backward (toward user) // wheel backward (toward user)
sendEvent(EventTypes::PrimaryScreenWheel, WheelInfo::alloc(0, -120)); sendEvent(PrimaryScreenWheel, WheelInfo::alloc(0, -120));
} }
// XXX -- support x-axis scrolling // XXX -- support x-axis scrolling
} }

View file

@ -87,14 +87,15 @@ void ClientListener::start()
void ClientListener::stop() void ClientListener::stop()
{ {
using enum EventTypes;
LOG((CLOG_DEBUG1 "stop listening for clients")); LOG((CLOG_DEBUG1 "stop listening for clients"));
// discard already connected clients // discard already connected clients
for (auto index = m_newClients.begin(); index != m_newClients.end(); ++index) { for (auto index = m_newClients.begin(); index != m_newClients.end(); ++index) {
ClientProxyUnknown *client = *index; ClientProxyUnknown *client = *index;
m_events->removeHandler(EventTypes::ClientProxyUnknownSuccess, client); m_events->removeHandler(ClientProxyUnknownSuccess, client);
m_events->removeHandler(EventTypes::ClientProxyUnknownFailure, client); m_events->removeHandler(ClientProxyUnknownFailure, client);
m_events->removeHandler(EventTypes::ClientProxyDisconnected, client); m_events->removeHandler(ClientProxyDisconnected, client);
delete client; delete client;
} }
@ -105,7 +106,7 @@ void ClientListener::stop()
client = getNextClient(); client = getNextClient();
} }
m_events->removeHandler(EventTypes::ListenSocketConnecting, m_listen); m_events->removeHandler(ListenSocketConnecting, m_listen);
cleanupListenSocket(); cleanupListenSocket();
cleanupClientSockets(); cleanupClientSockets();
} }

View file

@ -61,13 +61,14 @@ void ClientProxy1_0::disconnect()
void ClientProxy1_0::removeHandlers() void ClientProxy1_0::removeHandlers()
{ {
using enum EventTypes;
// uninstall event handlers // uninstall event handlers
m_events->removeHandler(EventTypes::StreamInputReady, getStream()->getEventTarget()); m_events->removeHandler(StreamInputReady, getStream()->getEventTarget());
m_events->removeHandler(EventTypes::StreamOutputError, getStream()->getEventTarget()); m_events->removeHandler(StreamOutputError, getStream()->getEventTarget());
m_events->removeHandler(EventTypes::StreamInputShutdown, getStream()->getEventTarget()); m_events->removeHandler(StreamInputShutdown, getStream()->getEventTarget());
m_events->removeHandler(EventTypes::StreamOutputShutdown, getStream()->getEventTarget()); m_events->removeHandler(StreamOutputShutdown, getStream()->getEventTarget());
m_events->removeHandler(EventTypes::StreamInputFormatError, getStream()->getEventTarget()); m_events->removeHandler(StreamInputFormatError, getStream()->getEventTarget());
m_events->removeHandler(EventTypes::Timer, this); m_events->removeHandler(Timer, this);
// remove timer // remove timer
removeHeartbeatTimer(); removeHeartbeatTimer();

View file

@ -119,16 +119,17 @@ void ClientProxyUnknown::addProxyHandlers()
void ClientProxyUnknown::removeHandlers() void ClientProxyUnknown::removeHandlers()
{ {
using enum EventTypes;
if (m_stream != nullptr) { if (m_stream != nullptr) {
m_events->removeHandler(EventTypes::StreamInputReady, m_stream->getEventTarget()); m_events->removeHandler(StreamInputReady, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::StreamOutputError, m_stream->getEventTarget()); m_events->removeHandler(StreamOutputError, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::StreamInputShutdown, m_stream->getEventTarget()); m_events->removeHandler(StreamInputShutdown, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::StreamInputFormatError, m_stream->getEventTarget()); m_events->removeHandler(StreamInputFormatError, m_stream->getEventTarget());
m_events->removeHandler(EventTypes::StreamOutputShutdown, m_stream->getEventTarget()); m_events->removeHandler(StreamOutputShutdown, m_stream->getEventTarget());
} }
if (m_proxy != nullptr) { if (m_proxy != nullptr) {
m_events->removeHandler(EventTypes::ClientProxyReady, m_proxy); m_events->removeHandler(ClientProxyReady, m_proxy);
m_events->removeHandler(EventTypes::ClientProxyDisconnected, m_proxy); m_events->removeHandler(ClientProxyDisconnected, m_proxy);
} }
} }

View file

@ -444,15 +444,12 @@ std::string InputFilter::KeystrokeAction::format() const
void InputFilter::KeystrokeAction::perform(const Event &event) void InputFilter::KeystrokeAction::perform(const Event &event)
{ {
EventTypes type = m_press ? EventTypes::KeyStateKeyDown : EventTypes::KeyStateKeyUp; using enum EventTypes;
EventTypes type = m_press ? KeyStateKeyDown : KeyStateKeyUp;
m_events->addEvent( m_events->addEvent(Event(PrimaryScreenFakeInputBegin, event.getTarget(), nullptr, Event::kDeliverImmediately));
Event(EventTypes::PrimaryScreenFakeInputBegin, event.getTarget(), nullptr, Event::kDeliverImmediately)
);
m_events->addEvent(Event(type, event.getTarget(), m_keyInfo, Event::kDeliverImmediately | Event::kDontFreeData)); m_events->addEvent(Event(type, event.getTarget(), m_keyInfo, Event::kDeliverImmediately | Event::kDontFreeData));
m_events->addEvent( m_events->addEvent(Event(PrimaryScreenFakeInputEnd, event.getTarget(), nullptr, Event::kDeliverImmediately));
Event(EventTypes::PrimaryScreenFakeInputEnd, event.getTarget(), nullptr, Event::kDeliverImmediately)
);
} }
const char *InputFilter::KeystrokeAction::formatName() const const char *InputFilter::KeystrokeAction::formatName() const
@ -501,15 +498,16 @@ void InputFilter::MouseButtonAction::perform(const Event &event)
{ {
// send modifiers // send modifiers
using enum EventTypes;
IPlatformScreen::KeyInfo *modifierInfo = nullptr; IPlatformScreen::KeyInfo *modifierInfo = nullptr;
if (m_buttonInfo->m_mask != 0) { if (m_buttonInfo->m_mask != 0) {
KeyID key = m_press ? kKeySetModifiers : kKeyClearModifiers; KeyID key = m_press ? kKeySetModifiers : kKeyClearModifiers;
modifierInfo = IKeyState::KeyInfo::alloc(key, m_buttonInfo->m_mask, 0, 1); modifierInfo = IKeyState::KeyInfo::alloc(key, m_buttonInfo->m_mask, 0, 1);
m_events->addEvent(Event(EventTypes::KeyStateKeyDown, event.getTarget(), modifierInfo, Event::kDeliverImmediately)); m_events->addEvent(Event(KeyStateKeyDown, event.getTarget(), modifierInfo, Event::kDeliverImmediately));
} }
// send button // send button
EventTypes type = m_press ? EventTypes::PrimaryScreenButtonDown : EventTypes::PrimaryScreenButtonUp; EventTypes type = m_press ? PrimaryScreenButtonDown : PrimaryScreenButtonUp;
m_events->addEvent(Event(type, event.getTarget(), m_buttonInfo, Event::kDeliverImmediately | Event::kDontFreeData)); m_events->addEvent(Event(type, event.getTarget(), m_buttonInfo, Event::kDeliverImmediately | Event::kDontFreeData));
} }
@ -778,48 +776,43 @@ void InputFilter::setPrimaryClient(PrimaryClient *client)
return; return;
} }
using enum EventTypes;
if (m_primaryClient != nullptr) { if (m_primaryClient != nullptr) {
for (auto rule = m_ruleList.begin(); rule != m_ruleList.end(); ++rule) { for (auto rule = m_ruleList.begin(); rule != m_ruleList.end(); ++rule) {
rule->disable(m_primaryClient); rule->disable(m_primaryClient);
} }
m_events->removeHandler(EventTypes::KeyStateKeyDown, m_primaryClient->getEventTarget()); m_events->removeHandler(KeyStateKeyDown, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::KeyStateKeyUp, m_primaryClient->getEventTarget()); m_events->removeHandler(KeyStateKeyUp, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::KeyStateKeyRepeat, m_primaryClient->getEventTarget()); m_events->removeHandler(KeyStateKeyRepeat, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenButtonDown, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenButtonDown, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenButtonUp, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenButtonUp, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenHotkeyDown, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenHotkeyDown, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenHotkeyUp, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenHotkeyUp, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::ServerConnected, m_primaryClient->getEventTarget()); m_events->removeHandler(ServerConnected, m_primaryClient->getEventTarget());
} }
m_primaryClient = client; m_primaryClient = client;
if (m_primaryClient != nullptr) { if (m_primaryClient != nullptr) {
m_events->addHandler(EventTypes::KeyStateKeyDown, m_primaryClient->getEventTarget(), [this](const auto &e) { m_events->addHandler(KeyStateKeyDown, m_primaryClient->getEventTarget(), [this](const auto &e) { handleEvent(e); });
m_events->addHandler(KeyStateKeyUp, m_primaryClient->getEventTarget(), [this](const auto &e) { handleEvent(e); });
m_events->addHandler(KeyStateKeyRepeat, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e); handleEvent(e);
}); });
m_events->addHandler(EventTypes::KeyStateKeyUp, m_primaryClient->getEventTarget(), [this](const auto &e) { m_events->addHandler(PrimaryScreenButtonDown, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e); handleEvent(e);
}); });
m_events->addHandler(EventTypes::KeyStateKeyRepeat, m_primaryClient->getEventTarget(), [this](const auto &e) { m_events->addHandler(PrimaryScreenButtonUp, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e); handleEvent(e);
}); });
m_events->addHandler(EventTypes::PrimaryScreenButtonDown, m_primaryClient->getEventTarget(), [this](const auto &e) { m_events->addHandler(PrimaryScreenHotkeyDown, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e); handleEvent(e);
}); });
m_events->addHandler(EventTypes::PrimaryScreenButtonUp, m_primaryClient->getEventTarget(), [this](const auto &e) { m_events->addHandler(PrimaryScreenHotkeyUp, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e);
});
m_events->addHandler(EventTypes::PrimaryScreenHotkeyDown, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e);
});
m_events->addHandler(EventTypes::PrimaryScreenHotkeyUp, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e);
});
m_events->addHandler(EventTypes::ServerConnected, m_primaryClient->getEventTarget(), [this](const auto &e) {
handleEvent(e); handleEvent(e);
}); });
m_events->addHandler(ServerConnected, m_primaryClient->getEventTarget(), [this](const auto &e) { handleEvent(e); });
for (auto rule = m_ruleList.begin(); rule != m_ruleList.end(); ++rule) { for (auto rule = m_ruleList.begin(); rule != m_ruleList.end(); ++rule) {
rule->enable(m_primaryClient); rule->enable(m_primaryClient);

View file

@ -142,19 +142,20 @@ Server::Server(
Server::~Server() Server::~Server()
{ {
// remove event handlers and timers // remove event handlers and timers
m_events->removeHandler(EventTypes::KeyStateKeyDown, m_inputFilter); using enum EventTypes;
m_events->removeHandler(EventTypes::KeyStateKeyUp, m_inputFilter); m_events->removeHandler(KeyStateKeyDown, m_inputFilter);
m_events->removeHandler(EventTypes::KeyStateKeyRepeat, m_inputFilter); m_events->removeHandler(KeyStateKeyUp, m_inputFilter);
m_events->removeHandler(EventTypes::PrimaryScreenButtonDown, m_inputFilter); m_events->removeHandler(KeyStateKeyRepeat, m_inputFilter);
m_events->removeHandler(EventTypes::PrimaryScreenButtonUp, m_inputFilter); m_events->removeHandler(PrimaryScreenButtonDown, m_inputFilter);
m_events->removeHandler(EventTypes::PrimaryScreenMotionOnPrimary, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenButtonUp, m_inputFilter);
m_events->removeHandler(EventTypes::PrimaryScreenMotionOnSecondary, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenMotionOnPrimary, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenWheel, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenMotionOnSecondary, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenSaverActivated, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenWheel, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenSaverDeactivated, m_primaryClient->getEventTarget()); m_events->removeHandler(PrimaryScreenSaverActivated, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenFakeInputBegin, m_inputFilter); m_events->removeHandler(PrimaryScreenSaverDeactivated, m_primaryClient->getEventTarget());
m_events->removeHandler(EventTypes::PrimaryScreenFakeInputEnd, m_inputFilter); m_events->removeHandler(PrimaryScreenFakeInputBegin, m_inputFilter);
m_events->removeHandler(EventTypes::Timer, this); m_events->removeHandler(PrimaryScreenFakeInputEnd, m_inputFilter);
m_events->removeHandler(Timer, this);
stopSwitch(); stopSwitch();
try { try {
@ -167,8 +168,8 @@ Server::~Server()
for (auto index = m_oldClients.begin(); index != m_oldClients.end(); ++index) { for (auto index = m_oldClients.begin(); index != m_oldClients.end(); ++index) {
BaseClientProxy *client = index->first; BaseClientProxy *client = index->first;
m_events->deleteTimer(index->second); m_events->deleteTimer(index->second);
m_events->removeHandler(EventTypes::Timer, client); m_events->removeHandler(Timer, client);
m_events->removeHandler(EventTypes::ClientProxyDisconnected, client); m_events->removeHandler(ClientProxyDisconnected, client);
delete client; delete client;
} }
@ -1873,6 +1874,7 @@ bool Server::addClient(BaseClientProxy *client)
bool Server::removeClient(BaseClientProxy *client) bool Server::removeClient(BaseClientProxy *client)
{ {
using enum EventTypes;
// return false if not in list // return false if not in list
ClientSet::iterator i = m_clientSet.find(client); ClientSet::iterator i = m_clientSet.find(client);
if (i == m_clientSet.end()) { if (i == m_clientSet.end()) {
@ -1880,9 +1882,9 @@ bool Server::removeClient(BaseClientProxy *client)
} }
// remove event handlers // remove event handlers
m_events->removeHandler(EventTypes::ScreenShapeChanged, client->getEventTarget()); m_events->removeHandler(ScreenShapeChanged, client->getEventTarget());
m_events->removeHandler(EventTypes::ClipboardGrabbed, client->getEventTarget()); m_events->removeHandler(ClipboardGrabbed, client->getEventTarget());
m_events->removeHandler(EventTypes::ClipboardChanged, client->getEventTarget()); m_events->removeHandler(ClipboardChanged, client->getEventTarget());
// remove from list // remove from list
m_clients.erase(getName(client)); m_clients.erase(getName(client));
@ -1961,14 +1963,15 @@ void Server::removeActiveClient(BaseClientProxy *client)
void Server::removeOldClient(BaseClientProxy *client) void Server::removeOldClient(BaseClientProxy *client)
{ {
using enum EventTypes;
OldClients::iterator i = m_oldClients.find(client); OldClients::iterator i = m_oldClients.find(client);
if (i != m_oldClients.end()) { if (i != m_oldClients.end()) {
m_events->removeHandler(EventTypes::ClientProxyDisconnected, client); m_events->removeHandler(ClientProxyDisconnected, client);
m_events->removeHandler(EventTypes::Timer, i->second); m_events->removeHandler(Timer, i->second);
m_events->deleteTimer(i->second); m_events->deleteTimer(i->second);
m_oldClients.erase(i); m_oldClients.erase(i);
if (m_clients.size() == 1 && m_oldClients.empty()) { if (m_clients.size() == 1 && m_oldClients.empty()) {
m_events->addEvent(Event(EventTypes::ServerDisconnected, this)); m_events->addEvent(Event(ServerDisconnected, this));
} }
} }
} }