AntiMicroX/antimicrox

Refactor class JoyButtonSlot

Ouverte

#376 ouverte le 12 févr. 2022

 (1 commentaire) (0 réaction) (0 personne assignée)C++ (236 forks)auto 404
good first issuerefactor

Métriques du dépôt

Stars
 (3 844 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

Class JoyButtonSlot should be divided into several smaller classes with common ancestor.

It would help to avoid mess in code.

New classes should describe actions and execution of them.
It would help avoiding things like:


void sendevent(JoyButtonSlot *slot, bool pressed)
{
    JoyButtonSlot::JoySlotInputAction device = slot->getSlotMode();

    if (device == JoyButtonSlot::JoyKeyboard)
    {
        EventHandlerFactory::getInstance()->handler()->sendKeyboardEvent(slot, pressed);
    } else if (device == JoyButtonSlot::JoyMouseButton)
    {
        EventHandlerFactory::getInstance()->handler()->sendMouseButtonEvent(slot, pressed);
    } else if ((device == JoyButtonSlot::JoyTextEntry) && pressed && !slot->getTextData().isEmpty())
    {
        EventHandlerFactory::getInstance()->handler()->sendTextEntryEvent(slot->getTextData());
    } else if ((device == JoyButtonSlot::JoyExecute) && pressed && !slot->getTextData().isEmpty())
    {
        ///....

Or

if ((tempcode == static_cast<int>(JoyButtonSlot::MouseWheelUp)) ||
            (tempcode == static_cast<int>(JoyButtonSlot::MouseWheelDown)))
        {
            slot->getMouseInterval()->restart();
            wheelVerticalTime.restart();
            currentWheelVerticalEvent = slot;
            getActiveSlotsLocal().append(slot);
            wheelEventVertical();
            currentWheelVerticalEvent = nullptr;
        } else if ((tempcode == static_cast<int>(JoyButtonSlot::MouseWheelLeft)) ||
                   (tempcode == static_cast<int>(JoyButtonSlot::MouseWheelRight)))
        {
            slot->getMouseInterval()->restart();
            wheelHorizontalTime.restart();

Guide contributeur