refactor: InputFilter::EFilterStatus => InputFilter::FilterStatus enum class
This commit is contained in:
parent
e37cea2d6b
commit
7fd9070a80
3 changed files with 31 additions and 27 deletions
|
|
@ -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());
|
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
|
// check for hotkey events
|
||||||
if (EventTypes type = event.getType(); type == EventTypes::PrimaryScreenHotkeyDown) {
|
if (EventTypes type = event.getType(); type == EventTypes::PrimaryScreenHotkeyDown) {
|
||||||
status = kActivate;
|
status = Activate;
|
||||||
} else if (type == EventTypes::PrimaryScreenHotkeyUp) {
|
} else if (type == EventTypes::PrimaryScreenHotkeyUp) {
|
||||||
status = kDeactivate;
|
status = Deactivate;
|
||||||
} else {
|
} else {
|
||||||
return kNoMatch;
|
return NoMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if it's our hotkey
|
// check if it's our hotkey
|
||||||
if (const auto *kinfo = static_cast<IPlatformScreen::HotKeyInfo *>(event.getData()); kinfo->m_id != m_id) {
|
if (const auto *kinfo = static_cast<IPlatformScreen::HotKeyInfo *>(event.getData()); kinfo->m_id != m_id) {
|
||||||
return kNoMatch;
|
return NoMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
|
|
@ -138,27 +139,28 @@ std::string InputFilter::MouseButtonCondition::format() const
|
||||||
return deskflow::string::sprintf("mousebutton(%s%d)", key.c_str(), m_button);
|
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 =
|
static const KeyModifierMask s_ignoreMask =
|
||||||
KeyModifierAltGr | KeyModifierCapsLock | KeyModifierNumLock | KeyModifierScrollLock;
|
KeyModifierAltGr | KeyModifierCapsLock | KeyModifierNumLock | KeyModifierScrollLock;
|
||||||
|
|
||||||
EFilterStatus status;
|
FilterStatus status;
|
||||||
|
|
||||||
|
using enum FilterStatus;
|
||||||
// check for hotkey events
|
// check for hotkey events
|
||||||
if (EventTypes type = event.getType(); type == EventTypes::PrimaryScreenButtonDown) {
|
if (EventTypes type = event.getType(); type == EventTypes::PrimaryScreenButtonDown) {
|
||||||
status = kActivate;
|
status = Activate;
|
||||||
} else if (type == EventTypes::PrimaryScreenButtonUp) {
|
} else if (type == EventTypes::PrimaryScreenButtonUp) {
|
||||||
status = kDeactivate;
|
status = Deactivate;
|
||||||
} else {
|
} else {
|
||||||
return kNoMatch;
|
return NoMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if it's the right button and modifiers. ignore modifiers
|
// check if it's the right button and modifiers. ignore modifiers
|
||||||
// that cannot be combined with a mouse button.
|
// that cannot be combined with a mouse button.
|
||||||
if (const auto *minfo = static_cast<IPlatformScreen::ButtonInfo *>(event.getData());
|
if (const auto *minfo = static_cast<IPlatformScreen::ButtonInfo *>(event.getData());
|
||||||
minfo->m_button != m_button || (minfo->m_mask & ~s_ignoreMask) != m_mask) {
|
minfo->m_button != m_button || (minfo->m_mask & ~s_ignoreMask) != m_mask) {
|
||||||
return kNoMatch;
|
return NoMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
|
|
@ -181,16 +183,16 @@ std::string InputFilter::ScreenConnectedCondition::format() const
|
||||||
return deskflow::string::sprintf("connect(%s)", m_screen.c_str());
|
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) {
|
if (event.getType() == EventTypes::ServerConnected) {
|
||||||
const auto *info = static_cast<Server::ScreenConnectedInfo *>(event.getData());
|
const auto *info = static_cast<Server::ScreenConnectedInfo *>(event.getData());
|
||||||
if (m_screen == info->m_screen || m_screen.empty()) {
|
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
|
// match
|
||||||
const ActionList *actions;
|
const ActionList *actions;
|
||||||
switch (m_condition->match(event)) {
|
switch (m_condition->match(event)) {
|
||||||
|
using enum FilterStatus;
|
||||||
default:
|
default:
|
||||||
// not handled
|
// not handled
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case kActivate:
|
case Activate:
|
||||||
actions = &m_activateActions;
|
actions = &m_activateActions;
|
||||||
LOG((CLOG_DEBUG1 "activate actions"));
|
LOG((CLOG_DEBUG1 "activate actions"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kDeactivate:
|
case Deactivate:
|
||||||
actions = &m_deactivateActions;
|
actions = &m_deactivateActions;
|
||||||
LOG((CLOG_DEBUG1 "deactivate actions"));
|
LOG((CLOG_DEBUG1 "deactivate actions"));
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,11 @@ public:
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
// Input Filter Condition Classes
|
// Input Filter Condition Classes
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
enum EFilterStatus
|
enum class FilterStatus
|
||||||
{
|
{
|
||||||
kNoMatch,
|
NoMatch,
|
||||||
kActivate,
|
Activate,
|
||||||
kDeactivate
|
Deactivate
|
||||||
};
|
};
|
||||||
|
|
||||||
class Condition
|
class Condition
|
||||||
|
|
@ -42,7 +42,7 @@ public:
|
||||||
virtual Condition *clone() const = 0;
|
virtual Condition *clone() const = 0;
|
||||||
virtual std::string format() 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 enablePrimary(PrimaryClient *);
|
||||||
virtual void disablePrimary(PrimaryClient *);
|
virtual void disablePrimary(PrimaryClient *);
|
||||||
|
|
@ -62,7 +62,7 @@ public:
|
||||||
// Condition overrides
|
// Condition overrides
|
||||||
Condition *clone() const override;
|
Condition *clone() const override;
|
||||||
std::string format() const override;
|
std::string format() const override;
|
||||||
EFilterStatus match(const Event &) override;
|
FilterStatus match(const Event &) override;
|
||||||
void enablePrimary(PrimaryClient *) override;
|
void enablePrimary(PrimaryClient *) override;
|
||||||
void disablePrimary(PrimaryClient *) override;
|
void disablePrimary(PrimaryClient *) override;
|
||||||
|
|
||||||
|
|
@ -87,7 +87,7 @@ public:
|
||||||
// Condition overrides
|
// Condition overrides
|
||||||
Condition *clone() const override;
|
Condition *clone() const override;
|
||||||
std::string format() const override;
|
std::string format() const override;
|
||||||
EFilterStatus match(const Event &) override;
|
FilterStatus match(const Event &) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ButtonID m_button;
|
ButtonID m_button;
|
||||||
|
|
@ -105,7 +105,7 @@ public:
|
||||||
// Condition overrides
|
// Condition overrides
|
||||||
Condition *clone() const override;
|
Condition *clone() const override;
|
||||||
std::string format() const override;
|
std::string format() const override;
|
||||||
EFilterStatus match(const Event &) override;
|
FilterStatus match(const Event &) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_screen;
|
std::string m_screen;
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,10 @@ public:
|
||||||
return "";
|
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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue