Update Wrapper settings
This commit is contained in:
parent
66c29f5a2f
commit
d1df48e837
6 changed files with 359 additions and 166 deletions
|
@ -17,6 +17,7 @@ from legendary.core import LegendaryCore
|
|||
from legendary.models.game import InstalledGame, Game
|
||||
|
||||
from rare.components.tabs.settings.linux import LinuxSettings
|
||||
from rare.components.tabs.settings.wrapper import WrapperSettings
|
||||
from rare.ui.components.tabs.games.game_info.game_settings import Ui_GameSettings
|
||||
from rare.utils import config_helper
|
||||
from rare.utils.extra_widgets import PathEdit
|
||||
|
@ -64,6 +65,12 @@ class GameSettings(QWidget, Ui_GameSettings):
|
|||
self.core = core
|
||||
self.settings = QSettings()
|
||||
|
||||
self.wrapper_settings = WrapperSettings()
|
||||
|
||||
self.launch_settings_groupbox.layout().addRow(
|
||||
QLabel("Wrapper"), self.wrapper_settings
|
||||
)
|
||||
|
||||
self.cloud_save_path_edit = PathEdit(
|
||||
"",
|
||||
file_type=QFileDialog.DirectoryOnly,
|
||||
|
@ -98,10 +105,6 @@ class GameSettings(QWidget, Ui_GameSettings):
|
|||
self.launch_params.textChanged.connect(
|
||||
lambda x: self.save_line_edit("start_params", x)
|
||||
)
|
||||
self.wrapper.textChanged.connect(lambda x: self.save_line_edit("wrapper", x))
|
||||
self.override_exe_edit.textChanged.connect(
|
||||
lambda x: self.save_line_edit("override_exe", x)
|
||||
)
|
||||
|
||||
if platform.system() != "Windows":
|
||||
self.possible_proton_wrappers = find_proton_wrappers()
|
||||
|
@ -218,9 +221,9 @@ class GameSettings(QWidget, Ui_GameSettings):
|
|||
|
||||
def change_proton(self, i):
|
||||
if self.change:
|
||||
# Dont use Proton
|
||||
# First combo box entry: Don't use Proton
|
||||
if i == 0:
|
||||
config_helper.remove_option(self.game.app_name, "wrapper")
|
||||
self.wrapper_settings.delete_wrapper("proton")
|
||||
config_helper.remove_option(self.game.app_name, "no_wine")
|
||||
config_helper.remove_option(f"{self.game.app_name}.env", "STEAM_COMPAT_DATA_PATH")
|
||||
config_helper.remove_option(f"{self.game.app_name}.env", "STEAM_COMPAT_CLIENT_INSTALL_PATH")
|
||||
|
@ -228,20 +231,14 @@ class GameSettings(QWidget, Ui_GameSettings):
|
|||
self.proton_prefix.setEnabled(False)
|
||||
# lk: TODO: This has to be fixed properly.
|
||||
# lk: It happens because of the widget update. Mask it for now behind disabling the save button
|
||||
self.wrapper.setText(
|
||||
self.core.lgd.config.get(
|
||||
f"{self.game.app_name}", "wrapper", fallback=""
|
||||
)
|
||||
)
|
||||
self.wrapper.setEnabled(True)
|
||||
|
||||
self.linux_settings.wine_groupbox.setEnabled(True)
|
||||
else:
|
||||
self.proton_prefix.setEnabled(True)
|
||||
self.wrapper.setEnabled(False)
|
||||
self.linux_settings.wine_groupbox.setEnabled(False)
|
||||
wrapper = self.possible_proton_wrappers[i - 1]
|
||||
|
||||
config_helper.add_option(self.game.app_name, "wrapper", wrapper)
|
||||
self.wrapper_settings.add_wrapper(wrapper)
|
||||
config_helper.add_option(self.game.app_name, "no_wine", "true")
|
||||
config_helper.add_option(
|
||||
f"{self.game.app_name}.env",
|
||||
|
@ -307,10 +304,8 @@ class GameSettings(QWidget, Ui_GameSettings):
|
|||
else:
|
||||
self.skip_update.setCurrentIndex(0)
|
||||
|
||||
wrapper = self.core.lgd.config.get(self.game.app_name, "wrapper", fallback="")
|
||||
self.wrapper.setText(wrapper)
|
||||
|
||||
self.game_title.setText(f"<h2>{self.game.app_title}</h2>")
|
||||
self.wrapper_settings.load_settings(app_name)
|
||||
if platform.system() != "Windows":
|
||||
self.linux_settings.update_game(app_name)
|
||||
|
||||
|
@ -319,9 +314,7 @@ class GameSettings(QWidget, Ui_GameSettings):
|
|||
else:
|
||||
self.linux_settings_widget.setVisible(True)
|
||||
|
||||
proton = self.core.lgd.config.get(
|
||||
f"{app_name}", "wrapper", fallback=""
|
||||
).replace('"', "")
|
||||
proton = self.wrapper_settings.extra_wrappers.get("proton", "").replace('"', "")
|
||||
if proton and "proton" in proton:
|
||||
self.proton_prefix.setEnabled(True)
|
||||
self.proton_wrapper.setCurrentText(
|
||||
|
@ -333,12 +326,10 @@ class GameSettings(QWidget, Ui_GameSettings):
|
|||
fallback=self.tr("Please select path for proton prefix"),
|
||||
)
|
||||
self.proton_prefix.setText(proton_prefix)
|
||||
self.wrapper.setEnabled(False)
|
||||
self.linux_settings.wine_groupbox.setEnabled(False)
|
||||
else:
|
||||
self.proton_wrapper.setCurrentIndex(0)
|
||||
self.proton_prefix.setEnabled(False)
|
||||
self.wrapper.setEnabled(True)
|
||||
self.linux_settings.wine_groupbox.setEnabled(True)
|
||||
|
||||
if not self.game.supports_cloud_saves:
|
||||
|
|
113
rare/components/tabs/settings/wrapper.py
Normal file
113
rare/components/tabs/settings/wrapper.py
Normal file
|
@ -0,0 +1,113 @@
|
|||
import re
|
||||
from logging import getLogger
|
||||
from typing import Dict
|
||||
|
||||
from PyQt5.QtCore import pyqtSignal
|
||||
from PyQt5.QtWidgets import QGroupBox, QHBoxLayout, QLabel, QPushButton, QInputDialog, QFrame, QWidget
|
||||
|
||||
from rare import shared
|
||||
from rare.ui.components.tabs.settings.wrapper import Ui_WrapperSettings
|
||||
from rare.utils import config_helper
|
||||
from rare.utils.extra_widgets import FlowLayout
|
||||
from rare.utils.utils import icon
|
||||
|
||||
logger = getLogger("Wrapper Settings")
|
||||
|
||||
extra_wrapper_regex = {
|
||||
"proton": "\".*proton\" run", # proton
|
||||
"mangohud": "mangohud" # mangohud
|
||||
}
|
||||
|
||||
|
||||
class WrapperWidget(QGroupBox):
|
||||
delete_wrapper = pyqtSignal(str)
|
||||
|
||||
def __init__(self, text: str):
|
||||
super(WrapperWidget, self).__init__()
|
||||
self.setLayout(QHBoxLayout())
|
||||
self.text = text
|
||||
self.layout().addWidget(QLabel(text))
|
||||
|
||||
self.delete_button = QPushButton(icon("ei.remove"), "")
|
||||
self.layout().addWidget(self.delete_button)
|
||||
self.delete_button.clicked.connect(self.delete)
|
||||
|
||||
def delete(self):
|
||||
self.delete_wrapper.emit(self.text)
|
||||
|
||||
|
||||
class WrapperSettings(QGroupBox, Ui_WrapperSettings):
|
||||
wrappers: Dict[str, WrapperWidget] = dict()
|
||||
extra_wrappers: Dict[str, str] = dict()
|
||||
app_name: str
|
||||
|
||||
def __init__(self):
|
||||
super(WrapperSettings, self).__init__("Wrapper")
|
||||
self.setupUi(self)
|
||||
self.widgets.setLayout(FlowLayout())
|
||||
self.core = shared.core
|
||||
|
||||
self.add_button.clicked.connect(self.add_button_pressed)
|
||||
|
||||
def get_wrapper_string(self):
|
||||
return " ".join(list(self.extra_wrappers.values()) + list(self.wrappers.keys()))
|
||||
|
||||
def add_button_pressed(self):
|
||||
wrapper, done = QInputDialog.getText(self, "Input Dialog", self.tr("Insert name of wrapper"))
|
||||
if not done:
|
||||
return
|
||||
self.add_wrapper(wrapper)
|
||||
|
||||
def add_wrapper(self, text: str):
|
||||
for key, extra_wrapper in extra_wrapper_regex.items():
|
||||
if re.match(extra_wrapper, text):
|
||||
self.extra_wrappers[key] = text
|
||||
self.save()
|
||||
return
|
||||
widget = WrapperWidget(text)
|
||||
widget.delete_wrapper.connect(self.delete_wrapper)
|
||||
self.widgets.layout().addWidget(widget)
|
||||
self.wrappers[text] = widget
|
||||
self.widget_stack.setCurrentIndex(0)
|
||||
|
||||
# flow layout bug
|
||||
self.widgets.update()
|
||||
self.save()
|
||||
|
||||
def delete_wrapper(self, text: str):
|
||||
widget = self.wrappers.get(text, None)
|
||||
if not widget and self.extra_wrappers.get(text, None):
|
||||
self.extra_wrappers.pop(text)
|
||||
elif widget:
|
||||
widget.deleteLater()
|
||||
self.wrappers.pop(text)
|
||||
|
||||
if len(self.wrappers) == 0:
|
||||
self.widget_stack.setCurrentIndex(1)
|
||||
self.save()
|
||||
|
||||
def save(self):
|
||||
config_helper.add_option(self.app_name, "wrapper", self.get_wrapper_string())
|
||||
|
||||
def load_settings(self, app_name):
|
||||
self.app_name = app_name
|
||||
for i in self.wrappers.values():
|
||||
i.deleteLater()
|
||||
self.wrappers.clear()
|
||||
self.extra_wrappers.clear()
|
||||
|
||||
wrapper_config = self.core.lgd.config.get(app_name, "wrapper", fallback="")
|
||||
pattern = re.compile(r'''((?:[^ "']|"[^"]*"|'[^']*')+)''')
|
||||
wrappers = pattern.split(wrapper_config)[1::2]
|
||||
if not wrappers:
|
||||
self.widget_stack.setCurrentIndex(1)
|
||||
return
|
||||
else:
|
||||
self.widget_stack.setCurrentIndex(0)
|
||||
|
||||
for wrapper in wrappers:
|
||||
if wrapper.strip('"').endswith("proton"):
|
||||
wrapper = f"{wrapper} run"
|
||||
if wrapper == "run":
|
||||
continue
|
||||
self.add_wrapper(wrapper)
|
|
@ -80,19 +80,12 @@ class Ui_GameSettings(object):
|
|||
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_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_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_group)
|
||||
self.override_exe_label.setObjectName("override_exe_label")
|
||||
self.launch_settings_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.override_exe_label)
|
||||
self.launch_settings_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.override_exe_label)
|
||||
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.launch_settings_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.override_exe_edit)
|
||||
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")
|
||||
|
@ -157,8 +150,6 @@ class Ui_GameSettings(object):
|
|||
self.offline.setItemText(2, _translate("GameSettings", "No"))
|
||||
self.launch_params_label.setText(_translate("GameSettings", "Launch parameters"))
|
||||
self.launch_params.setPlaceholderText(_translate("GameSettings", "parameters"))
|
||||
self.wrapper_label.setText(_translate("GameSettings", "Wrapper"))
|
||||
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_group.setTitle(_translate("GameSettings", "Cloud Saves"))
|
||||
|
|
|
@ -65,141 +65,121 @@
|
|||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="launch_settings_group">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<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>
|
||||
<property name="title">
|
||||
<string>Launch Settings</string>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Yes</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>
|
||||
</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="override_exe_label">
|
||||
<property name="text">
|
||||
<string>Override Exe</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" 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>
|
||||
|
|
62
rare/ui/components/tabs/settings/wrapper.py
Normal file
62
rare/ui/components/tabs/settings/wrapper.py
Normal file
|
@ -0,0 +1,62 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'rare/ui/components/tabs/settings/wrapper.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.6
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_WrapperSettings(object):
|
||||
def setupUi(self, WrapperSettings):
|
||||
WrapperSettings.setObjectName("WrapperSettings")
|
||||
WrapperSettings.resize(435, 123)
|
||||
WrapperSettings.setWindowTitle("GroupBox")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(WrapperSettings)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.widget_stack = QtWidgets.QStackedWidget(WrapperSettings)
|
||||
self.widget_stack.setObjectName("widget_stack")
|
||||
self.widgets = QtWidgets.QWidget()
|
||||
self.widgets.setObjectName("widgets")
|
||||
self.widget_stack.addWidget(self.widgets)
|
||||
self.label_page = QtWidgets.QWidget()
|
||||
self.label_page.setObjectName("label_page")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.label_page)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.no_wrapper_label = QtWidgets.QLabel(self.label_page)
|
||||
self.no_wrapper_label.setObjectName("no_wrapper_label")
|
||||
self.verticalLayout.addWidget(self.no_wrapper_label)
|
||||
self.widget_stack.addWidget(self.label_page)
|
||||
self.horizontalLayout.addWidget(self.widget_stack)
|
||||
self.add_button = QtWidgets.QPushButton(WrapperSettings)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.add_button.sizePolicy().hasHeightForWidth())
|
||||
self.add_button.setSizePolicy(sizePolicy)
|
||||
self.add_button.setObjectName("add_button")
|
||||
self.horizontalLayout.addWidget(self.add_button)
|
||||
|
||||
self.retranslateUi(WrapperSettings)
|
||||
self.widget_stack.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(WrapperSettings)
|
||||
|
||||
def retranslateUi(self, WrapperSettings):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
WrapperSettings.setTitle(_translate("WrapperSettings", "Wrapper"))
|
||||
self.no_wrapper_label.setText(_translate("WrapperSettings", "No wrapper added"))
|
||||
self.add_button.setText(_translate("WrapperSettings", "Add Wrapper"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
WrapperSettings = QtWidgets.QGroupBox()
|
||||
ui = Ui_WrapperSettings()
|
||||
ui.setupUi(WrapperSettings)
|
||||
WrapperSettings.show()
|
||||
sys.exit(app.exec_())
|
56
rare/ui/components/tabs/settings/wrapper.ui
Normal file
56
rare/ui/components/tabs/settings/wrapper.ui
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>WrapperSettings</class>
|
||||
<widget class="QGroupBox" name="WrapperSettings">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>435</width>
|
||||
<height>123</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string notr="true">GroupBox</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Wrapper</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="widget_stack">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="widgets"/>
|
||||
<widget class="QWidget" name="label_page">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="no_wrapper_label">
|
||||
<property name="text">
|
||||
<string>No wrapper added</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="add_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add Wrapper</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
Reference in a new issue