qt: Add UI to display game properties and disable add-ons
This commit is contained in:
		
							parent
							
								
									5f0217592b
								
							
						
					
					
						commit
						60e27252a5
					
				@ -35,6 +35,8 @@ add_executable(yuzu
 | 
			
		||||
    configuration/configure_mouse_advanced.h
 | 
			
		||||
    configuration/configure_system.cpp
 | 
			
		||||
    configuration/configure_system.h
 | 
			
		||||
    configuration/configure_per_general.cpp
 | 
			
		||||
    configuration/configure_per_general.h
 | 
			
		||||
    configuration/configure_touchscreen_advanced.cpp
 | 
			
		||||
    configuration/configure_touchscreen_advanced.h
 | 
			
		||||
    configuration/configure_web.cpp
 | 
			
		||||
@ -86,6 +88,7 @@ set(UIS
 | 
			
		||||
    configuration/configure_input.ui
 | 
			
		||||
    configuration/configure_input_player.ui
 | 
			
		||||
    configuration/configure_mouse_advanced.ui
 | 
			
		||||
    configuration/configure_per_general.ui
 | 
			
		||||
    configuration/configure_system.ui
 | 
			
		||||
    configuration/configure_touchscreen_advanced.ui
 | 
			
		||||
    configuration/configure_web.ui
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										166
									
								
								src/yuzu/configuration/configure_per_general.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								src/yuzu/configuration/configure_per_general.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,166 @@
 | 
			
		||||
// Copyright 2016 Citra Emulator Project
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <utility>
 | 
			
		||||
#include <QMenu>
 | 
			
		||||
#include <QMessageBox>
 | 
			
		||||
#include <QStandardItemModel>
 | 
			
		||||
#include <QString>
 | 
			
		||||
#include <QTimer>
 | 
			
		||||
#include <QTreeView>
 | 
			
		||||
#include "common/param_package.h"
 | 
			
		||||
#include "core/file_sys/control_metadata.h"
 | 
			
		||||
#include "core/file_sys/patch_manager.h"
 | 
			
		||||
#include "core/file_sys/xts_archive.h"
 | 
			
		||||
#include "core/loader/loader.h"
 | 
			
		||||
#include "input_common/main.h"
 | 
			
		||||
#include "yuzu/configuration/config.h"
 | 
			
		||||
#include "yuzu/configuration/configure_input.h"
 | 
			
		||||
#include "yuzu/configuration/configure_per_general.h"
 | 
			
		||||
#include "yuzu/ui_settings.h"
 | 
			
		||||
 | 
			
		||||
ConfigurePerGameGeneral::ConfigurePerGameGeneral(u64 title_id, QWidget* parent)
 | 
			
		||||
    : QDialog(parent), ui(std::make_unique<Ui::ConfigurePerGameGeneral>()), title_id(title_id) {
 | 
			
		||||
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    setFocusPolicy(Qt::ClickFocus);
 | 
			
		||||
    setWindowTitle(tr("Properties"));
 | 
			
		||||
 | 
			
		||||
    layout = new QVBoxLayout;
 | 
			
		||||
    tree_view = new QTreeView;
 | 
			
		||||
    item_model = new QStandardItemModel(tree_view);
 | 
			
		||||
    tree_view->setModel(item_model);
 | 
			
		||||
    tree_view->setAlternatingRowColors(true);
 | 
			
		||||
    tree_view->setSelectionMode(QHeaderView::SingleSelection);
 | 
			
		||||
    tree_view->setSelectionBehavior(QHeaderView::SelectRows);
 | 
			
		||||
    tree_view->setVerticalScrollMode(QHeaderView::ScrollPerPixel);
 | 
			
		||||
    tree_view->setHorizontalScrollMode(QHeaderView::ScrollPerPixel);
 | 
			
		||||
    tree_view->setSortingEnabled(true);
 | 
			
		||||
    tree_view->setEditTriggers(QHeaderView::NoEditTriggers);
 | 
			
		||||
    tree_view->setUniformRowHeights(true);
 | 
			
		||||
    tree_view->setContextMenuPolicy(Qt::NoContextMenu);
 | 
			
		||||
 | 
			
		||||
    item_model->insertColumns(0, 2);
 | 
			
		||||
    item_model->setHeaderData(0, Qt::Horizontal, "Patch Name");
 | 
			
		||||
    item_model->setHeaderData(1, Qt::Horizontal, "Version");
 | 
			
		||||
 | 
			
		||||
    // We must register all custom types with the Qt Automoc system so that we are able to use it
 | 
			
		||||
    // with signals/slots. In this case, QList falls under the umbrells of custom types.
 | 
			
		||||
    qRegisterMetaType<QList<QStandardItem*>>("QList<QStandardItem*>");
 | 
			
		||||
 | 
			
		||||
    layout->setContentsMargins(0, 0, 0, 0);
 | 
			
		||||
    layout->setSpacing(0);
 | 
			
		||||
    layout->addWidget(tree_view);
 | 
			
		||||
 | 
			
		||||
    ui->scrollArea->setLayout(layout);
 | 
			
		||||
 | 
			
		||||
    scene = new QGraphicsScene;
 | 
			
		||||
    ui->icon_view->setScene(scene);
 | 
			
		||||
 | 
			
		||||
    connect(item_model, &QStandardItemModel::itemChanged,
 | 
			
		||||
            [&]() { UISettings::values.is_game_list_reload_pending.exchange(true); });
 | 
			
		||||
 | 
			
		||||
    this->loadConfiguration();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigurePerGameGeneral::applyConfiguration() {
 | 
			
		||||
    std::vector<std::string> disabled_addons;
 | 
			
		||||
 | 
			
		||||
    for (const auto& item : list_items) {
 | 
			
		||||
        const auto disabled = item.front()->checkState() == Qt::Unchecked;
 | 
			
		||||
        if (disabled)
 | 
			
		||||
            disabled_addons.push_back(item.front()->text().toStdString());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Settings::values.disabled_addons[title_id] = disabled_addons;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigurePerGameGeneral::loadFromFile(FileSys::VirtualFile file) {
 | 
			
		||||
    this->file = std::move(file);
 | 
			
		||||
    this->loadConfiguration();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ConfigurePerGameGeneral::loadConfiguration() {
 | 
			
		||||
    if (file == nullptr)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    const auto loader = Loader::GetLoader(file);
 | 
			
		||||
 | 
			
		||||
    ui->display_title_id->setText(fmt::format("{:016X}", title_id).c_str());
 | 
			
		||||
 | 
			
		||||
    FileSys::PatchManager pm{title_id};
 | 
			
		||||
    const auto control = pm.GetControlMetadata();
 | 
			
		||||
 | 
			
		||||
    if (control.first != nullptr) {
 | 
			
		||||
        ui->display_version->setText(QString::fromStdString(control.first->GetVersionString()));
 | 
			
		||||
        ui->display_name->setText(QString::fromStdString(control.first->GetApplicationName()));
 | 
			
		||||
        ui->display_developer->setText(QString::fromStdString(control.first->GetDeveloperName()));
 | 
			
		||||
    } else {
 | 
			
		||||
        std::string title;
 | 
			
		||||
        if (loader->ReadTitle(title) == Loader::ResultStatus::Success)
 | 
			
		||||
            ui->display_name->setText(QString::fromStdString(title));
 | 
			
		||||
 | 
			
		||||
        std::string developer;
 | 
			
		||||
        if (loader->ReadDeveloper(developer) == Loader::ResultStatus::Success)
 | 
			
		||||
            ui->display_developer->setText(QString::fromStdString(developer));
 | 
			
		||||
 | 
			
		||||
        ui->display_version->setText("1.0.0");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (control.second != nullptr) {
 | 
			
		||||
        scene->clear();
 | 
			
		||||
 | 
			
		||||
        QPixmap map;
 | 
			
		||||
        const auto bytes = control.second->ReadAllBytes();
 | 
			
		||||
        map.loadFromData(bytes.data(), bytes.size());
 | 
			
		||||
 | 
			
		||||
        scene->addPixmap(map.scaled(ui->icon_view->width(), ui->icon_view->height(),
 | 
			
		||||
                                    Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
 | 
			
		||||
    } else {
 | 
			
		||||
        std::vector<u8> bytes;
 | 
			
		||||
        if (loader->ReadIcon(bytes) == Loader::ResultStatus::Success) {
 | 
			
		||||
            scene->clear();
 | 
			
		||||
 | 
			
		||||
            QPixmap map;
 | 
			
		||||
            map.loadFromData(bytes.data(), bytes.size());
 | 
			
		||||
 | 
			
		||||
            scene->addPixmap(map.scaled(ui->icon_view->width(), ui->icon_view->height(),
 | 
			
		||||
                                        Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    FileSys::VirtualFile update_raw;
 | 
			
		||||
    loader->ReadUpdateRaw(update_raw);
 | 
			
		||||
 | 
			
		||||
    const auto& disabled = Settings::values.disabled_addons[title_id];
 | 
			
		||||
 | 
			
		||||
    for (const auto& patch : pm.GetPatchVersionNames(update_raw)) {
 | 
			
		||||
        QStandardItem* first_item = new QStandardItem;
 | 
			
		||||
        const auto name = QString::fromStdString(patch.first).replace("[D] ", "");
 | 
			
		||||
        first_item->setText(name);
 | 
			
		||||
        first_item->setCheckable(true);
 | 
			
		||||
 | 
			
		||||
        const auto patch_disabled =
 | 
			
		||||
            std::find(disabled.begin(), disabled.end(), name.toStdString()) != disabled.end();
 | 
			
		||||
 | 
			
		||||
        first_item->setCheckState(patch_disabled ? Qt::Unchecked : Qt::Checked);
 | 
			
		||||
 | 
			
		||||
        list_items.push_back(QList<QStandardItem*>{
 | 
			
		||||
            first_item, new QStandardItem{QString::fromStdString(patch.second)}});
 | 
			
		||||
        item_model->appendRow(list_items.back());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    tree_view->setColumnWidth(0, 5 * tree_view->width() / 16);
 | 
			
		||||
 | 
			
		||||
    ui->display_filename->setText(QString::fromStdString(file->GetName()));
 | 
			
		||||
 | 
			
		||||
    ui->display_format->setText(
 | 
			
		||||
        QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType())));
 | 
			
		||||
 | 
			
		||||
    QLocale locale = this->locale();
 | 
			
		||||
    QString valueText = locale.formattedDataSize(file->GetSize());
 | 
			
		||||
    ui->display_size->setText(valueText);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										56
									
								
								src/yuzu/configuration/configure_per_general.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								src/yuzu/configuration/configure_per_general.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,56 @@
 | 
			
		||||
// Copyright 2016 Citra Emulator Project
 | 
			
		||||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <array>
 | 
			
		||||
#include <functional>
 | 
			
		||||
#include <memory>
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <unordered_map>
 | 
			
		||||
#include <QKeyEvent>
 | 
			
		||||
#include <QList>
 | 
			
		||||
#include <QWidget>
 | 
			
		||||
#include <boost/optional.hpp>
 | 
			
		||||
#include "common/param_package.h"
 | 
			
		||||
#include "core/file_sys/vfs.h"
 | 
			
		||||
#include "core/settings.h"
 | 
			
		||||
#include "input_common/main.h"
 | 
			
		||||
#include "ui_configure_per_general.h"
 | 
			
		||||
#include "yuzu/configuration/config.h"
 | 
			
		||||
 | 
			
		||||
class QTreeView;
 | 
			
		||||
class QGraphicsScene;
 | 
			
		||||
class QStandardItem;
 | 
			
		||||
class QStandardItemModel;
 | 
			
		||||
 | 
			
		||||
namespace Ui {
 | 
			
		||||
class ConfigurePerGameGeneral;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ConfigurePerGameGeneral : public QDialog {
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    explicit ConfigurePerGameGeneral(u64 title_id, QWidget* parent = nullptr);
 | 
			
		||||
 | 
			
		||||
    /// Save all button configurations to settings file
 | 
			
		||||
    void applyConfiguration();
 | 
			
		||||
 | 
			
		||||
    void loadFromFile(FileSys::VirtualFile file);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::unique_ptr<Ui::ConfigurePerGameGeneral> ui;
 | 
			
		||||
    FileSys::VirtualFile file;
 | 
			
		||||
    u64 title_id;
 | 
			
		||||
 | 
			
		||||
    QVBoxLayout* layout;
 | 
			
		||||
    QTreeView* tree_view;
 | 
			
		||||
    QStandardItemModel* item_model;
 | 
			
		||||
    QGraphicsScene* scene;
 | 
			
		||||
 | 
			
		||||
    std::vector<QList<QStandardItem*>> list_items;
 | 
			
		||||
 | 
			
		||||
    void loadConfiguration();
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										276
									
								
								src/yuzu/configuration/configure_per_general.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										276
									
								
								src/yuzu/configuration/configure_per_general.ui
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,276 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<ui version="4.0">
 | 
			
		||||
 <class>ConfigurePerGameGeneral</class>
 | 
			
		||||
 <widget class="QDialog" name="ConfigurePerGameGeneral">
 | 
			
		||||
  <property name="geometry">
 | 
			
		||||
   <rect>
 | 
			
		||||
    <x>0</x>
 | 
			
		||||
    <y>0</y>
 | 
			
		||||
    <width>400</width>
 | 
			
		||||
    <height>520</height>
 | 
			
		||||
   </rect>
 | 
			
		||||
  </property>
 | 
			
		||||
  <property name="windowTitle">
 | 
			
		||||
   <string>ConfigurePerGameGeneral</string>
 | 
			
		||||
  </property>
 | 
			
		||||
  <layout class="QHBoxLayout" name="HorizontalLayout">
 | 
			
		||||
   <item>
 | 
			
		||||
    <layout class="QVBoxLayout" name="VerticalLayout">
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QGroupBox" name="GeneralGroupBox">
 | 
			
		||||
       <property name="title">
 | 
			
		||||
        <string>Info</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <layout class="QHBoxLayout" name="GeneralHorizontalLayout">
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QGridLayout" name="gridLayout_2">
 | 
			
		||||
          <item row="6" column="1" colspan="2">
 | 
			
		||||
           <widget class="QLineEdit" name="display_filename">
 | 
			
		||||
            <property name="enabled">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="readOnly">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="0" column="1">
 | 
			
		||||
           <widget class="QLineEdit" name="display_name">
 | 
			
		||||
            <property name="enabled">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="readOnly">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="1" column="0">
 | 
			
		||||
           <widget class="QLabel" name="label_2">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Developer</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="5" column="1" colspan="2">
 | 
			
		||||
           <widget class="QLineEdit" name="display_size">
 | 
			
		||||
            <property name="enabled">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="readOnly">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="0" column="0">
 | 
			
		||||
           <widget class="QLabel" name="label">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Name</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="6" column="0">
 | 
			
		||||
           <widget class="QLabel" name="label_7">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Filename</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="2" column="0">
 | 
			
		||||
           <widget class="QLabel" name="label_3">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Version</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="4" column="0">
 | 
			
		||||
           <widget class="QLabel" name="label_5">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Format</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="2" column="1">
 | 
			
		||||
           <widget class="QLineEdit" name="display_version">
 | 
			
		||||
            <property name="enabled">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="readOnly">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="4" column="1">
 | 
			
		||||
           <widget class="QLineEdit" name="display_format">
 | 
			
		||||
            <property name="enabled">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="readOnly">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="5" column="0">
 | 
			
		||||
           <widget class="QLabel" name="label_6">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Size</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="1" column="1">
 | 
			
		||||
           <widget class="QLineEdit" name="display_developer">
 | 
			
		||||
            <property name="enabled">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="readOnly">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="3" column="0">
 | 
			
		||||
           <widget class="QLabel" name="label_4">
 | 
			
		||||
            <property name="text">
 | 
			
		||||
             <string>Title ID</string>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="3" column="1">
 | 
			
		||||
           <widget class="QLineEdit" name="display_title_id">
 | 
			
		||||
            <property name="enabled">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="readOnly">
 | 
			
		||||
             <bool>true</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
          <item row="0" column="2" rowspan="5">
 | 
			
		||||
           <widget class="QGraphicsView" name="icon_view">
 | 
			
		||||
            <property name="sizePolicy">
 | 
			
		||||
             <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
 | 
			
		||||
              <horstretch>0</horstretch>
 | 
			
		||||
              <verstretch>0</verstretch>
 | 
			
		||||
             </sizepolicy>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="minimumSize">
 | 
			
		||||
             <size>
 | 
			
		||||
              <width>128</width>
 | 
			
		||||
              <height>128</height>
 | 
			
		||||
             </size>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="maximumSize">
 | 
			
		||||
             <size>
 | 
			
		||||
              <width>128</width>
 | 
			
		||||
              <height>128</height>
 | 
			
		||||
             </size>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="verticalScrollBarPolicy">
 | 
			
		||||
             <enum>Qt::ScrollBarAlwaysOff</enum>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="horizontalScrollBarPolicy">
 | 
			
		||||
             <enum>Qt::ScrollBarAlwaysOff</enum>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="sizeAdjustPolicy">
 | 
			
		||||
             <enum>QAbstractScrollArea::AdjustToContents</enum>
 | 
			
		||||
            </property>
 | 
			
		||||
            <property name="interactive">
 | 
			
		||||
             <bool>false</bool>
 | 
			
		||||
            </property>
 | 
			
		||||
           </widget>
 | 
			
		||||
          </item>
 | 
			
		||||
         </layout>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QGroupBox" name="PerformanceGroupBox">
 | 
			
		||||
       <property name="title">
 | 
			
		||||
        <string>Add-Ons</string>
 | 
			
		||||
       </property>
 | 
			
		||||
       <layout class="QHBoxLayout" name="PerformanceHorizontalLayout">
 | 
			
		||||
        <item>
 | 
			
		||||
         <widget class="QScrollArea" name="scrollArea">
 | 
			
		||||
          <property name="widgetResizable">
 | 
			
		||||
           <bool>true</bool>
 | 
			
		||||
          </property>
 | 
			
		||||
          <widget class="QWidget" name="scrollAreaWidgetContents">
 | 
			
		||||
           <property name="geometry">
 | 
			
		||||
            <rect>
 | 
			
		||||
             <x>0</x>
 | 
			
		||||
             <y>0</y>
 | 
			
		||||
             <width>350</width>
 | 
			
		||||
             <height>169</height>
 | 
			
		||||
            </rect>
 | 
			
		||||
           </property>
 | 
			
		||||
          </widget>
 | 
			
		||||
         </widget>
 | 
			
		||||
        </item>
 | 
			
		||||
        <item>
 | 
			
		||||
         <layout class="QVBoxLayout" name="PerformanceVerticalLayout"/>
 | 
			
		||||
        </item>
 | 
			
		||||
       </layout>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <spacer name="verticalSpacer">
 | 
			
		||||
       <property name="orientation">
 | 
			
		||||
        <enum>Qt::Vertical</enum>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="sizeType">
 | 
			
		||||
        <enum>QSizePolicy::Fixed</enum>
 | 
			
		||||
       </property>
 | 
			
		||||
       <property name="sizeHint" stdset="0">
 | 
			
		||||
        <size>
 | 
			
		||||
         <width>20</width>
 | 
			
		||||
         <height>40</height>
 | 
			
		||||
        </size>
 | 
			
		||||
       </property>
 | 
			
		||||
      </spacer>
 | 
			
		||||
     </item>
 | 
			
		||||
     <item>
 | 
			
		||||
      <widget class="QDialogButtonBox" name="buttonBox">
 | 
			
		||||
       <property name="standardButtons">
 | 
			
		||||
        <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
			
		||||
       </property>
 | 
			
		||||
      </widget>
 | 
			
		||||
     </item>
 | 
			
		||||
    </layout>
 | 
			
		||||
   </item>
 | 
			
		||||
  </layout>
 | 
			
		||||
 </widget>
 | 
			
		||||
 <resources/>
 | 
			
		||||
 <connections>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>buttonBox</sender>
 | 
			
		||||
   <signal>accepted()</signal>
 | 
			
		||||
   <receiver>ConfigurePerGameGeneral</receiver>
 | 
			
		||||
   <slot>accept()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>269</x>
 | 
			
		||||
     <y>567</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>269</x>
 | 
			
		||||
     <y>294</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
  <connection>
 | 
			
		||||
   <sender>buttonBox</sender>
 | 
			
		||||
   <signal>rejected()</signal>
 | 
			
		||||
   <receiver>ConfigurePerGameGeneral</receiver>
 | 
			
		||||
   <slot>reject()</slot>
 | 
			
		||||
   <hints>
 | 
			
		||||
    <hint type="sourcelabel">
 | 
			
		||||
     <x>269</x>
 | 
			
		||||
     <y>567</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
    <hint type="destinationlabel">
 | 
			
		||||
     <x>269</x>
 | 
			
		||||
     <y>294</y>
 | 
			
		||||
    </hint>
 | 
			
		||||
   </hints>
 | 
			
		||||
  </connection>
 | 
			
		||||
 </connections>
 | 
			
		||||
</ui>
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user