diff --git a/rare/components/tabs/games/game_info/game_settings.py b/rare/components/tabs/games/game_info/game_settings.py index 88b84de2..c8c2598c 100644 --- a/rare/components/tabs/games/game_info/game_settings.py +++ b/rare/components/tabs/games/game_info/game_settings.py @@ -3,7 +3,7 @@ import platform from logging import getLogger 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 qtawesome import icon @@ -99,14 +99,16 @@ class GameSettings(QWidget, Ui_GameSettings): self.proton_prefix_layout.addWidget(self.proton_prefix) 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 + 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())]: if item.spacerItem(): self.linux_settings.layout().removeItem(item) del item # 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: self.proton_groupbox.setVisible(False) diff --git a/rare/ui/components/tabs/games/game_info/game_settings.py b/rare/ui/components/tabs/games/game_info/game_settings.py index 438fb1a5..4f400ecf 100644 --- a/rare/ui/components/tabs/games/game_info/game_settings.py +++ b/rare/ui/components/tabs/games/game_info/game_settings.py @@ -87,7 +87,7 @@ class Ui_GameSettings(object): self.wrapper_button.setObjectName("wrapper_button") self.wrapper_layout.addWidget(self.wrapper_button) 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.setObjectName("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_saves_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.cloud_sync) 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_layout = QtWidgets.QFormLayout(self.proton_groupbox) 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.setObjectName("proton_prefix_layout") self.proton_layout.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.proton_prefix_layout) - self.linux_layout = QtWidgets.QVBoxLayout() - self.linux_layout.setSpacing(0) - self.linux_layout.setObjectName("linux_layout") - 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.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.retranslateUi(GameSettings) QtCore.QMetaObject.connectSlotsByName(GameSettings) @@ -155,7 +163,7 @@ class Ui_GameSettings(object): self.wrapper_button.setText(_translate("GameSettings", "Save")) self.cloud_gb.setTitle(_translate("GameSettings", "Cloud Saves")) 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.setItemText(0, _translate("GameSettings", "Don\'t use Proton")) self.proton_prefix_label.setText(_translate("GameSettings", "Prefix")) diff --git a/rare/ui/components/tabs/games/game_info/game_settings.ui b/rare/ui/components/tabs/games/game_info/game_settings.ui index 41374075..64486a73 100644 --- a/rare/ui/components/tabs/games/game_info/game_settings.ui +++ b/rare/ui/components/tabs/games/game_info/game_settings.ui @@ -24,7 +24,7 @@ - + Launch Settings @@ -216,69 +216,89 @@ - - - - Linux Settings - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - Proton - - - - - - - - 0 - 0 - - - - - Don't use Proton - - - - - - - - Prefix - - - - - - - - - - 0 - - - - - - - - - Qt::Vertical + + + QFrame::NoFrame - - - 20 - 40 - + + Qt::ScrollBarAlwaysOff - + + QAbstractScrollArea::AdjustToContents + + + true + + + + + 0 + 0 + 747 + 343 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Proton Settings + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + Proton + + + + + + + + 0 + 0 + + + + + Don't use Proton + + + + + + + + Prefix + + + + + + + + + + + +