1
0
Fork 0
mirror of synced 2024-09-30 09:17:37 +13:00

GameSettings: Put linux specific settings in a scrollarea

This commit is contained in:
Stelios Tsampas 2021-11-22 18:32:11 +02:00
parent 8535a30d8e
commit 31e767f0c0
No known key found for this signature in database
GPG key ID: 2FAEBF7B5BE5FD7C
3 changed files with 104 additions and 74 deletions

View file

@ -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)

View file

@ -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"))

View file

@ -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>