1
0
Fork 0
mirror of synced 2024-05-04 20:52:58 +12:00

ShopWidget: Cleanup shop layout

This commit is contained in:
loathingKernel 2023-03-30 20:12:37 +03:00
parent b812e38fb8
commit 2db34324af
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD
3 changed files with 277 additions and 235 deletions

View file

@ -40,8 +40,8 @@ class ShopWidget(QWidget, Ui_ShopWidget):
self.types = []
self.update_games_allowed = True
free_games_container_layout = QHBoxLayout(self.free_games_container)
free_games_container_layout.setContentsMargins(0, 0, 0, 3)
self.free_games_container.setLayout(free_games_container_layout)
free_games_container_layout.setContentsMargins(0, 0, 0, 0)
self.free_games_container.setContentsMargins(0, 0, 0, 3)
self.free_games_container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.free_games_scrollarea.setDisabled(True)
self.free_games_scrollarea.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
@ -51,18 +51,18 @@ class ShopWidget(QWidget, Ui_ShopWidget):
self.next_search = ""
self.wishlist: List = []
self.discount_widget.setLayout(FlowLayout())
self.discount_stack.addWidget(WaitingSpinner())
self.discount_widget.setLayout(FlowLayout(self.discount_widget))
self.discount_stack.addWidget(WaitingSpinner(self.discount_stack))
self.discount_stack.setCurrentIndex(1)
self.game_widget.setLayout(FlowLayout())
self.game_stack.addWidget(WaitingSpinner())
self.game_widget.setLayout(FlowLayout(self.game_widget))
self.game_stack.addWidget(WaitingSpinner(self.game_stack))
self.game_stack.setCurrentIndex(1)
self.search_bar = ButtonLineEdit(
"fa.search", placeholder_text=self.tr("Search Games")
)
self.games_container_layout.insertWidget(0, self.search_bar)
self.left_layout.insertWidget(0, self.search_bar)
# self.search_bar.textChanged.connect(self.search_games)
@ -143,14 +143,14 @@ class ShopWidget(QWidget, Ui_ShopWidget):
self.free_games_now = QGroupBox(self.tr("Free now"), parent=self.free_games_container)
free_games_now_layout = QHBoxLayout(self.free_games_now)
free_games_now_layout.setContentsMargins(0, 0, 0, 0)
# free_games_now_layout.setContentsMargins(0, 0, 0, 0)
self.free_games_now.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.free_games_now.setLayout(free_games_now_layout)
self.free_games_container.layout().addWidget(self.free_games_now)
self.free_games_next = QGroupBox(self.tr("Free next week"), parent=self.free_games_container)
free_games_next_layout = QHBoxLayout(self.free_games_next)
free_games_next_layout.setContentsMargins(0, 0, 0, 0)
# free_games_next_layout.setContentsMargins(0, 0, 0, 0)
self.free_games_next.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.free_games_next.setLayout(free_games_next_layout)
self.free_games_container.layout().addWidget(self.free_games_next)
@ -223,9 +223,11 @@ class ShopWidget(QWidget, Ui_ShopWidget):
# self.coming_free_games.setFixedWidth(int(40 + len(coming_free_games) * 300))
self.free_games_scrollarea.setMinimumHeight(
self.free_games_now.sizeHint().height() + self.free_games_scrollarea.horizontalScrollBar().sizeHint().height()
self.free_games_now.sizeHint().height()
+ self.free_games_container.contentsMargins().top()
+ self.free_games_container.contentsMargins().bottom()
+ self.free_games_scrollarea.horizontalScrollBar().sizeHint().height()
)
self.free_games_scrollarea.update()
self.free_games_scrollarea.setEnabled(True)
def show_search_results(self):
@ -283,6 +285,11 @@ class ShopWidget(QWidget, Ui_ShopWidget):
groupbox.layout().addWidget(checkbox)
self.checkboxes.append(checkbox)
self.reset_button.clicked.connect(self.reset_filters)
self.filter_scrollarea.setMinimumWidth(
self.filter_container.sizeHint().width()
+ self.filter_container_layout.spacing()
+ self.filter_scrollarea.verticalScrollBar().sizeHint().width()
)
def reset_filters(self):
self.update_games_allowed = False
@ -350,7 +357,7 @@ class ShopWidget(QWidget, Ui_ShopWidget):
item.widget().deleteLater()
if data:
for game in data:
w = GameWidget(self.path, game, 275)
w = GameWidget(self.path, game)
self.game_widget.layout().addWidget(w)
w.show_info.connect(self.show_game.emit)

View file

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'rare/ui/components/tabs/store/store.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
# Created by: PyQt5 UI code generator 5.15.9
#
# 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.
@ -14,10 +14,12 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_ShopWidget(object):
def setupUi(self, ShopWidget):
ShopWidget.setObjectName("ShopWidget")
ShopWidget.resize(843, 569)
ShopWidget.resize(784, 525)
ShopWidget.setWindowTitle("Store")
self.shop_layout = QtWidgets.QHBoxLayout(ShopWidget)
self.shop_layout.setObjectName("shop_layout")
self.left_layout = QtWidgets.QVBoxLayout()
self.left_layout.setObjectName("left_layout")
self.games_scrollarea = QtWidgets.QScrollArea(ShopWidget)
self.games_scrollarea.setFrameShape(QtWidgets.QFrame.NoFrame)
self.games_scrollarea.setFrameShadow(QtWidgets.QFrame.Plain)
@ -25,7 +27,7 @@ class Ui_ShopWidget(object):
self.games_scrollarea.setWidgetResizable(True)
self.games_scrollarea.setObjectName("games_scrollarea")
self.games_container = QtWidgets.QWidget()
self.games_container.setGeometry(QtCore.QRect(0, 0, 659, 557))
self.games_container.setGeometry(QtCore.QRect(0, 0, 611, 511))
self.games_container.setObjectName("games_container")
self.games_container_layout = QtWidgets.QVBoxLayout(self.games_container)
self.games_container_layout.setContentsMargins(0, 0, 3, 0)
@ -37,7 +39,7 @@ class Ui_ShopWidget(object):
self.free_games_scrollarea.setWidgetResizable(True)
self.free_games_scrollarea.setObjectName("free_games_scrollarea")
self.free_games_container = QtWidgets.QWidget()
self.free_games_container.setGeometry(QtCore.QRect(0, 0, 656, 182))
self.free_games_container.setGeometry(QtCore.QRect(0, 0, 608, 166))
self.free_games_container.setObjectName("free_games_container")
self.free_games_scrollarea.setWidget(self.free_games_container)
self.games_container_layout.addWidget(self.free_games_scrollarea)
@ -64,25 +66,31 @@ class Ui_ShopWidget(object):
self.games_layout.addWidget(self.game_stack)
self.games_container_layout.addWidget(self.games_group)
self.games_scrollarea.setWidget(self.games_container)
self.shop_layout.addWidget(self.games_scrollarea)
self.left_layout.addWidget(self.games_scrollarea)
self.shop_layout.addLayout(self.left_layout)
self.right_layout = QtWidgets.QVBoxLayout()
self.right_layout.setObjectName("right_layout")
self.reset_button = QtWidgets.QPushButton(ShopWidget)
self.reset_button.setObjectName("reset_button")
self.right_layout.addWidget(self.reset_button)
self.filter_scrollarea = QtWidgets.QScrollArea(ShopWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.filter_scrollarea.sizePolicy().hasHeightForWidth())
self.filter_scrollarea.setSizePolicy(sizePolicy)
self.filter_scrollarea.setFrameShape(QtWidgets.QFrame.NoFrame)
self.filter_scrollarea.setFrameShadow(QtWidgets.QFrame.Plain)
self.filter_scrollarea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.filter_scrollarea.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
self.filter_scrollarea.setWidgetResizable(True)
self.filter_scrollarea.setObjectName("filter_scrollarea")
self.filter_container = QtWidgets.QWidget()
self.filter_container.setGeometry(QtCore.QRect(0, 0, 162, 553))
self.filter_container.setGeometry(QtCore.QRect(0, 0, 151, 479))
self.filter_container.setObjectName("filter_container")
self.filter_container_layout = QtWidgets.QVBoxLayout(self.filter_container)
self.filter_container_layout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
self.filter_container_layout.setContentsMargins(0, 0, 0, 0)
self.filter_container_layout.setObjectName("filter_container_layout")
self.reset_button = QtWidgets.QPushButton(self.filter_container)
self.reset_button.setObjectName("reset_button")
self.filter_container_layout.addWidget(self.reset_button)
self.price_group = QtWidgets.QGroupBox(self.filter_container)
self.price_group.setObjectName("price_group")
self.price_layout = QtWidgets.QVBoxLayout(self.price_group)
@ -131,7 +139,8 @@ class Ui_ShopWidget(object):
self.others_layout.setObjectName("others_layout")
self.filter_container_layout.addWidget(self.others_group)
self.filter_scrollarea.setWidget(self.filter_container)
self.shop_layout.addWidget(self.filter_scrollarea)
self.right_layout.addWidget(self.filter_scrollarea)
self.shop_layout.addLayout(self.right_layout)
self.retranslateUi(ShopWidget)
@ -139,7 +148,7 @@ class Ui_ShopWidget(object):
_translate = QtCore.QCoreApplication.translate
self.discounts_group.setTitle(_translate("ShopWidget", "Discounts from your wishlist"))
self.games_group.setTitle(_translate("ShopWidget", "Games"))
self.reset_button.setText(_translate("ShopWidget", "Reset"))
self.reset_button.setText(_translate("ShopWidget", "Reset filters"))
self.price_group.setTitle(_translate("ShopWidget", "Price"))
self.none_price.setText(_translate("ShopWidget", "None"))
self.free_button.setText(_translate("ShopWidget", "Free"))
@ -151,7 +160,7 @@ class Ui_ShopWidget(object):
self.platform_group.setTitle(_translate("ShopWidget", "Platform"))
self.genre_group.setTitle(_translate("ShopWidget", "Genre"))
self.type_group.setTitle(_translate("ShopWidget", "Type"))
self.others_group.setTitle(_translate("ShopWidget", "Other Tags"))
self.others_group.setTitle(_translate("ShopWidget", "Other tags"))
if __name__ == "__main__":

View file

@ -6,238 +6,264 @@
<rect>
<x>0</x>
<y>0</y>
<width>843</width>
<height>569</height>
<width>784</width>
<height>525</height>
</rect>
</property>
<property name="windowTitle">
<string notr="true">Store</string>
</property>
<layout class="QHBoxLayout" name="shop_layout">
<layout class="QHBoxLayout" name="shop_layout" stretch="0,0">
<item>
<widget class="QScrollArea" name="games_scrollarea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="games_container">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>659</width>
<height>557</height>
</rect>
</property>
<layout class="QVBoxLayout" name="games_container_layout">
<property name="leftMargin">
<number>0</number>
<layout class="QVBoxLayout" name="left_layout">
<item>
<widget class="QScrollArea" name="games_scrollarea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="topMargin">
<number>0</number>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="rightMargin">
<number>3</number>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="bottomMargin">
<number>0</number>
<property name="widgetResizable">
<bool>true</bool>
</property>
<item>
<widget class="QScrollArea" name="free_games_scrollarea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
<widget class="QWidget" name="games_container">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>611</width>
<height>511</height>
</rect>
</property>
<layout class="QVBoxLayout" name="games_container_layout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
<property name="topMargin">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
<property name="rightMargin">
<number>3</number>
</property>
<property name="widgetResizable">
<bool>true</bool>
<property name="bottomMargin">
<number>0</number>
</property>
<widget class="QWidget" name="free_games_container">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>656</width>
<height>182</height>
</rect>
</property>
</widget>
</widget>
</item>
<item>
<widget class="QGroupBox" name="discounts_group">
<property name="title">
<string>Discounts from your wishlist</string>
</property>
<layout class="QVBoxLayout" name="discounts_layout">
<item>
<widget class="QStackedWidget" name="discount_stack">
<widget class="QWidget" name="discount_widget"/>
<item>
<widget class="QScrollArea" name="free_games_scrollarea">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="free_games_container">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>608</width>
<height>166</height>
</rect>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="games_group">
<property name="title">
<string>Games</string>
</property>
<layout class="QVBoxLayout" name="games_layout">
<item>
<widget class="QStackedWidget" name="game_stack">
<widget class="QWidget" name="game_widget"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
</item>
<item>
<widget class="QGroupBox" name="discounts_group">
<property name="title">
<string>Discounts from your wishlist</string>
</property>
<layout class="QVBoxLayout" name="discounts_layout">
<item>
<widget class="QStackedWidget" name="discount_stack">
<widget class="QWidget" name="discount_widget"/>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="games_group">
<property name="title">
<string>Games</string>
</property>
<layout class="QVBoxLayout" name="games_layout">
<item>
<widget class="QStackedWidget" name="game_stack">
<widget class="QWidget" name="game_widget"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QScrollArea" name="filter_scrollarea">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="filter_container">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>162</width>
<height>553</height>
</rect>
</property>
<layout class="QVBoxLayout" name="filter_container_layout">
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
<layout class="QVBoxLayout" name="right_layout">
<item>
<widget class="QPushButton" name="reset_button">
<property name="text">
<string>Reset filters</string>
</property>
<item>
<widget class="QPushButton" name="reset_button">
<property name="text">
<string>Reset</string>
</widget>
</item>
<item>
<widget class="QScrollArea" name="filter_scrollarea">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</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="filter_container">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>151</width>
<height>479</height>
</rect>
</property>
<layout class="QVBoxLayout" name="filter_container_layout">
<property name="leftMargin">
<number>0</number>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="price_group">
<property name="title">
<string>Price</string>
<property name="topMargin">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="price_layout">
<item>
<widget class="QRadioButton" name="none_price">
<property name="text">
<string>None</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="free_button">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="under10">
<property name="text">
<string>Under 10</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="under20">
<property name="text">
<string>Under 20</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="under30">
<property name="text">
<string>Under 30</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="above">
<property name="text">
<string>14.99 and above</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="on_discount">
<property name="text">
<string>Discount</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="platform_group">
<property name="title">
<string>Platform</string>
<property name="rightMargin">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="platfrom_layout"/>
</widget>
</item>
<item>
<widget class="QGroupBox" name="genre_group">
<property name="title">
<string>Genre</string>
<property name="bottomMargin">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="genre_layout"/>
</widget>
</item>
<item>
<widget class="QGroupBox" name="type_group">
<property name="title">
<string>Type</string>
</property>
<layout class="QVBoxLayout" name="type_layout"/>
</widget>
</item>
<item>
<widget class="QGroupBox" name="others_group">
<property name="title">
<string>Other Tags</string>
</property>
<layout class="QVBoxLayout" name="others_layout"/>
</widget>
</item>
</layout>
</widget>
</widget>
<item>
<widget class="QGroupBox" name="price_group">
<property name="title">
<string>Price</string>
</property>
<layout class="QVBoxLayout" name="price_layout">
<item>
<widget class="QRadioButton" name="none_price">
<property name="text">
<string>None</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="free_button">
<property name="text">
<string>Free</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="under10">
<property name="text">
<string>Under 10</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="under20">
<property name="text">
<string>Under 20</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="under30">
<property name="text">
<string>Under 30</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="above">
<property name="text">
<string>14.99 and above</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="on_discount">
<property name="text">
<string>Discount</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="platform_group">
<property name="title">
<string>Platform</string>
</property>
<layout class="QVBoxLayout" name="platfrom_layout"/>
</widget>
</item>
<item>
<widget class="QGroupBox" name="genre_group">
<property name="title">
<string>Genre</string>
</property>
<layout class="QVBoxLayout" name="genre_layout"/>
</widget>
</item>
<item>
<widget class="QGroupBox" name="type_group">
<property name="title">
<string>Type</string>
</property>
<layout class="QVBoxLayout" name="type_layout"/>
</widget>
</item>
<item>
<widget class="QGroupBox" name="others_group">
<property name="title">
<string>Other tags</string>
</property>
<layout class="QVBoxLayout" name="others_layout"/>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</widget>