1
0
Fork 0
mirror of synced 2024-06-26 10:11:19 +12:00

GameSettings: Convert to scrollarea (#183)

This commit is contained in:
Stelios Tsampas 2022-03-08 21:16:35 +02:00 committed by Dummerle
parent f081f3943d
commit 063e7ddbaf
No known key found for this signature in database
GPG key ID: AB68CC59CA39F2F1
3 changed files with 276 additions and 250 deletions

View file

@ -70,7 +70,7 @@ class GameSettings(QWidget, Ui_GameSettings):
edit_func=lambda text: (os.path.exists(text), text, PathEdit.reasons.dir_not_exist),
save_func=self.save_save_path,
)
self.cloud_gb.layout().addRow(
self.cloud_layout.addRow(
QLabel(self.tr("Save path")), self.cloud_save_path_edit
)
@ -81,7 +81,7 @@ class GameSettings(QWidget, Ui_GameSettings):
QSizePolicy.Maximum, QSizePolicy.Fixed
)
self.compute_save_path_button.clicked.connect(self.compute_save_path)
self.cloud_gb.layout().addRow(None, self.compute_save_path_button)
self.cloud_layout.addRow(None, self.compute_save_path_button)
self.offline.currentIndexChanged.connect(
lambda x: self.update_combobox(x, "offline")
@ -127,11 +127,11 @@ class GameSettings(QWidget, Ui_GameSettings):
self.linux_settings.layout().removeItem(item)
del item
# FIXME: End of FIXME
self.linux_settings_contents_layout.addWidget(self.linux_settings)
self.linux_settings_contents_layout.setAlignment(Qt.AlignTop)
self.linux_settings_layout.addWidget(self.linux_settings)
self.linux_settings_layout.setAlignment(Qt.AlignTop)
else:
self.linux_settings_scroll.setVisible(False)
self.game_settings_layout.setAlignment(Qt.AlignTop)
self.linux_settings_widget.setVisible(False)
self.game_settings_contents_layout.setAlignment(Qt.AlignTop)
def compute_save_path(self):
if (
@ -307,9 +307,9 @@ class GameSettings(QWidget, Ui_GameSettings):
self.linux_settings.update_game(app_name)
if self.igame and self.igame.platform == "Mac":
self.linux_settings_scroll.setVisible(False)
self.linux_settings_widget.setVisible(False)
else:
self.linux_settings_scroll.setVisible(True)
self.linux_settings_widget.setVisible(True)
proton = self.core.lgd.config.get(
f"{app_name}", "wrapper", fallback=""
@ -334,10 +334,10 @@ class GameSettings(QWidget, Ui_GameSettings):
self.linux_settings.wine_groupbox.setEnabled(True)
if not self.game.supports_cloud_saves:
self.cloud_gb.setEnabled(False)
self.cloud_group.setEnabled(False)
self.cloud_save_path_edit.setText("")
else:
self.cloud_gb.setEnabled(True)
self.cloud_group.setEnabled(True)
sync_cloud = self.settings.value(
f"{self.game.app_name}/auto_sync_cloud", True, bool
)

View file

@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtWidgets
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_GameSettings(object):
@ -19,24 +19,36 @@ class Ui_GameSettings(object):
self.game_settings_layout.setObjectName("game_settings_layout")
self.game_title = QtWidgets.QLabel(GameSettings)
self.game_title.setText("error")
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse)
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.game_title.setObjectName("game_title")
self.game_settings_layout.addWidget(self.game_title, 0, QtCore.Qt.AlignTop)
self.launch_settings_groupbox = QtWidgets.QGroupBox(GameSettings)
self.game_settings_scroll = QtWidgets.QScrollArea(GameSettings)
self.game_settings_scroll.setFrameShape(QtWidgets.QFrame.NoFrame)
self.game_settings_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.game_settings_scroll.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
self.game_settings_scroll.setWidgetResizable(True)
self.game_settings_scroll.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.game_settings_scroll.setObjectName("game_settings_scroll")
self.game_settings_contents = QtWidgets.QWidget()
self.game_settings_contents.setGeometry(QtCore.QRect(0, 0, 747, 585))
self.game_settings_contents.setObjectName("game_settings_contents")
self.game_settings_contents_layout = QtWidgets.QVBoxLayout(self.game_settings_contents)
self.game_settings_contents_layout.setContentsMargins(0, 0, 9, 0)
self.game_settings_contents_layout.setObjectName("game_settings_contents_layout")
self.launch_settings_group = QtWidgets.QGroupBox(self.game_settings_contents)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.launch_settings_groupbox.sizePolicy().hasHeightForWidth())
self.launch_settings_groupbox.setSizePolicy(sizePolicy)
self.launch_settings_groupbox.setObjectName("launch_settings_groupbox")
self.launch_settings_layout = QtWidgets.QFormLayout(self.launch_settings_groupbox)
self.launch_settings_layout.setLabelAlignment(
QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
sizePolicy.setHeightForWidth(self.launch_settings_group.sizePolicy().hasHeightForWidth())
self.launch_settings_group.setSizePolicy(sizePolicy)
self.launch_settings_group.setObjectName("launch_settings_group")
self.launch_settings_layout = QtWidgets.QFormLayout(self.launch_settings_group)
self.launch_settings_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.launch_settings_layout.setObjectName("launch_settings_layout")
self.skip_update_label = QtWidgets.QLabel(self.launch_settings_groupbox)
self.skip_update_label = QtWidgets.QLabel(self.launch_settings_group)
self.skip_update_label.setObjectName("skip_update_label")
self.launch_settings_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.skip_update_label)
self.skip_update = QtWidgets.QComboBox(self.launch_settings_groupbox)
self.skip_update = QtWidgets.QComboBox(self.launch_settings_group)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@ -47,10 +59,10 @@ class Ui_GameSettings(object):
self.skip_update.addItem("")
self.skip_update.addItem("")
self.launch_settings_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.skip_update)
self.offline_label = QtWidgets.QLabel(self.launch_settings_groupbox)
self.offline_label = QtWidgets.QLabel(self.launch_settings_group)
self.offline_label.setObjectName("offline_label")
self.launch_settings_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.offline_label)
self.offline = QtWidgets.QComboBox(self.launch_settings_groupbox)
self.offline = QtWidgets.QComboBox(self.launch_settings_group)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@ -61,62 +73,54 @@ class Ui_GameSettings(object):
self.offline.addItem("")
self.offline.addItem("")
self.launch_settings_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.offline)
self.launch_params_label = QtWidgets.QLabel(self.launch_settings_groupbox)
self.launch_params_label = QtWidgets.QLabel(self.launch_settings_group)
self.launch_params_label.setObjectName("launch_params_label")
self.launch_settings_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.launch_params_label)
self.launch_params = QtWidgets.QLineEdit(self.launch_settings_groupbox)
self.launch_params = QtWidgets.QLineEdit(self.launch_settings_group)
self.launch_params.setMinimumSize(QtCore.QSize(400, 0))
self.launch_params.setObjectName("launch_params")
self.launch_settings_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.launch_params)
self.wrapper_label = QtWidgets.QLabel(self.launch_settings_groupbox)
self.wrapper_label = QtWidgets.QLabel(self.launch_settings_group)
self.wrapper_label.setObjectName("wrapper_label")
self.launch_settings_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.wrapper_label)
self.wrapper = QtWidgets.QLineEdit(self.launch_settings_groupbox)
self.wrapper = QtWidgets.QLineEdit(self.launch_settings_group)
self.wrapper.setMinimumSize(QtCore.QSize(400, 0))
self.wrapper.setObjectName("wrapper")
self.launch_settings_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.wrapper)
self.override_exe_label = QtWidgets.QLabel(self.launch_settings_groupbox)
self.override_exe_label = QtWidgets.QLabel(self.launch_settings_group)
self.override_exe_label.setObjectName("override_exe_label")
self.launch_settings_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.override_exe_label)
self.override_exe_edit = QtWidgets.QLineEdit(self.launch_settings_groupbox)
self.override_exe_edit = QtWidgets.QLineEdit(self.launch_settings_group)
self.override_exe_edit.setObjectName("override_exe_edit")
self.launch_settings_layout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.override_exe_edit)
self.game_settings_layout.addWidget(self.launch_settings_groupbox)
self.cloud_gb = QtWidgets.QGroupBox(GameSettings)
self.cloud_gb.setObjectName("cloud_gb")
self.cloud_saves_layout = QtWidgets.QFormLayout(self.cloud_gb)
self.cloud_saves_layout.setLabelAlignment(
QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self.cloud_saves_layout.setObjectName("cloud_saves_layout")
self.cloud_sync_label = QtWidgets.QLabel(self.cloud_gb)
self.game_settings_contents_layout.addWidget(self.launch_settings_group)
self.cloud_group = QtWidgets.QGroupBox(self.game_settings_contents)
self.cloud_group.setObjectName("cloud_group")
self.cloud_layout = QtWidgets.QFormLayout(self.cloud_group)
self.cloud_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.cloud_layout.setObjectName("cloud_layout")
self.cloud_sync_label = QtWidgets.QLabel(self.cloud_group)
self.cloud_sync_label.setObjectName("cloud_sync_label")
self.cloud_saves_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.cloud_sync_label)
self.cloud_sync = QtWidgets.QCheckBox(self.cloud_gb)
self.cloud_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.cloud_sync_label)
self.cloud_sync = QtWidgets.QCheckBox(self.cloud_group)
self.cloud_sync.setText("")
self.cloud_sync.setObjectName("cloud_sync")
self.cloud_saves_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cloud_sync)
self.game_settings_layout.addWidget(self.cloud_gb)
self.linux_settings_scroll = QtWidgets.QScrollArea(GameSettings)
self.linux_settings_scroll.setFrameShape(QtWidgets.QFrame.NoFrame)
self.linux_settings_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.linux_settings_scroll.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
self.linux_settings_scroll.setWidgetResizable(True)
self.linux_settings_scroll.setObjectName("linux_settings_scroll")
self.linux_settings_contents = QtWidgets.QWidget()
self.linux_settings_contents.setGeometry(QtCore.QRect(0, 0, 741, 328))
self.linux_settings_contents.setObjectName("linux_settings_contents")
self.linux_settings_contents_layout = QtWidgets.QVBoxLayout(self.linux_settings_contents)
self.linux_settings_contents_layout.setContentsMargins(0, 0, 9, 0)
self.linux_settings_contents_layout.setObjectName("linux_settings_contents_layout")
self.proton_groupbox = QtWidgets.QGroupBox(self.linux_settings_contents)
self.proton_groupbox.setObjectName("proton_groupbox")
self.proton_layout = QtWidgets.QFormLayout(self.proton_groupbox)
self.cloud_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cloud_sync)
self.game_settings_contents_layout.addWidget(self.cloud_group)
self.linux_settings_widget = QtWidgets.QWidget(self.game_settings_contents)
self.linux_settings_widget.setObjectName("linux_settings_widget")
self.linux_settings_layout = QtWidgets.QVBoxLayout(self.linux_settings_widget)
self.linux_settings_layout.setContentsMargins(0, 0, 0, 0)
self.linux_settings_layout.setObjectName("linux_settings_layout")
self.proton_group = QtWidgets.QGroupBox(self.linux_settings_widget)
self.proton_group.setObjectName("proton_group")
self.proton_layout = QtWidgets.QFormLayout(self.proton_group)
self.proton_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.proton_layout.setObjectName("proton_layout")
self.proton_wrapper_label = QtWidgets.QLabel(self.proton_groupbox)
self.proton_wrapper_label = QtWidgets.QLabel(self.proton_group)
self.proton_wrapper_label.setObjectName("proton_wrapper_label")
self.proton_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.proton_wrapper_label)
self.proton_wrapper = QtWidgets.QComboBox(self.proton_groupbox)
self.proton_wrapper = QtWidgets.QComboBox(self.proton_group)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@ -125,15 +129,16 @@ class Ui_GameSettings(object):
self.proton_wrapper.setObjectName("proton_wrapper")
self.proton_wrapper.addItem("")
self.proton_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.proton_wrapper)
self.proton_prefix_label = QtWidgets.QLabel(self.proton_groupbox)
self.proton_prefix_label = QtWidgets.QLabel(self.proton_group)
self.proton_prefix_label.setObjectName("proton_prefix_label")
self.proton_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.proton_prefix_label)
self.proton_prefix_layout = QtWidgets.QVBoxLayout()
self.proton_prefix_layout.setObjectName("proton_prefix_layout")
self.proton_layout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.proton_prefix_layout)
self.linux_settings_contents_layout.addWidget(self.proton_groupbox, 0, QtCore.Qt.AlignTop)
self.linux_settings_scroll.setWidget(self.linux_settings_contents)
self.game_settings_layout.addWidget(self.linux_settings_scroll)
self.linux_settings_layout.addWidget(self.proton_group)
self.game_settings_contents_layout.addWidget(self.linux_settings_widget)
self.game_settings_scroll.setWidget(self.game_settings_contents)
self.game_settings_layout.addWidget(self.game_settings_scroll)
self.retranslateUi(GameSettings)
QtCore.QMetaObject.connectSlotsByName(GameSettings)
@ -141,7 +146,7 @@ class Ui_GameSettings(object):
def retranslateUi(self, GameSettings):
_translate = QtCore.QCoreApplication.translate
GameSettings.setWindowTitle(_translate("GameSettings", "GameSettings"))
self.launch_settings_groupbox.setTitle(_translate("GameSettings", "Launch Settings"))
self.launch_settings_group.setTitle(_translate("GameSettings", "Launch Settings"))
self.skip_update_label.setText(_translate("GameSettings", "Skip update check"))
self.skip_update.setItemText(0, _translate("GameSettings", "Default"))
self.skip_update.setItemText(1, _translate("GameSettings", "Yes"))
@ -156,9 +161,9 @@ class Ui_GameSettings(object):
self.wrapper.setPlaceholderText(_translate("GameSettings", "e.g. optirun"))
self.override_exe_label.setText(_translate("GameSettings", "Override Exe"))
self.override_exe_edit.setPlaceholderText(_translate("GameSettings", "Relative path to launch executable"))
self.cloud_gb.setTitle(_translate("GameSettings", "Cloud Saves"))
self.cloud_group.setTitle(_translate("GameSettings", "Cloud Saves"))
self.cloud_sync_label.setText(_translate("GameSettings", "Sync with cloud"))
self.proton_groupbox.setTitle(_translate("GameSettings", "Proton Settings"))
self.proton_group.setTitle(_translate("GameSettings", "Proton Settings"))
self.proton_wrapper_label.setText(_translate("GameSettings", "Proton"))
self.proton_wrapper.setItemText(0, _translate("GameSettings", "Don\'t use Proton"))
self.proton_prefix_label.setText(_translate("GameSettings", "Prefix"))

View file

@ -25,169 +25,7 @@
</widget>
</item>
<item>
<widget class="QGroupBox" name="launch_settings_groupbox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Launch Settings</string>
</property>
<layout class="QFormLayout" name="launch_settings_layout">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="skip_update_label">
<property name="text">
<string>Skip update check</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="skip_update">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="offline_label">
<property name="text">
<string>Offline mode</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="offline">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="launch_params_label">
<property name="text">
<string>Launch parameters</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="launch_params">
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>parameters</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="wrapper_label">
<property name="text">
<string>Wrapper</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="wrapper">
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>e.g. optirun</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="override_exe_label">
<property name="text">
<string>Override Exe</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="override_exe_edit">
<property name="placeholderText">
<string>Relative path to launch executable</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="cloud_gb">
<property name="title">
<string>Cloud Saves</string>
</property>
<layout class="QFormLayout" name="cloud_saves_layout">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="cloud_sync_label">
<property name="text">
<string>Sync with cloud</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="cloud_sync">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QScrollArea" name="linux_settings_scroll">
<widget class="QScrollArea" name="game_settings_scroll">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
@ -200,16 +38,19 @@
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="linux_settings_contents">
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<widget class="QWidget" name="game_settings_contents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>741</width>
<height>328</height>
</rect>
<rect>
<x>0</x>
<y>0</y>
<width>747</width>
<height>585</height>
</rect>
</property>
<layout class="QVBoxLayout" name="linux_settings_contents_layout">
<layout class="QVBoxLayout" name="game_settings_contents_layout" stretch="0,0,0">
<property name="leftMargin">
<number>0</number>
</property>
@ -222,24 +63,30 @@
<property name="bottomMargin">
<number>0</number>
</property>
<item alignment="Qt::AlignTop">
<widget class="QGroupBox" name="proton_groupbox">
<property name="title">
<string>Proton Settings</string>
<item>
<widget class="QGroupBox" name="launch_settings_group">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QFormLayout" name="proton_layout">
<property name="title">
<string>Launch Settings</string>
</property>
<layout class="QFormLayout" name="launch_settings_layout">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="1" column="0">
<widget class="QLabel" name="proton_wrapper_label">
<item row="0" column="0">
<widget class="QLabel" name="skip_update_label">
<property name="text">
<string>Proton</string>
<string>Skip update check</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="proton_wrapper">
<item row="0" column="1">
<widget class="QComboBox" name="skip_update">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -248,20 +95,194 @@
</property>
<item>
<property name="text">
<string>Don't use Proton</string>
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="offline_label">
<property name="text">
<string>Offline mode</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="offline">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Default</string>
</property>
</item>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="proton_prefix_label">
<widget class="QLabel" name="launch_params_label">
<property name="text">
<string>Prefix</string>
<string>Launch parameters</string>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QVBoxLayout" name="proton_prefix_layout"/>
<widget class="QLineEdit" name="launch_params">
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>parameters</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="wrapper_label">
<property name="text">
<string>Wrapper</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="wrapper">
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<property name="placeholderText">
<string>e.g. optirun</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="override_exe_label">
<property name="text">
<string>Override Exe</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="override_exe_edit">
<property name="placeholderText">
<string>Relative path to launch executable</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="cloud_group">
<property name="title">
<string>Cloud Saves</string>
</property>
<layout class="QFormLayout" name="cloud_layout">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="cloud_sync_label">
<property name="text">
<string>Sync with cloud</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="cloud_sync">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="linux_settings_widget" native="true">
<layout class="QVBoxLayout" name="linux_settings_layout">
<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>
<widget class="QGroupBox" name="proton_group">
<property name="title">
<string>Proton Settings</string>
</property>
<layout class="QFormLayout" name="proton_layout">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<item row="1" column="0">
<widget class="QLabel" name="proton_wrapper_label">
<property name="text">
<string>Proton</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="proton_wrapper">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Don't use Proton</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="proton_prefix_label">
<property name="text">
<string>Prefix</string>
</property>
</widget>
</item>
<item row="2" column="1">
<layout class="QVBoxLayout" name="proton_prefix_layout"/>
</item>
</layout>
</widget>
</item>
</layout>
</widget>