From fb0d5bbe1003fa601819971b1be7251bfedde06f Mon Sep 17 00:00:00 2001
From: loathingKernel <142770+loathingKernel@users.noreply.github.com>
Date: Sun, 25 Feb 2024 15:30:35 +0200
Subject: [PATCH] Store: Fix various wishlist issues.
* Use horizontal scrollarea for free games. Based on the same idea as
WrapperSettings scrollarea. Both need some adjustments.
* Remove debugging dialogs. Need a better way anyways to debug.
---
rare/components/tabs/store/landing.py | 92 +++++++++---
rare/components/tabs/store/store_api.py | 11 --
rare/components/tabs/store/widgets/details.py | 3 -
rare/components/tabs/store/widgets/items.py | 4 -
rare/components/tabs/store/wishlist.py | 141 +++++++++++-------
rare/ui/components/tabs/store/wishlist.py | 71 ++++-----
rare/ui/components/tabs/store/wishlist.ui | 75 +++-------
7 files changed, 213 insertions(+), 184 deletions(-)
diff --git a/rare/components/tabs/store/landing.py b/rare/components/tabs/store/landing.py
index 7aa5263d..00af2cf8 100644
--- a/rare/components/tabs/store/landing.py
+++ b/rare/components/tabs/store/landing.py
@@ -2,8 +2,8 @@ import datetime
import logging
from typing import List
-from PyQt5.QtCore import Qt, pyqtSlot, pyqtSignal
-from PyQt5.QtGui import QShowEvent, QHideEvent
+from PyQt5.QtCore import Qt, pyqtSlot, pyqtSignal, QObject, QEvent
+from PyQt5.QtGui import QShowEvent, QHideEvent, QResizeEvent
from PyQt5.QtWidgets import (
QHBoxLayout,
QWidget,
@@ -63,6 +63,38 @@ class LandingPage(SlidingStackedWidget, SideTabContents):
self.slideInWidget(self.details_widget)
+class FreeGamesScroll(QScrollArea):
+ def __init__(self, parent=None):
+ super(FreeGamesScroll, self).__init__(parent=parent)
+ self.setObjectName(type(self).__name__)
+
+ def setWidget(self, w):
+ super().setWidget(w)
+ w.installEventFilter(self)
+
+ def eventFilter(self, a0: QObject, a1: QEvent) -> bool:
+ if a0 is self.widget() and a1.type() == QEvent.Resize:
+ self.__resize(a0)
+ return a0.event(a1)
+ return False
+
+ def __resize(self, e: QResizeEvent):
+ minh = self.horizontalScrollBar().minimum()
+ maxh = self.horizontalScrollBar().maximum()
+ # lk: when the scrollbar is not visible, min and max are 0
+ if maxh > minh:
+ height = (
+ e.size().height()
+ + self.rect().height() // 2
+ - self.contentsRect().height() // 2
+ + self.widget().layout().spacing()
+ + self.horizontalScrollBar().sizeHint().height()
+ )
+ else:
+ height = e.size().height() + self.rect().height() - self.contentsRect().height()
+ self.setMinimumHeight(max(height, self.minimumHeight()))
+
+
class LandingWidget(QWidget, SideTabContents):
show_details = pyqtSignal(CatalogOfferModel)
@@ -76,10 +108,12 @@ class LandingWidget(QWidget, SideTabContents):
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.free_games_now = StoreGroup(self.tr("Free now"), layout=QHBoxLayout, parent=self)
- self.free_games_now.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self.free_games_now.main_layout.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
+ self.free_games_now.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
self.free_games_next = StoreGroup(self.tr("Free next week"), layout=QHBoxLayout, parent=self)
- self.free_games_next.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
+ self.free_games_next.main_layout.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
+ self.free_games_next.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
self.discounts_group = StoreGroup(self.tr("Wishlist discounts"), layout=FlowLayout, parent=self)
self.discounts_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
@@ -87,10 +121,30 @@ class LandingWidget(QWidget, SideTabContents):
self.games_group = StoreGroup(self.tr("Free to play"), FlowLayout, self)
self.games_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.games_group.loading(False)
- self.games_group.setVisible(True)
+ self.games_group.setVisible(False)
- layout.addWidget(self.free_games_now, alignment=Qt.AlignTop)
- layout.addWidget(self.free_games_next, alignment=Qt.AlignTop)
+ free_scroll = FreeGamesScroll(self)
+ free_container = QWidget(free_scroll)
+ free_scroll.setWidget(free_container)
+ free_container_layout = QHBoxLayout(free_container)
+
+ free_scroll.setWidgetResizable(True)
+ free_scroll.setFrameShape(QScrollArea.NoFrame)
+ free_scroll.setSizeAdjustPolicy(QScrollArea.AdjustToContents)
+ free_scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+
+ free_container_layout.setContentsMargins(0, 0, 0, 0)
+ free_container_layout.setAlignment(Qt.AlignLeft | Qt.AlignTop)
+ free_container_layout.setSizeConstraint(QHBoxLayout.SetFixedSize)
+ free_container_layout.addWidget(self.free_games_now)
+ free_container_layout.addWidget(self.free_games_next)
+
+ free_scroll.widget().setAutoFillBackground(False)
+ free_scroll.viewport().setAutoFillBackground(False)
+
+ # layout.addWidget(self.free_games_now, alignment=Qt.AlignTop)
+ # layout.addWidget(self.free_games_next, alignment=Qt.AlignTop)
+ layout.addWidget(free_scroll, alignment=Qt.AlignTop)
layout.addWidget(self.discounts_group, alignment=Qt.AlignTop)
layout.addWidget(self.games_group, alignment=Qt.AlignTop)
layout.addItem(QSpacerItem(0, 0, QSizePolicy.Fixed, QSizePolicy.Expanding))
@@ -113,12 +167,12 @@ class LandingWidget(QWidget, SideTabContents):
self.discounts_group.layout().removeWidget(w)
w.deleteLater()
- for item in wishlist:
- if item.offer.price.totalPrice.discount > 0:
- w = StoreItemWidget(self.api.cached_manager, item.offer)
- w.show_details.connect(self.show_details)
- self.discounts_group.layout().addWidget(w)
- self.discounts_group.setVisible(bool(wishlist))
+ for item in filter(lambda x: bool(x.offer.price.totalPrice.discount), wishlist):
+ w = StoreItemWidget(self.api.cached_manager, item.offer)
+ w.show_details.connect(self.show_details)
+ self.discounts_group.layout().addWidget(w)
+ have_discounts = any(map(lambda x: bool(x.offer.price.totalPrice.discount), wishlist))
+ self.discounts_group.setVisible(have_discounts)
self.discounts_group.loading(False)
def __update_free_games(self, free_games: List[CatalogOfferModel]):
@@ -171,13 +225,15 @@ class LandingWidget(QWidget, SideTabContents):
self.free_games_next.loading(False)
def show_games(self, data):
+ if not data:
+ return
+
for w in self.games_group.findChildren(StoreItemWidget, options=Qt.FindDirectChildrenOnly):
self.games_group.layout().removeWidget(w)
w.deleteLater()
- if data:
- for game in data:
- w = StoreItemWidget(self.api.cached_manager, game)
- w.show_details.connect(self.show_details)
- self.games_group.layout().addWidget(w)
+ for game in data:
+ w = StoreItemWidget(self.api.cached_manager, game)
+ w.show_details.connect(self.show_details)
+ self.games_group.layout().addWidget(w)
self.games_group.loading(False)
diff --git a/rare/components/tabs/store/store_api.py b/rare/components/tabs/store/store_api.py
index 0f45d8e8..4c8dfdc1 100644
--- a/rare/components/tabs/store/store_api.py
+++ b/rare/components/tabs/store/store_api.py
@@ -4,7 +4,6 @@ from typing import List, Callable
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QApplication
-from rare.components.tabs.store.api.debug import DebugDialog
from rare.components.tabs.store.constants import (
wishlist_query,
search_query,
@@ -154,13 +153,9 @@ class StoreAPI(QObject):
"query": search_query,
"variables": browse_model.to_dict()
}
- # debug = DebugDialog(payload["variables"], None)
- # debug.exec()
self.manager.post(graphql_url, lambda data: self.__handle_browse_games(data, handle_func), payload)
def __handle_browse_games(self, data, handle_func):
- # debug = DebugDialog(data, None)
- # debug.exec()
self.browse_active = False
if data is None:
data = {}
@@ -204,8 +199,6 @@ class StoreAPI(QObject):
@staticmethod
def __handle_get_game(data, handle_func):
- # debug = DebugDialog(data, None)
- # debug.exec()
try:
product = DieselProduct.from_dict(data)
handle_func(product)
@@ -229,8 +222,6 @@ class StoreAPI(QObject):
self.authed_manager.post(graphql_url, lambda data: self._handle_add_to_wishlist(data, handle_func), payload)
def _handle_add_to_wishlist(self, data, handle_func):
- # debug = DebugDialog(data, None)
- # debug.exec()
try:
response = ResponseModel.from_dict(data)
data = response.data.wishlist.addToWishlist
@@ -255,8 +246,6 @@ class StoreAPI(QObject):
payload)
def _handle_remove_from_wishlist(self, data, handle_func):
- # debug = DebugDialog(data, None)
- # debug.exec()
try:
response = ResponseModel.from_dict(data)
data = response.data.wishlist.removeFromWishlist
diff --git a/rare/components/tabs/store/widgets/details.py b/rare/components/tabs/store/widgets/details.py
index 7b83bacf..309856bc 100644
--- a/rare/components/tabs/store/widgets/details.py
+++ b/rare/components/tabs/store/widgets/details.py
@@ -11,7 +11,6 @@ from PyQt5.QtWidgets import (
QSizePolicy,
)
-from rare.components.tabs.store.api.debug import DebugDialog
from rare.components.tabs.store.api.models.diesel import DieselProduct, DieselProductDetail, DieselSystemDetail
from rare.components.tabs.store.api.models.response import CatalogOfferModel
from rare.components.tabs.store.store_api import StoreAPI
@@ -72,8 +71,6 @@ class DetailsWidget(QWidget, SideTabContents):
self.in_wishlist = False
def update_game(self, offer: CatalogOfferModel):
- debug = DebugDialog(offer.__dict__, None)
- debug.exec()
self.ui.title.setText(offer.title)
self.title_str = offer.title
self.id_str = offer.id
diff --git a/rare/components/tabs/store/widgets/items.py b/rare/components/tabs/store/widgets/items.py
index d89b47f1..94a022ea 100644
--- a/rare/components/tabs/store/widgets/items.py
+++ b/rare/components/tabs/store/widgets/items.py
@@ -4,7 +4,6 @@ from PyQt5.QtCore import pyqtSignal, Qt
from PyQt5.QtGui import QMouseEvent
from PyQt5.QtWidgets import QPushButton
-from rare.components.tabs.store.api.debug import DebugDialog
from rare.components.tabs.store.api.models.response import CatalogOfferModel
from rare.models.image import ImageSize
from rare.utils.misc import qta_icon
@@ -27,9 +26,6 @@ class ItemWidget(LoadingImageWidget):
self.show_details.emit(self.catalog_game)
if a0.button() == Qt.RightButton:
a0.accept()
- print(self.catalog_game.__dict__)
- dialog = DebugDialog(self.catalog_game.__dict__, self)
- dialog.show()
class StoreItemWidget(ItemWidget):
diff --git a/rare/components/tabs/store/wishlist.py b/rare/components/tabs/store/wishlist.py
index a469a978..04c12868 100644
--- a/rare/components/tabs/store/wishlist.py
+++ b/rare/components/tabs/store/wishlist.py
@@ -1,3 +1,4 @@
+from enum import IntEnum
from typing import List
from PyQt5.QtCore import pyqtSignal, Qt, pyqtSlot
@@ -44,6 +45,18 @@ class WishlistPage(SlidingStackedWidget, SideTabContents):
self.slideInWidget(self.details_widget)
+class WishlistOrder(IntEnum):
+ NAME = 1
+ PRICE = 2
+ DISCOUNT = 3
+ DEVELOPER = 4
+
+
+class WishlistFilter(IntEnum):
+ NONE = 0
+ DISCOUNT = 1
+
+
class WishlistWidget(QWidget, SideTabContents):
show_details = pyqtSignal(CatalogOfferModel)
update_wishlist_signal = pyqtSignal()
@@ -55,21 +68,37 @@ class WishlistWidget(QWidget, SideTabContents):
self.ui = Ui_Wishlist()
self.ui.setupUi(self)
self.ui.main_layout.setContentsMargins(0, 0, 3, 0)
- self.setEnabled(False)
- self.wishlist = []
- self.widgets = []
- self.list_layout = FlowLayout(self.ui.list_container)
+ self.wishlist_layout = FlowLayout()
+ self.ui.container_layout.addLayout(self.wishlist_layout, stretch=1)
+
+ sortings = {
+ WishlistOrder.NAME: self.tr("Name"),
+ WishlistOrder.PRICE: self.tr("Price"),
+ WishlistOrder.DISCOUNT: self.tr("Discount"),
+ WishlistOrder.DEVELOPER: self.tr("Developer"),
+ }
+ for data, text in sortings.items():
+ self.ui.order_combo.addItem(text, data)
+ self.ui.order_combo.currentIndexChanged.connect(self.order_wishlist)
+
+ filters = {
+ WishlistFilter.NONE: self.tr("None"),
+ WishlistFilter.DISCOUNT: self.tr("Discount"),
+ }
+ for data, text in filters.items():
+ self.ui.filter_combo.addItem(text, data)
+ self.ui.filter_combo.currentIndexChanged.connect(self.filter_wishlist)
- self.ui.sort_cb.currentIndexChanged.connect(self.sort_wishlist)
- self.ui.filter_cb.currentIndexChanged.connect(self.set_filter)
- self.ui.reload_button.clicked.connect(self.update_wishlist)
self.ui.reload_button.setIcon(qta_icon("fa.refresh", color="white"))
+ self.ui.reload_button.clicked.connect(self.update_wishlist)
- self.ui.reverse.stateChanged.connect(
- lambda: self.sort_wishlist(sort=self.ui.sort_cb.currentIndex())
+ self.ui.reverse_check.stateChanged.connect(
+ lambda: self.order_wishlist(self.ui.order_combo.currentIndex())
)
+ self.setEnabled(False)
+
def showEvent(self, a0: QShowEvent) -> None:
self.update_wishlist()
return super().showEvent(a0)
@@ -90,70 +119,68 @@ class WishlistWidget(QWidget, SideTabContents):
)
self.update_wishlist_signal.emit()
- def set_filter(self, i):
- count = 0
- for w in self.widgets:
- if i == 1 and not w.discount:
- w.setVisible(False)
+ @pyqtSlot(int)
+ def filter_wishlist(self, index: int = int(WishlistFilter.NONE)):
+ list_filter = self.ui.filter_combo.itemData(index, Qt.UserRole)
+ widgets = self.ui.container.findChildren(WishlistItemWidget, options=Qt.FindDirectChildrenOnly)
+ for w in widgets:
+ if list_filter == WishlistFilter.NONE:
+ w.setVisible(True)
+ elif list_filter == WishlistFilter.DISCOUNT:
+ w.setVisible(bool(w.catalog_game.price.totalPrice.discount))
else:
w.setVisible(True)
- count += 1
+ have_visible = any(map(lambda x: x.isVisible(), widgets))
+ self.ui.no_games_label.setVisible(not have_visible)
- if i == 0:
- w.setVisible(True)
-
- if count == 0:
- self.ui.no_games_label.setVisible(True)
- else:
- self.ui.no_games_label.setVisible(False)
-
- def sort_wishlist(self, sort=0):
- widgets = self.ui.list_container.findChildren(WishlistItemWidget, options=Qt.FindDirectChildrenOnly)
+ @pyqtSlot(int)
+ def order_wishlist(self, index: int = int(WishlistOrder.NAME)):
+ list_order = self.ui.order_combo.itemData(index, Qt.UserRole)
+ widgets = self.ui.container.findChildren(WishlistItemWidget, options=Qt.FindDirectChildrenOnly)
for w in widgets:
- self.ui.list_container.layout().removeWidget(w)
+ self.wishlist_layout.removeWidget(w)
- if sort == 0:
- func = lambda x: x.catalog_game.title
- reverse = self.ui.reverse.isChecked()
- elif sort == 1:
- func = lambda x: x.catalog_game.price.totalPrice["fmtPrice"]["discountPrice"]
- reverse = self.ui.reverse.isChecked()
- elif sort == 2:
- func = lambda x: x.catalog_game.seller["name"]
- reverse = self.ui.reverse.isChecked()
- elif sort == 3:
- func = lambda x: 1 - (x.catalog_game.price.totalPrice["discountPrice"] / x.catalog_game.price.totalPrice["originalPrice"])
- reverse = not self.ui.reverse.isChecked()
+ if list_order == WishlistOrder.NAME:
+ def func(x: WishlistItemWidget):
+ return x.catalog_game.title
+ elif list_order == WishlistOrder.PRICE:
+ def func(x: WishlistItemWidget):
+ return x.catalog_game.price.totalPrice.discountPrice
+ elif list_order == WishlistOrder.DEVELOPER:
+ def func(x: WishlistItemWidget):
+ return x.catalog_game.seller["name"]
+ elif list_order == WishlistOrder.DISCOUNT:
+ def func(x: WishlistItemWidget):
+ discount = x.catalog_game.price.totalPrice.discountPrice
+ original = x.catalog_game.price.totalPrice.originalPrice
+ return 1 - (discount / original)
else:
- func = lambda x: x.catalog_game.title
- reverse = self.ui.reverse.isChecked()
+ def func(x: WishlistItemWidget):
+ return x.catalog_game.title
+ reverse = self.ui.reverse_check.isChecked()
widgets = sorted(widgets, key=func, reverse=reverse)
for w in widgets:
- self.ui.list_container.layout().addWidget(w)
+ self.wishlist_layout.addWidget(w)
- def set_wishlist(self, wishlist: List[WishlistItemModel] = None, sort=0):
+ def set_wishlist(self, wishlist: List[WishlistItemModel] = None):
if wishlist and wishlist[0] == "error":
return
- if wishlist is not None:
- self.wishlist = wishlist
+ widgets = self.ui.container.findChildren(WishlistItemWidget, options=Qt.FindDirectChildrenOnly)
+ for w in widgets:
+ self.wishlist_layout.removeWidget(w)
+ w.deleteLater()
- for i in self.widgets:
- i.deleteLater()
-
- self.widgets.clear()
-
- if len(wishlist) == 0:
- self.ui.no_games_label.setVisible(True)
- else:
- self.ui.no_games_label.setVisible(False)
+ self.ui.no_games_label.setVisible(bool(wishlist))
for game in wishlist:
- w = WishlistItemWidget(self.api.cached_manager, game.offer, self.ui.list_container)
+ w = WishlistItemWidget(self.api.cached_manager, game.offer, self.ui.container)
w.show_details.connect(self.show_details)
w.delete_from_wishlist.connect(self.delete_from_wishlist)
- self.widgets.append(w)
- self.list_layout.addWidget(w)
- self.list_layout.update()
+ self.wishlist_layout.addWidget(w)
+
+ self.order_wishlist(self.ui.order_combo.currentIndex())
+ self.filter_wishlist(self.ui.filter_combo.currentIndex())
+
self.setEnabled(True)
diff --git a/rare/ui/components/tabs/store/wishlist.py b/rare/ui/components/tabs/store/wishlist.py
index 2bea5fa8..ff93d8d5 100644
--- a/rare/ui/components/tabs/store/wishlist.py
+++ b/rare/ui/components/tabs/store/wishlist.py
@@ -14,40 +14,34 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Wishlist(object):
def setupUi(self, Wishlist):
Wishlist.setObjectName("Wishlist")
- Wishlist.resize(423, 153)
+ Wishlist.resize(489, 165)
Wishlist.setWindowTitle("Wishlist")
self.main_layout = QtWidgets.QVBoxLayout(Wishlist)
self.main_layout.setObjectName("main_layout")
self.tool_layout = QtWidgets.QHBoxLayout()
self.tool_layout.setObjectName("tool_layout")
- self.sort_label = QtWidgets.QLabel(Wishlist)
+ self.order_label = QtWidgets.QLabel(Wishlist)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.sort_label.sizePolicy().hasHeightForWidth())
- self.sort_label.setSizePolicy(sizePolicy)
- self.sort_label.setObjectName("sort_label")
- self.tool_layout.addWidget(self.sort_label)
- self.sort_cb = QtWidgets.QComboBox(Wishlist)
- self.sort_cb.setObjectName("sort_cb")
- self.sort_cb.addItem("")
- self.sort_cb.addItem("")
- self.sort_cb.addItem("")
- self.sort_cb.addItem("")
- self.tool_layout.addWidget(self.sort_cb)
- self.reverse = QtWidgets.QCheckBox(Wishlist)
- self.reverse.setObjectName("reverse")
- self.tool_layout.addWidget(self.reverse)
+ sizePolicy.setHeightForWidth(self.order_label.sizePolicy().hasHeightForWidth())
+ self.order_label.setSizePolicy(sizePolicy)
+ self.order_label.setObjectName("order_label")
+ self.tool_layout.addWidget(self.order_label)
+ self.order_combo = QtWidgets.QComboBox(Wishlist)
+ self.order_combo.setObjectName("order_combo")
+ self.tool_layout.addWidget(self.order_combo)
+ self.reverse_check = QtWidgets.QCheckBox(Wishlist)
+ self.reverse_check.setObjectName("reverse_check")
+ self.tool_layout.addWidget(self.reverse_check)
spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.tool_layout.addItem(spacerItem)
self.filter_label = QtWidgets.QLabel(Wishlist)
self.filter_label.setObjectName("filter_label")
self.tool_layout.addWidget(self.filter_label)
- self.filter_cb = QtWidgets.QComboBox(Wishlist)
- self.filter_cb.setObjectName("filter_cb")
- self.filter_cb.addItem("")
- self.filter_cb.addItem("")
- self.tool_layout.addWidget(self.filter_cb)
+ self.filter_combo = QtWidgets.QComboBox(Wishlist)
+ self.filter_combo.setObjectName("filter_combo")
+ self.tool_layout.addWidget(self.filter_combo)
spacerItem1 = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.tool_layout.addItem(spacerItem1)
self.reload_button = QtWidgets.QPushButton(Wishlist)
@@ -60,31 +54,28 @@ class Ui_Wishlist(object):
self.reload_button.setObjectName("reload_button")
self.tool_layout.addWidget(self.reload_button)
self.main_layout.addLayout(self.tool_layout)
- self.no_games_label = QtWidgets.QLabel(Wishlist)
+ self.scrollarea = QtWidgets.QScrollArea(Wishlist)
+ self.scrollarea.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
+ self.scrollarea.setWidgetResizable(True)
+ self.scrollarea.setObjectName("scrollarea")
+ self.container = QtWidgets.QWidget()
+ self.container.setGeometry(QtCore.QRect(0, 0, 473, 115))
+ self.container.setObjectName("container")
+ self.container_layout = QtWidgets.QVBoxLayout(self.container)
+ self.container_layout.setObjectName("container_layout")
+ self.no_games_label = QtWidgets.QLabel(self.container)
self.no_games_label.setObjectName("no_games_label")
- self.main_layout.addWidget(self.no_games_label)
- self.list_scrollarea = QtWidgets.QScrollArea(Wishlist)
- self.list_scrollarea.setWidgetResizable(True)
- self.list_scrollarea.setObjectName("list_scrollarea")
- self.list_container = QtWidgets.QWidget()
- self.list_container.setGeometry(QtCore.QRect(0, 0, 407, 83))
- self.list_container.setObjectName("list_container")
- self.list_scrollarea.setWidget(self.list_container)
- self.main_layout.addWidget(self.list_scrollarea)
+ self.container_layout.addWidget(self.no_games_label, 0, QtCore.Qt.AlignTop)
+ self.scrollarea.setWidget(self.container)
+ self.main_layout.addWidget(self.scrollarea)
self.retranslateUi(Wishlist)
def retranslateUi(self, Wishlist):
_translate = QtCore.QCoreApplication.translate
- self.sort_label.setText(_translate("Wishlist", "Sort by"))
- self.sort_cb.setItemText(0, _translate("Wishlist", "Name"))
- self.sort_cb.setItemText(1, _translate("Wishlist", "Price"))
- self.sort_cb.setItemText(2, _translate("Wishlist", "Developer"))
- self.sort_cb.setItemText(3, _translate("Wishlist", "Discount"))
- self.reverse.setText(_translate("Wishlist", "Reverse"))
- self.filter_label.setText(_translate("Wishlist", "Filter:"))
- self.filter_cb.setItemText(0, _translate("Wishlist", "None"))
- self.filter_cb.setItemText(1, _translate("Wishlist", "Discount"))
+ self.order_label.setText(_translate("Wishlist", "Sort by"))
+ self.reverse_check.setText(_translate("Wishlist", "Reverse"))
+ self.filter_label.setText(_translate("Wishlist", "Filter by"))
self.no_games_label.setText(_translate("Wishlist", "No games matching your filter"))
diff --git a/rare/ui/components/tabs/store/wishlist.ui b/rare/ui/components/tabs/store/wishlist.ui
index 1d2fe6bd..2a9e064e 100644
--- a/rare/ui/components/tabs/store/wishlist.ui
+++ b/rare/ui/components/tabs/store/wishlist.ui
@@ -6,8 +6,8 @@
0
0
- 423
- 153
+ 489
+ 165
@@ -17,7 +17,7 @@
-
-
-
+
0
@@ -30,38 +30,17 @@
-
-
-
-
-
- Name
-
-
- -
-
- Price
-
-
- -
-
- Developer
-
-
- -
-
- Discount
-
-
-
+
-
-
+
Reverse
-
-
+
Qt::Horizontal
@@ -76,26 +55,15 @@
-
- Filter:
+ Filter by
-
-
-
-
-
- None
-
-
- -
-
- Discount
-
-
-
+
-
-
+
Qt::Horizontal
@@ -123,26 +91,31 @@
-
-
-
- No games matching your filter
+
+
+ QAbstractScrollArea::AdjustToContents
-
-
- -
-
true
-
+
0
0
- 407
- 83
+ 473
+ 115
+
+
-
+
+
+ No games matching your filter
+
+
+
+