Skip to content
This repository has been archived by the owner on Aug 31, 2020. It is now read-only.

Commit

Permalink
Fixed segmentation fault for activating Turbo option
Browse files Browse the repository at this point in the history
  • Loading branch information
juliagoda committed Oct 7, 2018
1 parent d81070c commit 2428a28
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 56 deletions.
3 changes: 0 additions & 3 deletions src/buttoneditdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -463,9 +463,6 @@ void ButtonEditDialog::checkTurboSetting(bool state)
ui->turboCheckBox->setChecked(state);
ui->turboCheckBox->setEnabled(true);
}

getHelperLocal().setUseTurbo(state);

}
}

Expand Down
39 changes: 13 additions & 26 deletions src/dpadpushbuttongroup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,41 +49,26 @@ void DPadPushButtonGroup::generateButtons()

QHash<int, JoyDPadButton*> *buttons = dpad->getJoyButtons();

JoyDPadButton *button = buttons->value(JoyDPadButton::DpadLeftUp);
generateBtnForGrid(buttons, button, upLeftButton, 0, 0);

button = buttons->value(JoyDPadButton::DpadUp);
generateBtnForGrid(buttons, button, upButton, 0, 1);

button = buttons->value(JoyDPadButton::DpadRightUp);
generateBtnForGrid(buttons, button, upRightButton, 0, 2);

button = buttons->value(JoyDPadButton::DpadLeft);
generateBtnForGrid(buttons, button, leftButton, 1, 0);
upLeftButton = generateBtnForGrid(buttons, 9, 0, 0);
upButton = generateBtnForGrid(buttons, 1, 0, 1);
upRightButton = generateBtnForGrid(buttons, 3, 0, 2);
leftButton = generateBtnForGrid(buttons, 8, 1, 0);

dpadWidget = new DPadPushButton(dpad, displayNames, parentWidget());
dpadWidget->setIcon(QIcon::fromTheme(QString::fromUtf8("games-config-options")));
connect(dpadWidget, &DPadPushButton::clicked, this, &DPadPushButtonGroup::showDPadDialog);
addWidget(dpadWidget, 1, 1);

button = buttons->value(JoyDPadButton::DpadRight);
generateBtnForGrid(buttons, button, rightButton, 1, 2);

button = buttons->value(JoyDPadButton::DpadLeftDown);
generateBtnForGrid(buttons, button, downLeftButton, 2, 0);

button = buttons->value(JoyDPadButton::DpadDown);
generateBtnForGrid(buttons, button, downButton, 2, 1);

button = buttons->value(JoyDPadButton::DpadRightDown);
generateBtnForGrid(buttons, button, downRightButton, 2, 2);
rightButton = generateBtnForGrid(buttons, 2, 1, 2);
downLeftButton = generateBtnForGrid(buttons, 12, 2, 0);
downButton = generateBtnForGrid(buttons, 4, 2, 1);
downRightButton = generateBtnForGrid(buttons, 6, 2, 2);
}

void DPadPushButtonGroup::generateBtnForGrid(QHash<int, JoyDPadButton*> *buttons, JoyDPadButton *button, JoyDPadButtonWidget *pushbutton, int cellRow, int cellCol)
JoyDPadButtonWidget* DPadPushButtonGroup::generateBtnForGrid(QHash<int, JoyDPadButton*> *buttons, int dpadDirection, int cellRow, int cellCol)
{
button = buttons->value(JoyDPadButton::DpadUp);
upButton = new JoyDPadButtonWidget(button, displayNames, parentWidget());
pushbutton = upButton;
JoyDPadButton *button = buttons->value(static_cast<JoyDPadButton::JoyDPadDirections>(dpadDirection));
JoyDPadButtonWidget *pushbutton = new JoyDPadButtonWidget(button, displayNames, parentWidget());

connect(pushbutton, &JoyDPadButtonWidget::clicked, this, [this, pushbutton] {
openDPadButtonDialog(pushbutton);
Expand All @@ -92,6 +77,8 @@ void DPadPushButtonGroup::generateBtnForGrid(QHash<int, JoyDPadButton*> *buttons
button->establishPropertyUpdatedConnections();
connect(button, &JoyDPadButton::slotsChanged, this, &DPadPushButtonGroup::propogateSlotsChanged);
addWidget(pushbutton, cellRow, cellCol);

return pushbutton;
}

void DPadPushButtonGroup::changeButtonLayout()
Expand Down
2 changes: 1 addition & 1 deletion src/dpadpushbuttongroup.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ private slots:

DPadPushButton *dpadWidget;

void generateBtnForGrid(QHash<int, JoyDPadButton*> *buttons, JoyDPadButton *button, JoyDPadButtonWidget *pushbutton, int cellRow, int cellCol);
JoyDPadButtonWidget * generateBtnForGrid(QHash<int, JoyDPadButton*> *buttons, int dpadDirection , int cellRow, int cellCol);
};

#endif // DPADPUSHBUTTONGROUP_H
35 changes: 12 additions & 23 deletions src/stickpushbuttongroup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,41 +50,29 @@ void StickPushButtonGroup::generateButtons()
{
qInstallMessageHandler(MessageHandler::myMessageOutput);

QHash<JoyControlStick::JoyStickDirections, JoyControlStickButton*> *stickButtons = stick->getButtons();
JoyControlStickButtonPushButton *pushbutton = nullptr;

JoyControlStickButton *button = stickButtons->value(JoyControlStick::StickLeftUp);
upLeftButton = new JoyControlStickButtonPushButton(button, displayNames, parentWidget());
JoyControlStickButtonPushButton *pushbutton = upLeftButton;
connect(pushbutton, &JoyControlStickButtonPushButton::clicked, this, [this, pushbutton] {
openStickButtonDialog(pushbutton);
});

button->establishPropertyUpdatedConnections();
connect(button, &JoyControlStickButton::slotsChanged, this, &StickPushButtonGroup::propogateSlotsChanged);

addWidget(pushbutton, 0, 0);

generateBtnToGrid(pushbutton, upButton, stick, JoyControlStick::StickUp, 0, 1);
generateBtnToGrid(pushbutton, upRightButton, stick, JoyControlStick::StickRightUp, 0, 2);
generateBtnToGrid(pushbutton, leftButton, stick, JoyControlStick::StickLeft, 1, 0);
upLeftButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickLeftUp, 0, 0);
upButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickUp, 0, 1);
upRightButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickRightUp, 0, 2);
leftButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickLeft, 1, 0);

stickWidget = new JoyControlStickPushButton(stick, displayNames, parentWidget());
stickWidget->setIcon(QIcon::fromTheme(QString::fromUtf8("games-config-options")));
connect(stickWidget, &JoyControlStickPushButton::clicked, this, &StickPushButtonGroup::showStickDialog);

addWidget(stickWidget, 1, 1);

generateBtnToGrid(pushbutton, rightButton, stick, JoyControlStick::StickRight, 1, 2);
generateBtnToGrid(pushbutton, downLeftButton, stick, JoyControlStick::StickLeftDown, 2, 0);
generateBtnToGrid(pushbutton, downButton, stick, JoyControlStick::StickDown, 2, 1);
generateBtnToGrid(pushbutton, downRightButton, stick, JoyControlStick::StickRightDown, 2, 2);
rightButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickRight, 1, 2);
downLeftButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickLeftDown, 2, 0);
downButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickDown, 2, 1);
downRightButton = generateBtnToGrid(pushbutton, stick, JoyControlStick::StickRightDown, 2, 2);
}

void StickPushButtonGroup::generateBtnToGrid(JoyControlStickButtonPushButton *pushbutton, JoyControlStickButtonPushButton *pushbuttonLocal, JoyControlStick *stick, JoyStickDirectionsType::JoyStickDirections stickValue, int gridRow, int gridCol)
JoyControlStickButtonPushButton* StickPushButtonGroup::generateBtnToGrid(JoyControlStickButtonPushButton *pushbutton, JoyControlStick *stick, JoyStickDirectionsType::JoyStickDirections stickValue, int gridRow, int gridCol)
{
JoyControlStickButton* button = stick->getButtons()->value(stickValue);
pushbuttonLocal = new JoyControlStickButtonPushButton(button, displayNames, parentWidget());
pushbutton = pushbuttonLocal;
pushbutton = new JoyControlStickButtonPushButton(button, displayNames, parentWidget());

connect(pushbutton, &JoyControlStickButtonPushButton::clicked, this, [this, pushbutton] {
openStickButtonDialog(pushbutton);
Expand All @@ -94,6 +82,7 @@ void StickPushButtonGroup::generateBtnToGrid(JoyControlStickButtonPushButton *pu
connect(button, &JoyControlStickButton::slotsChanged, this, &StickPushButtonGroup::propogateSlotsChanged);

addWidget(pushbutton, gridRow, gridCol);
return pushbutton;
}

void StickPushButtonGroup::changeButtonLayout()
Expand Down
2 changes: 1 addition & 1 deletion src/stickpushbuttongroup.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ private slots:

JoyControlStickPushButton *stickWidget;

void generateBtnToGrid(JoyControlStickButtonPushButton *pushbutton, JoyControlStickButtonPushButton *pushbuttonLocal, JoyControlStick *stick, JoyStickDirectionsType::JoyStickDirections stickValue, int gridRow, int gridCol);
JoyControlStickButtonPushButton * generateBtnToGrid(JoyControlStickButtonPushButton *pushbutton, JoyControlStick *stick, JoyStickDirectionsType::JoyStickDirections stickValue, int gridRow, int gridCol);
};

#endif // STICKPUSHBUTTONGROUP_H
2 changes: 0 additions & 2 deletions src/uihelpers/buttoneditdialoghelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ ButtonEditDialogHelper::ButtonEditDialogHelper(QObject *parent) :
QObject(parent)
{
qInstallMessageHandler(MessageHandler::myMessageOutput);

button = nullptr;
}

void ButtonEditDialogHelper::setAssignedSlot(int code,
Expand Down

0 comments on commit 2428a28

Please sign in to comment.