GameSettings: Put linux specific settings in a scrollarea
This commit is contained in:
parent
8535a30d8e
commit
31e767f0c0
3 changed files with 104 additions and 74 deletions
|
@ -3,7 +3,7 @@ import platform
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
|
|
||||||
from PyQt5.QtCore import QSettings, QThreadPool
|
from PyQt5.QtCore import QSettings, QThreadPool, Qt
|
||||||
from PyQt5.QtWidgets import QWidget, QFileDialog, QMessageBox, QLabel, QPushButton, QSizePolicy
|
from PyQt5.QtWidgets import QWidget, QFileDialog, QMessageBox, QLabel, QPushButton, QSizePolicy
|
||||||
from qtawesome import icon
|
from qtawesome import icon
|
||||||
|
|
||||||
|
@ -99,14 +99,16 @@ class GameSettings(QWidget, Ui_GameSettings):
|
||||||
self.proton_prefix_layout.addWidget(self.proton_prefix)
|
self.proton_prefix_layout.addWidget(self.proton_prefix)
|
||||||
|
|
||||||
self.linux_settings = LinuxAppSettings()
|
self.linux_settings = LinuxAppSettings()
|
||||||
# FIXME: Remove the spacerItem from the linux settings
|
# FIXME: Remove the spacerItem and margins from the linux settings
|
||||||
# FIXME: This should be handled differently at soem point in the future
|
# FIXME: This should be handled differently at soem point in the future
|
||||||
|
self.linux_settings.layout().setContentsMargins(0, 0, 0, 0)
|
||||||
for item in [self.linux_settings.layout().itemAt(idx) for idx in range(self.linux_settings.layout().count())]:
|
for item in [self.linux_settings.layout().itemAt(idx) for idx in range(self.linux_settings.layout().count())]:
|
||||||
if item.spacerItem():
|
if item.spacerItem():
|
||||||
self.linux_settings.layout().removeItem(item)
|
self.linux_settings.layout().removeItem(item)
|
||||||
del item
|
del item
|
||||||
# FIXME: End of FIXME
|
# FIXME: End of FIXME
|
||||||
self.linux_layout.addWidget(self.linux_settings)
|
self.linux_settings_contents_layout.addWidget(self.linux_settings)
|
||||||
|
self.linux_settings_contents_layout.setAlignment(Qt.AlignTop)
|
||||||
else:
|
else:
|
||||||
self.proton_groupbox.setVisible(False)
|
self.proton_groupbox.setVisible(False)
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ class Ui_GameSettings(object):
|
||||||
self.wrapper_button.setObjectName("wrapper_button")
|
self.wrapper_button.setObjectName("wrapper_button")
|
||||||
self.wrapper_layout.addWidget(self.wrapper_button)
|
self.wrapper_layout.addWidget(self.wrapper_button)
|
||||||
self.launch_settings_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.wrapper_widget)
|
self.launch_settings_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.wrapper_widget)
|
||||||
self.game_settings_layout.addWidget(self.launch_settings_groupbox, 0, QtCore.Qt.AlignTop)
|
self.game_settings_layout.addWidget(self.launch_settings_groupbox)
|
||||||
self.cloud_gb = QtWidgets.QGroupBox(GameSettings)
|
self.cloud_gb = QtWidgets.QGroupBox(GameSettings)
|
||||||
self.cloud_gb.setObjectName("cloud_gb")
|
self.cloud_gb.setObjectName("cloud_gb")
|
||||||
self.cloud_saves_layout = QtWidgets.QFormLayout(self.cloud_gb)
|
self.cloud_saves_layout = QtWidgets.QFormLayout(self.cloud_gb)
|
||||||
|
@ -101,7 +101,19 @@ class Ui_GameSettings(object):
|
||||||
self.cloud_sync.setObjectName("cloud_sync")
|
self.cloud_sync.setObjectName("cloud_sync")
|
||||||
self.cloud_saves_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cloud_sync)
|
self.cloud_saves_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cloud_sync)
|
||||||
self.game_settings_layout.addWidget(self.cloud_gb)
|
self.game_settings_layout.addWidget(self.cloud_gb)
|
||||||
self.proton_groupbox = QtWidgets.QGroupBox(GameSettings)
|
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, 747, 343))
|
||||||
|
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, 0, 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_groupbox.setObjectName("proton_groupbox")
|
||||||
self.proton_layout = QtWidgets.QFormLayout(self.proton_groupbox)
|
self.proton_layout = QtWidgets.QFormLayout(self.proton_groupbox)
|
||||||
self.proton_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
self.proton_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||||
|
@ -124,13 +136,9 @@ class Ui_GameSettings(object):
|
||||||
self.proton_prefix_layout = QtWidgets.QVBoxLayout()
|
self.proton_prefix_layout = QtWidgets.QVBoxLayout()
|
||||||
self.proton_prefix_layout.setObjectName("proton_prefix_layout")
|
self.proton_prefix_layout.setObjectName("proton_prefix_layout")
|
||||||
self.proton_layout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.proton_prefix_layout)
|
self.proton_layout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.proton_prefix_layout)
|
||||||
self.linux_layout = QtWidgets.QVBoxLayout()
|
self.linux_settings_contents_layout.addWidget(self.proton_groupbox, 0, QtCore.Qt.AlignTop)
|
||||||
self.linux_layout.setSpacing(0)
|
self.linux_settings_scroll.setWidget(self.linux_settings_contents)
|
||||||
self.linux_layout.setObjectName("linux_layout")
|
self.game_settings_layout.addWidget(self.linux_settings_scroll)
|
||||||
self.proton_layout.setLayout(3, QtWidgets.QFormLayout.SpanningRole, self.linux_layout)
|
|
||||||
self.game_settings_layout.addWidget(self.proton_groupbox, 0, QtCore.Qt.AlignTop)
|
|
||||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
|
||||||
self.game_settings_layout.addItem(spacerItem)
|
|
||||||
|
|
||||||
self.retranslateUi(GameSettings)
|
self.retranslateUi(GameSettings)
|
||||||
QtCore.QMetaObject.connectSlotsByName(GameSettings)
|
QtCore.QMetaObject.connectSlotsByName(GameSettings)
|
||||||
|
@ -155,7 +163,7 @@ class Ui_GameSettings(object):
|
||||||
self.wrapper_button.setText(_translate("GameSettings", "Save"))
|
self.wrapper_button.setText(_translate("GameSettings", "Save"))
|
||||||
self.cloud_gb.setTitle(_translate("GameSettings", "Cloud Saves"))
|
self.cloud_gb.setTitle(_translate("GameSettings", "Cloud Saves"))
|
||||||
self.cloud_sync_label.setText(_translate("GameSettings", "Sync with cloud"))
|
self.cloud_sync_label.setText(_translate("GameSettings", "Sync with cloud"))
|
||||||
self.proton_groupbox.setTitle(_translate("GameSettings", "Linux Settings"))
|
self.proton_groupbox.setTitle(_translate("GameSettings", "Proton Settings"))
|
||||||
self.proton_wrapper_label.setText(_translate("GameSettings", "Proton"))
|
self.proton_wrapper_label.setText(_translate("GameSettings", "Proton"))
|
||||||
self.proton_wrapper.setItemText(0, _translate("GameSettings", "Don\'t use Proton"))
|
self.proton_wrapper.setItemText(0, _translate("GameSettings", "Don\'t use Proton"))
|
||||||
self.proton_prefix_label.setText(_translate("GameSettings", "Prefix"))
|
self.proton_prefix_label.setText(_translate("GameSettings", "Prefix"))
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item alignment="Qt::AlignTop">
|
<item>
|
||||||
<widget class="QGroupBox" name="launch_settings_groupbox">
|
<widget class="QGroupBox" name="launch_settings_groupbox">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Launch Settings</string>
|
<string>Launch Settings</string>
|
||||||
|
@ -216,69 +216,89 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item alignment="Qt::AlignTop">
|
|
||||||
<widget class="QGroupBox" name="proton_groupbox">
|
|
||||||
<property name="title">
|
|
||||||
<string>Linux 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>
|
|
||||||
<item row="3" column="0" colspan="2">
|
|
||||||
<layout class="QVBoxLayout" name="linux_layout">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="game_settings_vspacer">
|
<widget class="QScrollArea" name="linux_settings_scroll">
|
||||||
<property name="orientation">
|
<property name="frameShape">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="horizontalScrollBarPolicy">
|
||||||
<size>
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QAbstractScrollArea::AdjustToContents</enum>
|
||||||
|
</property>
|
||||||
|
<property name="widgetResizable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="linux_settings_contents">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>747</width>
|
||||||
|
<height>343</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="linux_settings_contents_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 alignment="Qt::AlignTop">
|
||||||
|
<widget class="QGroupBox" name="proton_groupbox">
|
||||||
|
<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>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
Loading…
Reference in a new issue