mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-25 07:21:14 +01:00
Merge pull request #8044 from jordan-woyak/indicators-on-top
DolphinQt: Move mapping indicators to top of UI.
This commit is contained in:
commit
6e6f833bb3
@ -23,15 +23,14 @@ void GCPadEmu::CreateMainLayout()
|
|||||||
auto* layout = new QGridLayout;
|
auto* layout = new QGridLayout;
|
||||||
|
|
||||||
layout->addWidget(CreateGroupBox(tr("Buttons"), Pad::GetGroup(GetPort(), PadGroup::Buttons)), 0,
|
layout->addWidget(CreateGroupBox(tr("Buttons"), Pad::GetGroup(GetPort(), PadGroup::Buttons)), 0,
|
||||||
0, -1, 1);
|
0);
|
||||||
|
layout->addWidget(CreateGroupBox(tr("D-Pad"), Pad::GetGroup(GetPort(), PadGroup::DPad)), 1, 0, -1,
|
||||||
|
1);
|
||||||
layout->addWidget(
|
layout->addWidget(
|
||||||
CreateGroupBox(tr("Control Stick"), Pad::GetGroup(GetPort(), PadGroup::MainStick)), 0, 1, -1,
|
CreateGroupBox(tr("Control Stick"), Pad::GetGroup(GetPort(), PadGroup::MainStick)), 0, 1, -1,
|
||||||
1);
|
1);
|
||||||
layout->addWidget(CreateGroupBox(tr("C Stick"), Pad::GetGroup(GetPort(), PadGroup::CStick)), 0, 2,
|
layout->addWidget(CreateGroupBox(tr("C Stick"), Pad::GetGroup(GetPort(), PadGroup::CStick)), 0, 2,
|
||||||
-1, 1);
|
-1, 1);
|
||||||
layout->addWidget(CreateGroupBox(tr("D-Pad"), Pad::GetGroup(GetPort(), PadGroup::DPad)), 0, 3, -1,
|
|
||||||
1);
|
|
||||||
|
|
||||||
layout->addWidget(CreateGroupBox(tr("Triggers"), Pad::GetGroup(GetPort(), PadGroup::Triggers)), 0,
|
layout->addWidget(CreateGroupBox(tr("Triggers"), Pad::GetGroup(GetPort(), PadGroup::Triggers)), 0,
|
||||||
4);
|
4);
|
||||||
layout->addWidget(CreateGroupBox(tr("Rumble"), Pad::GetGroup(GetPort(), PadGroup::Rumble)), 1, 4);
|
layout->addWidget(CreateGroupBox(tr("Rumble"), Pad::GetGroup(GetPort(), PadGroup::Rumble)), 1, 4);
|
||||||
|
@ -97,7 +97,18 @@ QColor MappingIndicator::GetGateColor() const
|
|||||||
|
|
||||||
MappingIndicator::MappingIndicator(ControllerEmu::ControlGroup* group) : m_group(group)
|
MappingIndicator::MappingIndicator(ControllerEmu::ControlGroup* group) : m_group(group)
|
||||||
{
|
{
|
||||||
setMinimumHeight(128);
|
// TODO: Make these magic numbers less ugly.
|
||||||
|
int required_height = 106;
|
||||||
|
|
||||||
|
if (ControllerEmu::GroupType::MixedTriggers == group->type)
|
||||||
|
required_height = 64 + 1;
|
||||||
|
|
||||||
|
setFixedHeight(required_height);
|
||||||
|
}
|
||||||
|
|
||||||
|
double MappingIndicator::GetScale() const
|
||||||
|
{
|
||||||
|
return height() / 2 - 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
@ -178,7 +189,7 @@ void MappingIndicator::DrawCursor(ControllerEmu::Cursor& cursor)
|
|||||||
UpdateCalibrationWidget({raw_coord.x, raw_coord.y});
|
UpdateCalibrationWidget({raw_coord.x, raw_coord.y});
|
||||||
|
|
||||||
// Bounding box size:
|
// Bounding box size:
|
||||||
const double scale = height() / 2.5;
|
const double scale = GetScale();
|
||||||
|
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
p.translate(width() / 2, height() / 2);
|
p.translate(width() / 2, height() / 2);
|
||||||
@ -291,7 +302,7 @@ void MappingIndicator::DrawReshapableInput(ControllerEmu::ReshapableInput& stick
|
|||||||
UpdateCalibrationWidget(raw_coord);
|
UpdateCalibrationWidget(raw_coord);
|
||||||
|
|
||||||
// Bounding box size:
|
// Bounding box size:
|
||||||
const double scale = height() / 2.5;
|
const double scale = GetScale();
|
||||||
|
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
p.translate(width() / 2, height() / 2);
|
p.translate(width() / 2, height() / 2);
|
||||||
@ -453,7 +464,7 @@ void MappingIndicator::DrawForce(ControllerEmu::Force& force)
|
|||||||
UpdateCalibrationWidget({raw_coord.x, raw_coord.y});
|
UpdateCalibrationWidget({raw_coord.x, raw_coord.y});
|
||||||
|
|
||||||
// Bounding box size:
|
// Bounding box size:
|
||||||
const double scale = height() / 2.5;
|
const double scale = GetScale();
|
||||||
|
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
p.translate(width() / 2, height() / 2);
|
p.translate(width() / 2, height() / 2);
|
||||||
@ -592,7 +603,7 @@ void ShakeMappingIndicator::DrawShake()
|
|||||||
m_position_samples.pop_back();
|
m_position_samples.pop_back();
|
||||||
|
|
||||||
// Bounding box size:
|
// Bounding box size:
|
||||||
const double scale = height() / 2.5;
|
const double scale = GetScale();
|
||||||
|
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
p.translate(width() / 2, height() / 2);
|
p.translate(width() / 2, height() / 2);
|
||||||
@ -657,8 +668,8 @@ void ShakeMappingIndicator::DrawShake()
|
|||||||
|
|
||||||
void MappingIndicator::DrawCalibration(QPainter& p, Common::DVec2 point)
|
void MappingIndicator::DrawCalibration(QPainter& p, Common::DVec2 point)
|
||||||
{
|
{
|
||||||
// TODO: Ugly magic number used in a few places in this file.
|
// Bounding box size:
|
||||||
const double scale = height() / 2.5;
|
const double scale = GetScale();
|
||||||
|
|
||||||
// Input shape.
|
// Input shape.
|
||||||
p.setPen(GetInputShapePen());
|
p.setPen(GetInputShapePen());
|
||||||
|
@ -48,6 +48,8 @@ protected:
|
|||||||
QColor GetAltTextColor() const;
|
QColor GetAltTextColor() const;
|
||||||
QColor GetGateColor() const;
|
QColor GetGateColor() const;
|
||||||
|
|
||||||
|
double GetScale() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void DrawCursor(ControllerEmu::Cursor& cursor);
|
void DrawCursor(ControllerEmu::Cursor& cursor);
|
||||||
void DrawReshapableInput(ControllerEmu::ReshapableInput& stick);
|
void DrawReshapableInput(ControllerEmu::ReshapableInput& stick);
|
||||||
|
@ -70,6 +70,34 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con
|
|||||||
group->type == ControllerEmu::GroupType::Tilt ||
|
group->type == ControllerEmu::GroupType::Tilt ||
|
||||||
group->type == ControllerEmu::GroupType::Force;
|
group->type == ControllerEmu::GroupType::Force;
|
||||||
|
|
||||||
|
if (need_indicator)
|
||||||
|
{
|
||||||
|
MappingIndicator* indicator;
|
||||||
|
|
||||||
|
switch (group->type)
|
||||||
|
{
|
||||||
|
case ControllerEmu::GroupType::Shake:
|
||||||
|
indicator = new ShakeMappingIndicator(static_cast<ControllerEmu::Shake*>(group));
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
indicator = new MappingIndicator(group);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
form_layout->addRow(indicator);
|
||||||
|
|
||||||
|
connect(this, &MappingWidget::Update, indicator, QOverload<>::of(&MappingIndicator::update));
|
||||||
|
|
||||||
|
if (need_calibration)
|
||||||
|
{
|
||||||
|
const auto calibrate =
|
||||||
|
new CalibrationWidget(*static_cast<ControllerEmu::ReshapableInput*>(group), *indicator);
|
||||||
|
|
||||||
|
form_layout->addRow(calibrate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (auto& control : group->controls)
|
for (auto& control : group->controls)
|
||||||
{
|
{
|
||||||
auto* button = new MappingButton(this, control->control_ref.get(), !need_indicator);
|
auto* button = new MappingButton(this, control->control_ref.get(), !need_indicator);
|
||||||
@ -105,34 +133,6 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con
|
|||||||
form_layout->addRow(tr(setting->GetUIName()), setting_widget);
|
form_layout->addRow(tr(setting->GetUIName()), setting_widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (need_indicator)
|
|
||||||
{
|
|
||||||
MappingIndicator* indicator;
|
|
||||||
|
|
||||||
switch (group->type)
|
|
||||||
{
|
|
||||||
case ControllerEmu::GroupType::Shake:
|
|
||||||
indicator = new ShakeMappingIndicator(static_cast<ControllerEmu::Shake*>(group));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
indicator = new MappingIndicator(group);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
connect(this, &MappingWidget::Update, indicator, QOverload<>::of(&MappingIndicator::update));
|
|
||||||
|
|
||||||
if (need_calibration)
|
|
||||||
{
|
|
||||||
const auto calibrate =
|
|
||||||
new CalibrationWidget(*static_cast<ControllerEmu::ReshapableInput*>(group), *indicator);
|
|
||||||
|
|
||||||
form_layout->addRow(calibrate);
|
|
||||||
}
|
|
||||||
|
|
||||||
form_layout->addRow(indicator);
|
|
||||||
}
|
|
||||||
|
|
||||||
return group_box;
|
return group_box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,10 @@ void WiimoteEmuExtension::CreateClassicLayout()
|
|||||||
layout->addWidget(
|
layout->addWidget(
|
||||||
CreateGroupBox(tr("Buttons"),
|
CreateGroupBox(tr("Buttons"),
|
||||||
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::Buttons)),
|
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::Buttons)),
|
||||||
0, 0, -1, 1);
|
0, 0);
|
||||||
|
layout->addWidget(CreateGroupBox(tr("D-Pad"), Wiimote::GetClassicGroup(
|
||||||
|
GetPort(), WiimoteEmu::ClassicGroup::DPad)),
|
||||||
|
1, 0);
|
||||||
layout->addWidget(
|
layout->addWidget(
|
||||||
CreateGroupBox(tr("Left Stick"),
|
CreateGroupBox(tr("Left Stick"),
|
||||||
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::LeftStick)),
|
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::LeftStick)),
|
||||||
@ -49,14 +52,10 @@ void WiimoteEmuExtension::CreateClassicLayout()
|
|||||||
CreateGroupBox(tr("Right Stick"),
|
CreateGroupBox(tr("Right Stick"),
|
||||||
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::RightStick)),
|
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::RightStick)),
|
||||||
0, 2, -1, 1);
|
0, 2, -1, 1);
|
||||||
|
|
||||||
layout->addWidget(CreateGroupBox(tr("D-Pad"), Wiimote::GetClassicGroup(
|
|
||||||
GetPort(), WiimoteEmu::ClassicGroup::DPad)),
|
|
||||||
0, 3);
|
|
||||||
layout->addWidget(
|
layout->addWidget(
|
||||||
CreateGroupBox(tr("Triggers"),
|
CreateGroupBox(tr("Triggers"),
|
||||||
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::Triggers)),
|
Wiimote::GetClassicGroup(GetPort(), WiimoteEmu::ClassicGroup::Triggers)),
|
||||||
1, 3);
|
0, 3, -1, 1);
|
||||||
|
|
||||||
m_classic_box->setLayout(layout);
|
m_classic_box->setLayout(layout);
|
||||||
}
|
}
|
||||||
@ -97,23 +96,22 @@ void WiimoteEmuExtension::CreateNunchukLayout()
|
|||||||
auto* layout = new QGridLayout();
|
auto* layout = new QGridLayout();
|
||||||
m_nunchuk_box = new QGroupBox(tr("Nunchuk"), this);
|
m_nunchuk_box = new QGroupBox(tr("Nunchuk"), this);
|
||||||
|
|
||||||
layout->addWidget(CreateGroupBox(tr("Stick"), Wiimote::GetNunchukGroup(
|
layout->addWidget(CreateGroupBox(tr("Shake"), Wiimote::GetNunchukGroup(
|
||||||
GetPort(), WiimoteEmu::NunchukGroup::Stick)),
|
GetPort(), WiimoteEmu::NunchukGroup::Shake)),
|
||||||
0, 0, -1, 1);
|
0, 0);
|
||||||
layout->addWidget(CreateGroupBox(tr("Tilt"), Wiimote::GetNunchukGroup(
|
|
||||||
GetPort(), WiimoteEmu::NunchukGroup::Tilt)),
|
|
||||||
0, 1, -1, 1);
|
|
||||||
layout->addWidget(CreateGroupBox(tr("Swing"), Wiimote::GetNunchukGroup(
|
|
||||||
GetPort(), WiimoteEmu::NunchukGroup::Swing)),
|
|
||||||
0, 2, -1, 1);
|
|
||||||
|
|
||||||
layout->addWidget(
|
layout->addWidget(
|
||||||
CreateGroupBox(tr("Buttons"),
|
CreateGroupBox(tr("Buttons"),
|
||||||
Wiimote::GetNunchukGroup(GetPort(), WiimoteEmu::NunchukGroup::Buttons)),
|
Wiimote::GetNunchukGroup(GetPort(), WiimoteEmu::NunchukGroup::Buttons)),
|
||||||
0, 3);
|
1, 0);
|
||||||
layout->addWidget(CreateGroupBox(tr("Shake"), Wiimote::GetNunchukGroup(
|
layout->addWidget(CreateGroupBox(tr("Stick"), Wiimote::GetNunchukGroup(
|
||||||
GetPort(), WiimoteEmu::NunchukGroup::Shake)),
|
GetPort(), WiimoteEmu::NunchukGroup::Stick)),
|
||||||
1, 3);
|
0, 1, -1, 1);
|
||||||
|
layout->addWidget(CreateGroupBox(tr("Tilt"), Wiimote::GetNunchukGroup(
|
||||||
|
GetPort(), WiimoteEmu::NunchukGroup::Tilt)),
|
||||||
|
0, 2, -1, 1);
|
||||||
|
layout->addWidget(CreateGroupBox(tr("Swing"), Wiimote::GetNunchukGroup(
|
||||||
|
GetPort(), WiimoteEmu::NunchukGroup::Swing)),
|
||||||
|
0, 3, -1, 1);
|
||||||
|
|
||||||
m_nunchuk_box->setLayout(layout);
|
m_nunchuk_box->setLayout(layout);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user