mirror of
https://github.com/stenzek/duckstation.git
synced 2026-02-04 05:04:33 +00:00
Qt: Use splitter in macro editor (#3680)
This commit is contained in:
@@ -46,7 +46,6 @@ set(SRCS
|
||||
controllerglobalsettingswidget.h
|
||||
controllerglobalsettingswidget.ui
|
||||
controllermacroeditwidget.ui
|
||||
controllermacrowidget.ui
|
||||
controllersettingswindow.cpp
|
||||
controllersettingswindow.h
|
||||
controllersettingswindow.ui
|
||||
|
||||
@@ -510,9 +510,9 @@ void ControllerBindingWidget::bindBindingWidgets(QWidget* parent)
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ControllerMacroWidget::ControllerMacroWidget(ControllerBindingWidget* parent) : QWidget(parent)
|
||||
ControllerMacroWidget::ControllerMacroWidget(ControllerBindingWidget* parent) : QSplitter(parent)
|
||||
{
|
||||
m_ui.setupUi(this);
|
||||
setChildrenCollapsible(false);
|
||||
setWindowTitle(tr("Controller Port %1 Macros").arg(parent->getPortNumber() + 1u));
|
||||
createWidgets(parent);
|
||||
}
|
||||
@@ -521,27 +521,39 @@ ControllerMacroWidget::~ControllerMacroWidget() = default;
|
||||
|
||||
void ControllerMacroWidget::updateListItem(u32 index)
|
||||
{
|
||||
m_ui.portList->item(static_cast<int>(index))
|
||||
->setText(tr("Macro %1\n%2").arg(index + 1).arg(m_macros[index]->getSummary()));
|
||||
QString summary = m_macros[index]->getSummary();
|
||||
QListWidgetItem* item = m_macroList->item(static_cast<int>(index));
|
||||
item->setText(tr("Macro %1\n%2").arg(index + 1).arg(summary));
|
||||
item->setToolTip(summary);
|
||||
}
|
||||
|
||||
void ControllerMacroWidget::createWidgets(ControllerBindingWidget* parent)
|
||||
void ControllerMacroWidget::createWidgets(ControllerBindingWidget* bwidget)
|
||||
{
|
||||
for (u32 i = 0; i < NUM_MACROS; i++)
|
||||
m_macroList = new QListWidget(this);
|
||||
m_macroList->setIconSize(QSize(32, 32));
|
||||
m_macroList->setMinimumWidth(150);
|
||||
addWidget(m_macroList);
|
||||
setStretchFactor(0, 1);
|
||||
|
||||
m_container = new QStackedWidget(this);
|
||||
addWidget(m_container);
|
||||
setStretchFactor(1, 3);
|
||||
|
||||
for (u32 i = 0; i < m_macros.size(); i++)
|
||||
{
|
||||
m_macros[i] = new ControllerMacroEditWidget(this, parent, i);
|
||||
m_ui.container->addWidget(m_macros[i]);
|
||||
m_macros[i] = new ControllerMacroEditWidget(this, bwidget, i);
|
||||
m_container->addWidget(m_macros[i]);
|
||||
|
||||
QListWidgetItem* item = new QListWidgetItem();
|
||||
item->setIcon(QIcon::fromTheme(QStringLiteral("flashlight-line")));
|
||||
m_ui.portList->addItem(item);
|
||||
m_macroList->addItem(item);
|
||||
updateListItem(i);
|
||||
}
|
||||
|
||||
m_ui.portList->setCurrentRow(0);
|
||||
m_ui.container->setCurrentIndex(0);
|
||||
m_macroList->setCurrentRow(0);
|
||||
m_container->setCurrentIndex(0);
|
||||
|
||||
connect(m_ui.portList, &QListWidget::currentRowChanged, m_ui.container, &QStackedWidget::setCurrentIndex);
|
||||
connect(m_macroList, &QListWidget::currentRowChanged, m_container, &QStackedWidget::setCurrentIndex);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -5,16 +5,15 @@
|
||||
|
||||
#include "core/controller.h"
|
||||
#include "core/settings.h"
|
||||
|
||||
#include <QtWidgets/QDialog>
|
||||
#include <QtWidgets/QSplitter>
|
||||
#include <QtWidgets/QWidget>
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
|
||||
#include "ui_controllerbindingwidget.h"
|
||||
#include "ui_controllermacroeditwidget.h"
|
||||
#include "ui_controllermacrowidget.h"
|
||||
|
||||
class QVBoxLayout;
|
||||
|
||||
class InputBindingWidget;
|
||||
class ControllerSettingsWindow;
|
||||
@@ -71,7 +70,7 @@ private:
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class ControllerMacroWidget : public QWidget
|
||||
class ControllerMacroWidget : public QSplitter
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -82,12 +81,11 @@ public:
|
||||
void updateListItem(u32 index);
|
||||
|
||||
private:
|
||||
static constexpr u32 NUM_MACROS = InputManager::NUM_MACRO_BUTTONS_PER_CONTROLLER;
|
||||
void createWidgets(ControllerBindingWidget* bwidget);
|
||||
|
||||
void createWidgets(ControllerBindingWidget* parent);
|
||||
|
||||
Ui::ControllerMacroWidget m_ui;
|
||||
std::array<ControllerMacroEditWidget*, NUM_MACROS> m_macros;
|
||||
QListWidget* m_macroList;
|
||||
QStackedWidget* m_container;
|
||||
std::array<ControllerMacroEditWidget*, InputManager::NUM_MACRO_BUTTONS_PER_CONTROLLER> m_macros;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>ControllerMacroWidget</class>
|
||||
<widget class="QWidget" name="ControllerMacroWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>799</width>
|
||||
<height>493</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QListWidget" name="portList">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QStackedWidget" name="container"/>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="../resources/resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -190,9 +190,6 @@
|
||||
<QtUi Include="controllersettingswindow.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
<QtUi Include="controllermacrowidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
<QtUi Include="controllermacroeditwidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
@@ -386,4 +383,4 @@
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="..\..\dep\msvc\vsprops\Targets.props" />
|
||||
<Import Project="..\..\dep\msvc\vsprops\QtCompile.targets" />
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
@@ -146,7 +146,6 @@
|
||||
<QtUi Include="controllerbindingwidget_analog_joystick.ui" />
|
||||
<QtUi Include="controllerbindingwidget_negcon.ui" />
|
||||
<QtUi Include="controllerbindingwidget_guncon.ui" />
|
||||
<QtUi Include="controllermacrowidget.ui" />
|
||||
<QtUi Include="controllermacroeditwidget.ui" />
|
||||
<QtUi Include="controllerbindingwidget_mouse.ui" />
|
||||
<QtUi Include="coverdownloadwindow.ui" />
|
||||
@@ -234,4 +233,4 @@
|
||||
<Filter>translations</Filter>
|
||||
</QtTs>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user