Merge pull request #128 from loathingKernel/main
Make window capable of smaller sizes.
This commit is contained in:
commit
6700974a36
6 changed files with 170 additions and 103 deletions
|
@ -27,7 +27,7 @@ class MainWindow(QMainWindow):
|
||||||
self.tab_widget = TabWidget(self)
|
self.tab_widget = TabWidget(self)
|
||||||
self.setCentralWidget(self.tab_widget)
|
self.setCentralWidget(self.tab_widget)
|
||||||
|
|
||||||
width, height = 1200, 800
|
width, height = 1280, 720
|
||||||
if self.settings.value("save_size", False):
|
if self.settings.value("save_size", False):
|
||||||
width, height = self.settings.value("window_size", (width, height), tuple)
|
width, height = self.settings.value("window_size", (width, height), tuple)
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import datetime
|
import datetime
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
from PyQt5.QtCore import QThread, pyqtSignal, QSettings
|
from PyQt5.QtCore import QThread, pyqtSignal, QSettings, Qt, QRect
|
||||||
from PyQt5.QtWidgets import QWidget, QMessageBox, QVBoxLayout, QLabel, QGridLayout, QProgressBar, QPushButton, \
|
from PyQt5.QtWidgets import QWidget, QMessageBox, QVBoxLayout, QLabel, QGridLayout, QProgressBar, QPushButton, \
|
||||||
QHBoxLayout, QGroupBox
|
QHBoxLayout, QGroupBox, QScrollArea, QFrame, QSizePolicy
|
||||||
|
|
||||||
from legendary.core import LegendaryCore
|
from legendary.core import LegendaryCore
|
||||||
from legendary.models.downloading import UIUpdate
|
from legendary.models.downloading import UIUpdate
|
||||||
|
@ -57,12 +57,37 @@ class DownloadTab(QWidget):
|
||||||
|
|
||||||
self.layout.addLayout(self.mini_layout)
|
self.layout.addLayout(self.mini_layout)
|
||||||
|
|
||||||
|
# FIXME: Redisign this whole thing for the next release (current: 1.7.0)
|
||||||
|
self.scroll = QScrollArea(self)
|
||||||
|
self.scroll.setFocusPolicy(Qt.WheelFocus)
|
||||||
|
self.scroll.setFrameShape(QFrame.NoFrame)
|
||||||
|
self.scroll.setFrameShadow(QFrame.Sunken)
|
||||||
|
self.scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
|
||||||
|
self.scroll.setWidgetResizable(True)
|
||||||
|
self.scroll.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignTop)
|
||||||
|
self.scroll.setObjectName("scroll")
|
||||||
|
self.scroll_contents = QWidget()
|
||||||
|
self.scroll_contents.setGeometry(QRect(0, 0, 255, 16))
|
||||||
|
sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.scroll_contents.sizePolicy().hasHeightForWidth())
|
||||||
|
self.scroll_contents.setSizePolicy(sizePolicy)
|
||||||
|
self.scroll_contents.setObjectName("scroll_contents")
|
||||||
|
self.scroll_contents_layout = QVBoxLayout(self.scroll_contents)
|
||||||
|
self.scroll_contents_layout.setContentsMargins(0, 0, -1, 0)
|
||||||
|
self.scroll_contents_layout.setSpacing(6)
|
||||||
|
self.scroll_contents_layout.setObjectName("scroll_contents_layout")
|
||||||
|
self.scroll.setWidget(self.scroll_contents)
|
||||||
|
self.layout.addWidget(self.scroll)
|
||||||
|
# FIXME: End of FIXME
|
||||||
|
|
||||||
self.queue_widget = DlQueueWidget()
|
self.queue_widget = DlQueueWidget()
|
||||||
self.layout.addWidget(self.queue_widget)
|
self.scroll_contents_layout.addWidget(self.queue_widget)
|
||||||
self.queue_widget.update_list.connect(self.update_dl_queue)
|
self.queue_widget.update_list.connect(self.update_dl_queue)
|
||||||
|
|
||||||
self.updates = QGroupBox(self.tr("Updates"))
|
self.updates = QGroupBox(self.tr("Updates"))
|
||||||
self.layout.addWidget(self.updates)
|
self.scroll_contents_layout.addWidget(self.updates)
|
||||||
self.update_layout = QVBoxLayout()
|
self.update_layout = QVBoxLayout()
|
||||||
self.updates.setLayout(self.update_layout)
|
self.updates.setLayout(self.update_layout)
|
||||||
|
|
||||||
|
@ -77,8 +102,6 @@ class DownloadTab(QWidget):
|
||||||
for name in updates:
|
for name in updates:
|
||||||
self.add_update(self.core.get_installed_game(name))
|
self.add_update(self.core.get_installed_game(name))
|
||||||
|
|
||||||
self.layout.addStretch(1)
|
|
||||||
|
|
||||||
self.setLayout(self.layout)
|
self.setLayout(self.layout)
|
||||||
|
|
||||||
self.signals.install_game.connect(self.get_install_options)
|
self.signals.install_game.connect(self.get_install_options)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
@ -230,9 +232,7 @@ class GameSettings(QWidget, Ui_GameSettings):
|
||||||
|
|
||||||
# Dont use Wine
|
# Dont use Wine
|
||||||
self.linux_settings.wine_exec.setText("")
|
self.linux_settings.wine_exec.setText("")
|
||||||
self.linux_settings.save_setting(self.linux_settings.wine_exec.text(), "wine_exec")
|
|
||||||
self.linux_settings.wine_prefix.setText("")
|
self.linux_settings.wine_prefix.setText("")
|
||||||
self.linux_settings.save_setting(self.linux_settings.wine_prefix.text(), "wine_prefix")
|
|
||||||
|
|
||||||
self.core.lgd.save_config()
|
self.core.lgd.save_config()
|
||||||
|
|
||||||
|
@ -319,8 +319,8 @@ class LinuxAppSettings(LinuxSettings):
|
||||||
|
|
||||||
def update_game(self, app_name):
|
def update_game(self, app_name):
|
||||||
self.name = app_name
|
self.name = app_name
|
||||||
self.wine_prefix.setText(self.core.lgd.config.get(self.name, "wine_prefix", fallback=""))
|
self.wine_prefix.setText(self.load_prefix())
|
||||||
self.wine_exec.setText(self.core.lgd.config.get(self.name, "wine_executable", fallback=""))
|
self.wine_exec.setText(self.load_setting(self.name, "wine_executable"))
|
||||||
|
|
||||||
self.dxvk.name = app_name
|
self.dxvk.name = app_name
|
||||||
self.dxvk.load_settings()
|
self.dxvk.load_settings()
|
||||||
|
|
|
@ -16,34 +16,53 @@ class LinuxSettings(QWidget, Ui_LinuxSettings):
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
self.name = name if name is not None else "default"
|
self.name = name if name is not None else "default"
|
||||||
self.core = shared.core
|
|
||||||
|
|
||||||
# Wine prefix
|
# Wine prefix
|
||||||
self.wine_prefix = PathEdit(self.core.lgd.config.get(self.name, "wine_prefix", fallback=""),
|
self.wine_prefix = PathEdit(
|
||||||
|
self.load_prefix(),
|
||||||
file_type=QFileDialog.DirectoryOnly,
|
file_type=QFileDialog.DirectoryOnly,
|
||||||
save_func=lambda text: self.save_setting(text, "wine_prefix"))
|
save_func=self.save_prefix)
|
||||||
self.prefix_layout.addWidget(self.wine_prefix)
|
self.prefix_layout.addWidget(self.wine_prefix)
|
||||||
|
|
||||||
# Wine executable
|
# Wine executable
|
||||||
self.wine_exec = PathEdit(self.core.lgd.config.get(self.name, "wine_executable", fallback=""),
|
self.wine_exec = PathEdit(
|
||||||
|
self.load_setting(self.name, "wine_executable"),
|
||||||
file_type=QFileDialog.ExistingFile,
|
file_type=QFileDialog.ExistingFile,
|
||||||
name_filter="Wine executable (wine wine64)",
|
name_filter="Wine executable (wine wine64)",
|
||||||
save_func=lambda text: self.save_setting(text, "wine_executable"))
|
save_func=lambda text: self.save_setting(text, section=self.name, setting="wine_executable"))
|
||||||
self.exec_layout.addWidget(self.wine_exec)
|
self.exec_layout.addWidget(self.wine_exec)
|
||||||
|
|
||||||
# dxvk
|
# dxvk
|
||||||
self.dxvk = DxvkSettings(self.name)
|
self.dxvk = DxvkSettings(self.name)
|
||||||
self.dxvk_layout.addWidget(self.dxvk)
|
self.dxvk_layout.addWidget(self.dxvk)
|
||||||
|
|
||||||
def save_setting(self, text: str, setting_name: str):
|
def load_prefix(self) -> str:
|
||||||
if self.name not in self.core.lgd.config.sections():
|
return self.load_setting(f'{self.name}.env',
|
||||||
self.core.lgd.config.add_section(self.name)
|
'WINEPREFIX',
|
||||||
|
fallback=self.load_setting(self.name, 'wine_prefix'))
|
||||||
|
|
||||||
|
def save_prefix(self, text: str):
|
||||||
|
self.save_setting(text, f'{self.name}.env', 'WINEPREFIX')
|
||||||
|
self.save_setting(text, self.name, 'wine_prefix')
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def load_setting(section: str, setting: str, fallback: str = str()):
|
||||||
|
return shared.core.lgd.config.get(section, setting, fallback=fallback)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def save_setting(text: str, section: str, setting: str):
|
||||||
|
if text:
|
||||||
|
if section not in shared.core.lgd.config.sections():
|
||||||
|
shared.core.lgd.config.add_section(section)
|
||||||
|
logger.debug(f"Added {f'[{section}]'} configuration section")
|
||||||
|
shared.core.lgd.config.set(section, setting, text)
|
||||||
|
logger.debug(f"Set {setting} in {f'[{section}]'} to {text}")
|
||||||
|
|
||||||
self.core.lgd.config.set(self.name, setting_name, text)
|
|
||||||
if not text:
|
|
||||||
self.core.lgd.config.remove_option(self.name, setting_name)
|
|
||||||
else:
|
else:
|
||||||
logger.debug("Set config of wine_prefix to " + text)
|
shared.core.lgd.config.remove_option(section, setting)
|
||||||
if self.core.lgd.config[self.name] == {}:
|
logger.debug(f"Unset {setting} from {f'[{section}]'}")
|
||||||
self.core.lgd.config.remove_section(self.name)
|
if not shared.core.lgd.config[section]:
|
||||||
self.core.lgd.save_config()
|
shared.core.lgd.config.remove_section(section)
|
||||||
|
logger.debug(f"Removed {f'[{section}]'} configuration section")
|
||||||
|
|
||||||
|
shared.core.lgd.save_config()
|
||||||
|
|
|
@ -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, -1, 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,10 +216,43 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QScrollArea" name="linux_settings_scroll">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::NoFrame</enum>
|
||||||
|
</property>
|
||||||
|
<property name="horizontalScrollBarPolicy">
|
||||||
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
|
</property>
|
||||||
|
<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="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item alignment="Qt::AlignTop">
|
<item alignment="Qt::AlignTop">
|
||||||
<widget class="QGroupBox" name="proton_groupbox">
|
<widget class="QGroupBox" name="proton_groupbox">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Linux Settings</string>
|
<string>Proton Settings</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QFormLayout" name="proton_layout">
|
<layout class="QFormLayout" name="proton_layout">
|
||||||
<property name="labelAlignment">
|
<property name="labelAlignment">
|
||||||
|
@ -257,28 +290,12 @@
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<layout class="QVBoxLayout" name="proton_prefix_layout"/>
|
<layout class="QVBoxLayout" name="proton_prefix_layout"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0" colspan="2">
|
|
||||||
<layout class="QVBoxLayout" name="linux_layout">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
</layout>
|
||||||
<spacer name="game_settings_vspacer">
|
</widget>
|
||||||
<property name="orientation">
|
</widget>
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
Loading…
Reference in a new issue