AntiMicroX/antimicrox

Refactor constructors of some classes

Open

#554 opened on Oct 9, 2022

View on GitHub
 (2 comments) (0 reactions) (0 assignees)C++ (236 forks)auto 404
good first issuelow-priotityrefactor

Repository metrics

Stars
 (3,844 stars)
PR merge metrics
 (PR metrics pending)

Description

Classes like ButtonEditDialog JoyButtonSlot (and probably many other) have many duplications in overrides constructors.

For example

JoyButtonSlot::JoyButtonSlot(QObject *parent)
    : QObject(parent)
    , extraData()
{
    deviceCode = 0;
    m_mode = JoyKeyboard;
    m_distance = 0.0;
    previousDistance = 0.0;
    qkeyaliasCode = 0;
    easingActive = false;
    mix_slots = nullptr;
}

JoyButtonSlot::JoyButtonSlot(int code, JoySlotInputAction mode, QObject *parent)
    : QObject(parent)
    , extraData()
{
    deviceCode = 0;
    qkeyaliasCode = 0;

    if (code > 0)
        deviceCode = code;

    m_mode = mode;
    m_distance = 0.0;
    easingActive = false;
    mix_slots = nullptr;
}

JoyButtonSlot::JoyButtonSlot(int code, int alias, JoySlotInputAction mode, QObject *parent)
    : QObject(parent)
    , extraData()
{
    deviceCode = 0;
    qkeyaliasCode = 0;

    if (code > 0)
        deviceCode = code;

    if (alias > 0)
        qkeyaliasCode = alias;

    m_mode = mode;
    m_distance = 0.0;
    easingActive = false;
    mix_slots = nullptr;
}

Instead of duplicating code, these constructors could call each other

Contributor guide