refactor: InputFilter::EFilterStatus => InputFilter::FilterStatus enum class

This commit is contained in:
sithlord48
2025-07-08 14:25:41 -04:00
committed by Chris Rizzitello
parent e37cea2d6b
commit 7fd9070a80
3 changed files with 31 additions and 27 deletions

View File

@ -66,22 +66,23 @@ std::string InputFilter::KeystrokeCondition::format() const
return deskflow::string::sprintf("keystroke(%s)", deskflow::KeyMap::formatKey(m_key, m_mask).c_str());
}
InputFilter::EFilterStatus InputFilter::KeystrokeCondition::match(const Event &event)
InputFilter::FilterStatus InputFilter::KeystrokeCondition::match(const Event &event)
{
EFilterStatus status;
using enum FilterStatus;
FilterStatus status;
// check for hotkey events
if (EventTypes type = event.getType(); type == EventTypes::PrimaryScreenHotkeyDown) {
status = kActivate;
status = Activate;
} else if (type == EventTypes::PrimaryScreenHotkeyUp) {
status = kDeactivate;
status = Deactivate;
} else {
return kNoMatch;
return NoMatch;
}
// check if it's our hotkey
if (const auto *kinfo = static_cast<IPlatformScreen::HotKeyInfo *>(event.getData()); kinfo->m_id != m_id) {
return kNoMatch;
return NoMatch;
}
return status;
@ -138,27 +139,28 @@ std::string InputFilter::MouseButtonCondition::format() const
return deskflow::string::sprintf("mousebutton(%s%d)", key.c_str(), m_button);
}
InputFilter::EFilterStatus InputFilter::MouseButtonCondition::match(const Event &event)
InputFilter::FilterStatus InputFilter::MouseButtonCondition::match(const Event &event)
{
static const KeyModifierMask s_ignoreMask =
KeyModifierAltGr | KeyModifierCapsLock | KeyModifierNumLock | KeyModifierScrollLock;
EFilterStatus status;
FilterStatus status;
using enum FilterStatus;
// check for hotkey events
if (EventTypes type = event.getType(); type == EventTypes::PrimaryScreenButtonDown) {
status = kActivate;
status = Activate;
} else if (type == EventTypes::PrimaryScreenButtonUp) {
status = kDeactivate;
status = Deactivate;
} else {
return kNoMatch;
return NoMatch;
}
// check if it's the right button and modifiers. ignore modifiers
// that cannot be combined with a mouse button.
if (const auto *minfo = static_cast<IPlatformScreen::ButtonInfo *>(event.getData());
minfo->m_button != m_button || (minfo->m_mask & ~s_ignoreMask) != m_mask) {
return kNoMatch;
return NoMatch;
}
return status;
@ -181,16 +183,16 @@ std::string InputFilter::ScreenConnectedCondition::format() const
return deskflow::string::sprintf("connect(%s)", m_screen.c_str());
}
InputFilter::EFilterStatus InputFilter::ScreenConnectedCondition::match(const Event &event)
InputFilter::FilterStatus InputFilter::ScreenConnectedCondition::match(const Event &event)
{
if (event.getType() == EventTypes::ServerConnected) {
const auto *info = static_cast<Server::ScreenConnectedInfo *>(event.getData());
if (m_screen == info->m_screen || m_screen.empty()) {
return kActivate;
return FilterStatus::Activate;
}
}
return kNoMatch;
return FilterStatus::NoMatch;
}
// -----------------------------------------------------------------------------
@ -649,16 +651,17 @@ bool InputFilter::Rule::handleEvent(const Event &event)
// match
const ActionList *actions;
switch (m_condition->match(event)) {
using enum FilterStatus;
default:
// not handled
return false;
case kActivate:
case Activate:
actions = &m_activateActions;
LOG((CLOG_DEBUG1 "activate actions"));
break;
case kDeactivate:
case Deactivate:
actions = &m_deactivateActions;
LOG((CLOG_DEBUG1 "deactivate actions"));
break;

View File

@ -26,11 +26,11 @@ public:
// -------------------------------------------------------------------------
// Input Filter Condition Classes
// -------------------------------------------------------------------------
enum EFilterStatus
enum class FilterStatus
{
kNoMatch,
kActivate,
kDeactivate
NoMatch,
Activate,
Deactivate
};
class Condition
@ -42,7 +42,7 @@ public:
virtual Condition *clone() const = 0;
virtual std::string format() const = 0;
virtual EFilterStatus match(const Event &) = 0;
virtual FilterStatus match(const Event &) = 0;
virtual void enablePrimary(PrimaryClient *);
virtual void disablePrimary(PrimaryClient *);
@ -62,7 +62,7 @@ public:
// Condition overrides
Condition *clone() const override;
std::string format() const override;
EFilterStatus match(const Event &) override;
FilterStatus match(const Event &) override;
void enablePrimary(PrimaryClient *) override;
void disablePrimary(PrimaryClient *) override;
@ -87,7 +87,7 @@ public:
// Condition overrides
Condition *clone() const override;
std::string format() const override;
EFilterStatus match(const Event &) override;
FilterStatus match(const Event &) override;
private:
ButtonID m_button;
@ -105,7 +105,7 @@ public:
// Condition overrides
Condition *clone() const override;
std::string format() const override;
EFilterStatus match(const Event &) override;
FilterStatus match(const Event &) override;
private:
std::string m_screen;

View File

@ -21,9 +21,10 @@ public:
return "";
}
InputFilter::EFilterStatus match(const Event &ev) override
InputFilter::FilterStatus match(const Event &ev) override
{
return ev.getType() == EventTypes::System ? InputFilter::kActivate : InputFilter::kNoMatch;
return ev.getType() == EventTypes::System ? InputFilter::FilterStatus::Activate
: InputFilter::FilterStatus::NoMatch;
}
};