mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	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_mouse_advanced.h | ||||||
|     configuration/configure_system.cpp |     configuration/configure_system.cpp | ||||||
|     configuration/configure_system.h |     configuration/configure_system.h | ||||||
|  |     configuration/configure_per_general.cpp | ||||||
|  |     configuration/configure_per_general.h | ||||||
|     configuration/configure_touchscreen_advanced.cpp |     configuration/configure_touchscreen_advanced.cpp | ||||||
|     configuration/configure_touchscreen_advanced.h |     configuration/configure_touchscreen_advanced.h | ||||||
|     configuration/configure_web.cpp |     configuration/configure_web.cpp | ||||||
| @ -86,6 +88,7 @@ set(UIS | |||||||
|     configuration/configure_input.ui |     configuration/configure_input.ui | ||||||
|     configuration/configure_input_player.ui |     configuration/configure_input_player.ui | ||||||
|     configuration/configure_mouse_advanced.ui |     configuration/configure_mouse_advanced.ui | ||||||
|  |     configuration/configure_per_general.ui | ||||||
|     configuration/configure_system.ui |     configuration/configure_system.ui | ||||||
|     configuration/configure_touchscreen_advanced.ui |     configuration/configure_touchscreen_advanced.ui | ||||||
|     configuration/configure_web.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
	 Zach Hilman
						Zach Hilman