qt: Add per game config dialog with tabs
This commit is contained in:
@@ -29,6 +29,8 @@ add_executable(yuzu
|
||||
configuration/configure_input.h
|
||||
configuration/configure_system.cpp
|
||||
configuration/configure_system.h
|
||||
configuration/configure_per_game_dialog.cpp
|
||||
configuration/configure_per_game_dialog.h
|
||||
configuration/configure_web.cpp
|
||||
configuration/configure_web.h
|
||||
debugger/graphics/graphics_breakpoint_observer.cpp
|
||||
@@ -74,6 +76,7 @@ set(UIS
|
||||
configuration/configure_general.ui
|
||||
configuration/configure_graphics.ui
|
||||
configuration/configure_input.ui
|
||||
configuration/configure_per_game.ui
|
||||
configuration/configure_system.ui
|
||||
configuration/configure_web.ui
|
||||
hotkeys.ui
|
||||
|
||||
125
src/yuzu/configuration/configure_per_game.ui
Normal file
125
src/yuzu/configuration/configure_per_game.ui
Normal file
@@ -0,0 +1,125 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>ConfigurePerGameDialog</class>
|
||||
<widget class="QDialog" name="ConfigurePerGameDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>461</width>
|
||||
<height>500</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>yuzu Game Configuration</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="ConfigurePerGameGeneral" name="generalTab">
|
||||
<attribute name="title">
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="ConfigureInput" name="inputTab">
|
||||
<attribute name="title">
|
||||
<string>Input</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="ConfigureGraphics" name="graphicsTab">
|
||||
<attribute name="title">
|
||||
<string>Graphics</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="ConfigureAudio" name="audioTab">
|
||||
<attribute name="title">
|
||||
<string>Audio</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="ConfigureDebug" name="debugTab">
|
||||
<attribute name="title">
|
||||
<string>Debug</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>ConfigurePerGameGeneral</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>configuration/configure_per_general.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ConfigureInput</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>configuration/configure_input.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ConfigureGraphics</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>configuration/configure_graphics.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ConfigureAudio</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>configuration/configure_audio.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ConfigureDebug</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>configuration/configure_debug.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>ConfigurePerGameDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>220</x>
|
||||
<y>380</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>220</x>
|
||||
<y>200</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>ConfigurePerGameDialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>220</x>
|
||||
<y>380</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>220</x>
|
||||
<y>200</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
45
src/yuzu/configuration/configure_per_game_dialog.cpp
Normal file
45
src/yuzu/configuration/configure_per_game_dialog.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
// Copyright 2016 Citra Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "core/settings.h"
|
||||
#include "ui_configure_per_game.h"
|
||||
#include "yuzu/configuration/config.h"
|
||||
#include "yuzu/configuration/configure_per_game_dialog.h"
|
||||
|
||||
ConfigurePerGameDialog::ConfigurePerGameDialog(QWidget* parent, FileSys::VirtualFile file,
|
||||
const PerGameValuesChange& change)
|
||||
: QDialog(parent), ui(new Ui::ConfigurePerGameDialog) {
|
||||
ui->setupUi(this);
|
||||
ui->generalTab->loadFromFile(std::move(file));
|
||||
ui->generalTab->loadValuesChange(change);
|
||||
ui->inputTab->setPerGame(true);
|
||||
ui->inputTab->loadValuesChange(change);
|
||||
ui->graphicsTab->setPerGame(true);
|
||||
ui->graphicsTab->loadValuesChange(change);
|
||||
ui->audioTab->setPerGame(true);
|
||||
ui->audioTab->loadValuesChange(change);
|
||||
ui->debugTab->setPerGame(true);
|
||||
ui->debugTab->loadValuesChange(change);
|
||||
this->setConfiguration();
|
||||
}
|
||||
|
||||
ConfigurePerGameDialog::~ConfigurePerGameDialog() = default;
|
||||
|
||||
void ConfigurePerGameDialog::setConfiguration() {}
|
||||
|
||||
PerGameValuesChange ConfigurePerGameDialog::applyConfiguration() {
|
||||
PerGameValuesChange out{};
|
||||
ui->generalTab->applyConfiguration();
|
||||
ui->generalTab->mergeValuesChange(out);
|
||||
ui->inputTab->applyConfiguration();
|
||||
ui->inputTab->mergeValuesChange(out);
|
||||
ui->graphicsTab->applyConfiguration();
|
||||
ui->graphicsTab->mergeValuesChange(out);
|
||||
ui->audioTab->applyConfiguration();
|
||||
ui->audioTab->mergeValuesChange(out);
|
||||
ui->debugTab->applyConfiguration();
|
||||
ui->debugTab->mergeValuesChange(out);
|
||||
Settings::Apply();
|
||||
return out;
|
||||
}
|
||||
29
src/yuzu/configuration/configure_per_game_dialog.h
Normal file
29
src/yuzu/configuration/configure_per_game_dialog.h
Normal file
@@ -0,0 +1,29 @@
|
||||
// Copyright 2016 Citra Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <QDialog>
|
||||
#include "core/file_sys/vfs.h"
|
||||
|
||||
namespace Ui {
|
||||
class ConfigurePerGameDialog;
|
||||
}
|
||||
|
||||
class ConfigurePerGameDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ConfigurePerGameDialog(QWidget* parent, FileSys::VirtualFile file,
|
||||
const PerGameValuesChange& change);
|
||||
~ConfigurePerGameDialog();
|
||||
|
||||
PerGameValuesChange applyConfiguration();
|
||||
|
||||
private:
|
||||
void setConfiguration();
|
||||
|
||||
std::unique_ptr<Ui::ConfigurePerGameDialog> ui;
|
||||
};
|
||||
Reference in New Issue
Block a user