mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-05-01 06:18:03 +03:00

Creates a layer outside the game config layer system and passes it to the created gfx widows, so as to not interfere with the global config system. Supports multiple game properties being open at once. Supports editing while a game is playing, but the options only save and update the active game when the window is closed. Right-clicking will remove a property from the game ini.
53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
// Copyright 2017 Dolphin Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
#include <utility>
|
|
#include <vector>
|
|
|
|
#include "DolphinQt/Config/ConfigControls/ConfigControl.h"
|
|
#include "DolphinQt/Config/ToolTipControls/ToolTipComboBox.h"
|
|
|
|
namespace Config
|
|
{
|
|
template <typename T>
|
|
class Info;
|
|
}
|
|
|
|
class ConfigChoice final : public ConfigControl<ToolTipComboBox>
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
ConfigChoice(const QStringList& options, const Config::Info<int>& setting,
|
|
Config::Layer* layer = nullptr);
|
|
|
|
protected:
|
|
void OnConfigChanged() override;
|
|
|
|
private:
|
|
void Update(int choice);
|
|
|
|
Config::Info<int> m_setting;
|
|
};
|
|
|
|
class ConfigStringChoice final : public ConfigControl<ToolTipComboBox>
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
ConfigStringChoice(const std::vector<std::string>& options,
|
|
const Config::Info<std::string>& setting, Config::Layer* layer = nullptr);
|
|
ConfigStringChoice(const std::vector<std::pair<QString, QString>>& options,
|
|
const Config::Info<std::string>& setting, Config::Layer* layer = nullptr);
|
|
void Load();
|
|
|
|
protected:
|
|
void OnConfigChanged() override;
|
|
|
|
private:
|
|
void Update(int index);
|
|
|
|
const Config::Info<std::string>& m_setting;
|
|
bool m_text_is_data = false;
|
|
};
|