From 2db34324af8d807eb86c714e1187fa03b93eab8e Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Thu, 30 Mar 2023 20:12:37 +0300 Subject: [PATCH] ShopWidget: Cleanup shop layout --- rare/components/tabs/store/shop_widget.py | 31 +- rare/ui/components/tabs/store/store.py | 35 +- rare/ui/components/tabs/store/store.ui | 446 ++++++++++++---------- 3 files changed, 277 insertions(+), 235 deletions(-) diff --git a/rare/components/tabs/store/shop_widget.py b/rare/components/tabs/store/shop_widget.py index f72d111e..4e72a8ef 100644 --- a/rare/components/tabs/store/shop_widget.py +++ b/rare/components/tabs/store/shop_widget.py @@ -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) diff --git a/rare/ui/components/tabs/store/store.py b/rare/ui/components/tabs/store/store.py index 0e74a204..e25179b9 100644 --- a/rare/ui/components/tabs/store/store.py +++ b/rare/ui/components/tabs/store/store.py @@ -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__": diff --git a/rare/ui/components/tabs/store/store.ui b/rare/ui/components/tabs/store/store.ui index 1e38513a..89d0f021 100644 --- a/rare/ui/components/tabs/store/store.ui +++ b/rare/ui/components/tabs/store/store.ui @@ -6,238 +6,264 @@ 0 0 - 843 - 569 + 784 + 525 Store - + - - - QFrame::NoFrame - - - QFrame::Plain - - - QAbstractScrollArea::AdjustToContents - - - true - - - - - 0 - 0 - 659 - 557 - - - - - 0 + + + + + QFrame::NoFrame - - 0 + + QFrame::Plain - - 3 + + QAbstractScrollArea::AdjustToContents - - 0 + + true - - - - QFrame::NoFrame + + + + 0 + 0 + 611 + 511 + + + + + 0 - - QFrame::Plain + + 0 - - Qt::ScrollBarAlwaysOff + + 3 - - true + + 0 - - - - 0 - 0 - 656 - 182 - - - - - - - - - Discounts from your wishlist - - - - - + + + + QFrame::NoFrame + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + true + + + + + 0 + 0 + 608 + 166 + + - - - - - - - - Games - - - - - - - - - - - - - + + + + + + Discounts from your wishlist + + + + + + + + + + + + + + Games + + + + + + + + + + + + + + + - - - - 0 - 0 - - - - Qt::ScrollBarAlwaysOff - - - true - - - - - 0 - 0 - 162 - 553 - - - - - QLayout::SetFixedSize + + + + + Reset filters - - - - Reset + + + + + + + 0 + 0 + + + + QFrame::NoFrame + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + QAbstractScrollArea::AdjustToContents + + + true + + + + + 0 + 0 + 151 + 479 + + + + + 0 - - - - - - Price + + 0 - - - - - None - - - true - - - - - - - Free - - - - - - - Under 10 - - - - - - - Under 20 - - - - - - - Under 30 - - - - - - - 14.99 and above - - - - - - - Discount - - - - - - - - - - Platform + + 0 - - - - - - - Genre + + 0 - - - - - - - Type - - - - - - - - Other Tags - - - - - - - + + + + Price + + + + + + None + + + true + + + + + + + Free + + + + + + + Under 10 + + + + + + + Under 20 + + + + + + + Under 30 + + + + + + + 14.99 and above + + + + + + + Discount + + + + + + + + + + Platform + + + + + + + + Genre + + + + + + + + Type + + + + + + + + Other tags + + + + + + + + +