mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
MappingWidget: Support for boxes with multiple columns
This commit is contained in:
@ -6,6 +6,7 @@
|
|||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QFormLayout>
|
#include <QFormLayout>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
|
#include <QHBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
|
|
||||||
@ -118,16 +119,7 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (auto& control : group->controls)
|
for (auto& control : group->controls)
|
||||||
{
|
CreateControl(control.get(), form_layout, !indicator);
|
||||||
auto* button = new MappingButton(this, control->control_ref.get(), !indicator);
|
|
||||||
|
|
||||||
button->setMinimumWidth(100);
|
|
||||||
button->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
||||||
const bool translate = control->translate == ControllerEmu::Translate;
|
|
||||||
const QString translated_name =
|
|
||||||
translate ? tr(control->ui_name.c_str()) : QString::fromStdString(control->ui_name);
|
|
||||||
form_layout->addRow(translated_name, button);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (auto& setting : group->numeric_settings)
|
for (auto& setting : group->numeric_settings)
|
||||||
{
|
{
|
||||||
@ -186,6 +178,42 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con
|
|||||||
return group_box;
|
return group_box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QGroupBox* MappingWidget::CreateControlsBox(const QString& name, ControllerEmu::ControlGroup* group,
|
||||||
|
int columns)
|
||||||
|
{
|
||||||
|
auto* group_box = new QGroupBox(name);
|
||||||
|
auto* hbox_layout = new QHBoxLayout();
|
||||||
|
|
||||||
|
group_box->setLayout(hbox_layout);
|
||||||
|
|
||||||
|
std::vector<QFormLayout*> form_layouts;
|
||||||
|
for (int i = 0; i < columns; ++i)
|
||||||
|
{
|
||||||
|
form_layouts.push_back(new QFormLayout());
|
||||||
|
hbox_layout->addLayout(form_layouts[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < group->controls.size(); ++i)
|
||||||
|
{
|
||||||
|
CreateControl(group->controls[i].get(), form_layouts[i % columns], true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return group_box;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MappingWidget::CreateControl(const ControllerEmu::Control* control, QFormLayout* layout,
|
||||||
|
bool indicator)
|
||||||
|
{
|
||||||
|
auto* button = new MappingButton(this, control->control_ref.get(), indicator);
|
||||||
|
|
||||||
|
button->setMinimumWidth(100);
|
||||||
|
button->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||||
|
const bool translate = control->translate == ControllerEmu::Translate;
|
||||||
|
const QString translated_name =
|
||||||
|
translate ? tr(control->ui_name.c_str()) : QString::fromStdString(control->ui_name);
|
||||||
|
layout->addRow(translated_name, button);
|
||||||
|
}
|
||||||
|
|
||||||
ControllerEmu::EmulatedController* MappingWidget::GetController() const
|
ControllerEmu::EmulatedController* MappingWidget::GetController() const
|
||||||
{
|
{
|
||||||
return m_parent->GetController();
|
return m_parent->GetController();
|
||||||
|
@ -16,6 +16,7 @@ class InputConfig;
|
|||||||
class MappingButton;
|
class MappingButton;
|
||||||
class MappingNumeric;
|
class MappingNumeric;
|
||||||
class MappingWindow;
|
class MappingWindow;
|
||||||
|
class QFormLayout;
|
||||||
class QPushButton;
|
class QPushButton;
|
||||||
class QGroupBox;
|
class QGroupBox;
|
||||||
|
|
||||||
@ -52,6 +53,9 @@ protected:
|
|||||||
|
|
||||||
QGroupBox* CreateGroupBox(ControllerEmu::ControlGroup* group);
|
QGroupBox* CreateGroupBox(ControllerEmu::ControlGroup* group);
|
||||||
QGroupBox* CreateGroupBox(const QString& name, ControllerEmu::ControlGroup* group);
|
QGroupBox* CreateGroupBox(const QString& name, ControllerEmu::ControlGroup* group);
|
||||||
|
QGroupBox* CreateControlsBox(const QString& name, ControllerEmu::ControlGroup* group,
|
||||||
|
int columns);
|
||||||
|
void CreateControl(const ControllerEmu::Control* control, QFormLayout* layout, bool indicator);
|
||||||
QPushButton* CreateSettingAdvancedMappingButton(ControllerEmu::NumericSettingBase& setting);
|
QPushButton* CreateSettingAdvancedMappingButton(ControllerEmu::NumericSettingBase& setting);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Reference in New Issue
Block a user