1
0
Fork 0
mirror of synced 2024-05-18 11:32:50 +12:00

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.
This commit is contained in:
loathingKernel 2024-02-25 15:30:35 +02:00
parent 766557924a
commit fb0d5bbe10
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD
7 changed files with 213 additions and 184 deletions

View file

@ -2,8 +2,8 @@ import datetime
import logging import logging
from typing import List from typing import List
from PyQt5.QtCore import Qt, pyqtSlot, pyqtSignal from PyQt5.QtCore import Qt, pyqtSlot, pyqtSignal, QObject, QEvent
from PyQt5.QtGui import QShowEvent, QHideEvent from PyQt5.QtGui import QShowEvent, QHideEvent, QResizeEvent
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QHBoxLayout, QHBoxLayout,
QWidget, QWidget,
@ -63,6 +63,38 @@ class LandingPage(SlidingStackedWidget, SideTabContents):
self.slideInWidget(self.details_widget) 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): class LandingWidget(QWidget, SideTabContents):
show_details = pyqtSignal(CatalogOfferModel) show_details = pyqtSignal(CatalogOfferModel)
@ -76,10 +108,12 @@ class LandingWidget(QWidget, SideTabContents):
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.free_games_now = StoreGroup(self.tr("Free now"), layout=QHBoxLayout, parent=self) 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 = 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 = StoreGroup(self.tr("Wishlist discounts"), layout=FlowLayout, parent=self)
self.discounts_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) 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 = StoreGroup(self.tr("Free to play"), FlowLayout, self)
self.games_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.games_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.games_group.loading(False) self.games_group.loading(False)
self.games_group.setVisible(True) self.games_group.setVisible(False)
layout.addWidget(self.free_games_now, alignment=Qt.AlignTop) free_scroll = FreeGamesScroll(self)
layout.addWidget(self.free_games_next, alignment=Qt.AlignTop) 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.discounts_group, alignment=Qt.AlignTop)
layout.addWidget(self.games_group, alignment=Qt.AlignTop) layout.addWidget(self.games_group, alignment=Qt.AlignTop)
layout.addItem(QSpacerItem(0, 0, QSizePolicy.Fixed, QSizePolicy.Expanding)) layout.addItem(QSpacerItem(0, 0, QSizePolicy.Fixed, QSizePolicy.Expanding))
@ -113,12 +167,12 @@ class LandingWidget(QWidget, SideTabContents):
self.discounts_group.layout().removeWidget(w) self.discounts_group.layout().removeWidget(w)
w.deleteLater() w.deleteLater()
for item in wishlist: for item in filter(lambda x: bool(x.offer.price.totalPrice.discount), wishlist):
if item.offer.price.totalPrice.discount > 0: w = StoreItemWidget(self.api.cached_manager, item.offer)
w = StoreItemWidget(self.api.cached_manager, item.offer) w.show_details.connect(self.show_details)
w.show_details.connect(self.show_details) self.discounts_group.layout().addWidget(w)
self.discounts_group.layout().addWidget(w) have_discounts = any(map(lambda x: bool(x.offer.price.totalPrice.discount), wishlist))
self.discounts_group.setVisible(bool(wishlist)) self.discounts_group.setVisible(have_discounts)
self.discounts_group.loading(False) self.discounts_group.loading(False)
def __update_free_games(self, free_games: List[CatalogOfferModel]): def __update_free_games(self, free_games: List[CatalogOfferModel]):
@ -171,13 +225,15 @@ class LandingWidget(QWidget, SideTabContents):
self.free_games_next.loading(False) self.free_games_next.loading(False)
def show_games(self, data): def show_games(self, data):
if not data:
return
for w in self.games_group.findChildren(StoreItemWidget, options=Qt.FindDirectChildrenOnly): for w in self.games_group.findChildren(StoreItemWidget, options=Qt.FindDirectChildrenOnly):
self.games_group.layout().removeWidget(w) self.games_group.layout().removeWidget(w)
w.deleteLater() w.deleteLater()
if data: for game in data:
for game in data: w = StoreItemWidget(self.api.cached_manager, game)
w = StoreItemWidget(self.api.cached_manager, game) w.show_details.connect(self.show_details)
w.show_details.connect(self.show_details) self.games_group.layout().addWidget(w)
self.games_group.layout().addWidget(w)
self.games_group.loading(False) self.games_group.loading(False)

View file

@ -4,7 +4,6 @@ from typing import List, Callable
from PyQt5.QtCore import pyqtSignal, QObject from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QApplication
from rare.components.tabs.store.api.debug import DebugDialog
from rare.components.tabs.store.constants import ( from rare.components.tabs.store.constants import (
wishlist_query, wishlist_query,
search_query, search_query,
@ -154,13 +153,9 @@ class StoreAPI(QObject):
"query": search_query, "query": search_query,
"variables": browse_model.to_dict() "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) self.manager.post(graphql_url, lambda data: self.__handle_browse_games(data, handle_func), payload)
def __handle_browse_games(self, data, handle_func): def __handle_browse_games(self, data, handle_func):
# debug = DebugDialog(data, None)
# debug.exec()
self.browse_active = False self.browse_active = False
if data is None: if data is None:
data = {} data = {}
@ -204,8 +199,6 @@ class StoreAPI(QObject):
@staticmethod @staticmethod
def __handle_get_game(data, handle_func): def __handle_get_game(data, handle_func):
# debug = DebugDialog(data, None)
# debug.exec()
try: try:
product = DieselProduct.from_dict(data) product = DieselProduct.from_dict(data)
handle_func(product) 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) 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): def _handle_add_to_wishlist(self, data, handle_func):
# debug = DebugDialog(data, None)
# debug.exec()
try: try:
response = ResponseModel.from_dict(data) response = ResponseModel.from_dict(data)
data = response.data.wishlist.addToWishlist data = response.data.wishlist.addToWishlist
@ -255,8 +246,6 @@ class StoreAPI(QObject):
payload) payload)
def _handle_remove_from_wishlist(self, data, handle_func): def _handle_remove_from_wishlist(self, data, handle_func):
# debug = DebugDialog(data, None)
# debug.exec()
try: try:
response = ResponseModel.from_dict(data) response = ResponseModel.from_dict(data)
data = response.data.wishlist.removeFromWishlist data = response.data.wishlist.removeFromWishlist

View file

@ -11,7 +11,6 @@ from PyQt5.QtWidgets import (
QSizePolicy, 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.diesel import DieselProduct, DieselProductDetail, DieselSystemDetail
from rare.components.tabs.store.api.models.response import CatalogOfferModel from rare.components.tabs.store.api.models.response import CatalogOfferModel
from rare.components.tabs.store.store_api import StoreAPI from rare.components.tabs.store.store_api import StoreAPI
@ -72,8 +71,6 @@ class DetailsWidget(QWidget, SideTabContents):
self.in_wishlist = False self.in_wishlist = False
def update_game(self, offer: CatalogOfferModel): def update_game(self, offer: CatalogOfferModel):
debug = DebugDialog(offer.__dict__, None)
debug.exec()
self.ui.title.setText(offer.title) self.ui.title.setText(offer.title)
self.title_str = offer.title self.title_str = offer.title
self.id_str = offer.id self.id_str = offer.id

View file

@ -4,7 +4,6 @@ from PyQt5.QtCore import pyqtSignal, Qt
from PyQt5.QtGui import QMouseEvent from PyQt5.QtGui import QMouseEvent
from PyQt5.QtWidgets import QPushButton 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.components.tabs.store.api.models.response import CatalogOfferModel
from rare.models.image import ImageSize from rare.models.image import ImageSize
from rare.utils.misc import qta_icon from rare.utils.misc import qta_icon
@ -27,9 +26,6 @@ class ItemWidget(LoadingImageWidget):
self.show_details.emit(self.catalog_game) self.show_details.emit(self.catalog_game)
if a0.button() == Qt.RightButton: if a0.button() == Qt.RightButton:
a0.accept() a0.accept()
print(self.catalog_game.__dict__)
dialog = DebugDialog(self.catalog_game.__dict__, self)
dialog.show()
class StoreItemWidget(ItemWidget): class StoreItemWidget(ItemWidget):

View file

@ -1,3 +1,4 @@
from enum import IntEnum
from typing import List from typing import List
from PyQt5.QtCore import pyqtSignal, Qt, pyqtSlot from PyQt5.QtCore import pyqtSignal, Qt, pyqtSlot
@ -44,6 +45,18 @@ class WishlistPage(SlidingStackedWidget, SideTabContents):
self.slideInWidget(self.details_widget) 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): class WishlistWidget(QWidget, SideTabContents):
show_details = pyqtSignal(CatalogOfferModel) show_details = pyqtSignal(CatalogOfferModel)
update_wishlist_signal = pyqtSignal() update_wishlist_signal = pyqtSignal()
@ -55,21 +68,37 @@ class WishlistWidget(QWidget, SideTabContents):
self.ui = Ui_Wishlist() self.ui = Ui_Wishlist()
self.ui.setupUi(self) self.ui.setupUi(self)
self.ui.main_layout.setContentsMargins(0, 0, 3, 0) 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.setIcon(qta_icon("fa.refresh", color="white"))
self.ui.reload_button.clicked.connect(self.update_wishlist)
self.ui.reverse.stateChanged.connect( self.ui.reverse_check.stateChanged.connect(
lambda: self.sort_wishlist(sort=self.ui.sort_cb.currentIndex()) lambda: self.order_wishlist(self.ui.order_combo.currentIndex())
) )
self.setEnabled(False)
def showEvent(self, a0: QShowEvent) -> None: def showEvent(self, a0: QShowEvent) -> None:
self.update_wishlist() self.update_wishlist()
return super().showEvent(a0) return super().showEvent(a0)
@ -90,70 +119,68 @@ class WishlistWidget(QWidget, SideTabContents):
) )
self.update_wishlist_signal.emit() self.update_wishlist_signal.emit()
def set_filter(self, i): @pyqtSlot(int)
count = 0 def filter_wishlist(self, index: int = int(WishlistFilter.NONE)):
for w in self.widgets: list_filter = self.ui.filter_combo.itemData(index, Qt.UserRole)
if i == 1 and not w.discount: widgets = self.ui.container.findChildren(WishlistItemWidget, options=Qt.FindDirectChildrenOnly)
w.setVisible(False) 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: else:
w.setVisible(True) 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: @pyqtSlot(int)
w.setVisible(True) def order_wishlist(self, index: int = int(WishlistOrder.NAME)):
list_order = self.ui.order_combo.itemData(index, Qt.UserRole)
if count == 0: widgets = self.ui.container.findChildren(WishlistItemWidget, options=Qt.FindDirectChildrenOnly)
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)
for w in widgets: for w in widgets:
self.ui.list_container.layout().removeWidget(w) self.wishlist_layout.removeWidget(w)
if sort == 0: if list_order == WishlistOrder.NAME:
func = lambda x: x.catalog_game.title def func(x: WishlistItemWidget):
reverse = self.ui.reverse.isChecked() return x.catalog_game.title
elif sort == 1: elif list_order == WishlistOrder.PRICE:
func = lambda x: x.catalog_game.price.totalPrice["fmtPrice"]["discountPrice"] def func(x: WishlistItemWidget):
reverse = self.ui.reverse.isChecked() return x.catalog_game.price.totalPrice.discountPrice
elif sort == 2: elif list_order == WishlistOrder.DEVELOPER:
func = lambda x: x.catalog_game.seller["name"] def func(x: WishlistItemWidget):
reverse = self.ui.reverse.isChecked() return x.catalog_game.seller["name"]
elif sort == 3: elif list_order == WishlistOrder.DISCOUNT:
func = lambda x: 1 - (x.catalog_game.price.totalPrice["discountPrice"] / x.catalog_game.price.totalPrice["originalPrice"]) def func(x: WishlistItemWidget):
reverse = not self.ui.reverse.isChecked() discount = x.catalog_game.price.totalPrice.discountPrice
original = x.catalog_game.price.totalPrice.originalPrice
return 1 - (discount / original)
else: else:
func = lambda x: x.catalog_game.title def func(x: WishlistItemWidget):
reverse = self.ui.reverse.isChecked() return x.catalog_game.title
reverse = self.ui.reverse_check.isChecked()
widgets = sorted(widgets, key=func, reverse=reverse) widgets = sorted(widgets, key=func, reverse=reverse)
for w in widgets: 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": if wishlist and wishlist[0] == "error":
return return
if wishlist is not None: widgets = self.ui.container.findChildren(WishlistItemWidget, options=Qt.FindDirectChildrenOnly)
self.wishlist = wishlist for w in widgets:
self.wishlist_layout.removeWidget(w)
w.deleteLater()
for i in self.widgets: self.ui.no_games_label.setVisible(bool(wishlist))
i.deleteLater()
self.widgets.clear()
if len(wishlist) == 0:
self.ui.no_games_label.setVisible(True)
else:
self.ui.no_games_label.setVisible(False)
for game in 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.show_details.connect(self.show_details)
w.delete_from_wishlist.connect(self.delete_from_wishlist) w.delete_from_wishlist.connect(self.delete_from_wishlist)
self.widgets.append(w) self.wishlist_layout.addWidget(w)
self.list_layout.addWidget(w)
self.list_layout.update() self.order_wishlist(self.ui.order_combo.currentIndex())
self.filter_wishlist(self.ui.filter_combo.currentIndex())
self.setEnabled(True) self.setEnabled(True)

View file

@ -14,40 +14,34 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Wishlist(object): class Ui_Wishlist(object):
def setupUi(self, Wishlist): def setupUi(self, Wishlist):
Wishlist.setObjectName("Wishlist") Wishlist.setObjectName("Wishlist")
Wishlist.resize(423, 153) Wishlist.resize(489, 165)
Wishlist.setWindowTitle("Wishlist") Wishlist.setWindowTitle("Wishlist")
self.main_layout = QtWidgets.QVBoxLayout(Wishlist) self.main_layout = QtWidgets.QVBoxLayout(Wishlist)
self.main_layout.setObjectName("main_layout") self.main_layout.setObjectName("main_layout")
self.tool_layout = QtWidgets.QHBoxLayout() self.tool_layout = QtWidgets.QHBoxLayout()
self.tool_layout.setObjectName("tool_layout") 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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.sort_label.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.order_label.sizePolicy().hasHeightForWidth())
self.sort_label.setSizePolicy(sizePolicy) self.order_label.setSizePolicy(sizePolicy)
self.sort_label.setObjectName("sort_label") self.order_label.setObjectName("order_label")
self.tool_layout.addWidget(self.sort_label) self.tool_layout.addWidget(self.order_label)
self.sort_cb = QtWidgets.QComboBox(Wishlist) self.order_combo = QtWidgets.QComboBox(Wishlist)
self.sort_cb.setObjectName("sort_cb") self.order_combo.setObjectName("order_combo")
self.sort_cb.addItem("") self.tool_layout.addWidget(self.order_combo)
self.sort_cb.addItem("") self.reverse_check = QtWidgets.QCheckBox(Wishlist)
self.sort_cb.addItem("") self.reverse_check.setObjectName("reverse_check")
self.sort_cb.addItem("") self.tool_layout.addWidget(self.reverse_check)
self.tool_layout.addWidget(self.sort_cb)
self.reverse = QtWidgets.QCheckBox(Wishlist)
self.reverse.setObjectName("reverse")
self.tool_layout.addWidget(self.reverse)
spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.tool_layout.addItem(spacerItem) self.tool_layout.addItem(spacerItem)
self.filter_label = QtWidgets.QLabel(Wishlist) self.filter_label = QtWidgets.QLabel(Wishlist)
self.filter_label.setObjectName("filter_label") self.filter_label.setObjectName("filter_label")
self.tool_layout.addWidget(self.filter_label) self.tool_layout.addWidget(self.filter_label)
self.filter_cb = QtWidgets.QComboBox(Wishlist) self.filter_combo = QtWidgets.QComboBox(Wishlist)
self.filter_cb.setObjectName("filter_cb") self.filter_combo.setObjectName("filter_combo")
self.filter_cb.addItem("") self.tool_layout.addWidget(self.filter_combo)
self.filter_cb.addItem("")
self.tool_layout.addWidget(self.filter_cb)
spacerItem1 = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) spacerItem1 = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.tool_layout.addItem(spacerItem1) self.tool_layout.addItem(spacerItem1)
self.reload_button = QtWidgets.QPushButton(Wishlist) self.reload_button = QtWidgets.QPushButton(Wishlist)
@ -60,31 +54,28 @@ class Ui_Wishlist(object):
self.reload_button.setObjectName("reload_button") self.reload_button.setObjectName("reload_button")
self.tool_layout.addWidget(self.reload_button) self.tool_layout.addWidget(self.reload_button)
self.main_layout.addLayout(self.tool_layout) 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.no_games_label.setObjectName("no_games_label")
self.main_layout.addWidget(self.no_games_label) self.container_layout.addWidget(self.no_games_label, 0, QtCore.Qt.AlignTop)
self.list_scrollarea = QtWidgets.QScrollArea(Wishlist) self.scrollarea.setWidget(self.container)
self.list_scrollarea.setWidgetResizable(True) self.main_layout.addWidget(self.scrollarea)
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.retranslateUi(Wishlist) self.retranslateUi(Wishlist)
def retranslateUi(self, Wishlist): def retranslateUi(self, Wishlist):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
self.sort_label.setText(_translate("Wishlist", "Sort by")) self.order_label.setText(_translate("Wishlist", "Sort by"))
self.sort_cb.setItemText(0, _translate("Wishlist", "Name")) self.reverse_check.setText(_translate("Wishlist", "Reverse"))
self.sort_cb.setItemText(1, _translate("Wishlist", "Price")) self.filter_label.setText(_translate("Wishlist", "Filter by"))
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.no_games_label.setText(_translate("Wishlist", "No games matching your filter")) self.no_games_label.setText(_translate("Wishlist", "No games matching your filter"))

View file

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>423</width> <width>489</width>
<height>153</height> <height>165</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -17,7 +17,7 @@
<item> <item>
<layout class="QHBoxLayout" name="tool_layout"> <layout class="QHBoxLayout" name="tool_layout">
<item> <item>
<widget class="QLabel" name="sort_label"> <widget class="QLabel" name="order_label">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred"> <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -30,38 +30,17 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="sort_cb"> <widget class="QComboBox" name="order_combo"/>
<item>
<property name="text">
<string>Name</string>
</property>
</item>
<item>
<property name="text">
<string>Price</string>
</property>
</item>
<item>
<property name="text">
<string>Developer</string>
</property>
</item>
<item>
<property name="text">
<string>Discount</string>
</property>
</item>
</widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="reverse"> <widget class="QCheckBox" name="reverse_check">
<property name="text"> <property name="text">
<string>Reverse</string> <string>Reverse</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="tool_hspacer_1"> <spacer name="hspacer_left">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -76,26 +55,15 @@
<item> <item>
<widget class="QLabel" name="filter_label"> <widget class="QLabel" name="filter_label">
<property name="text"> <property name="text">
<string>Filter:</string> <string>Filter by</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="filter_cb"> <widget class="QComboBox" name="filter_combo"/>
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>Discount</string>
</property>
</item>
</widget>
</item> </item>
<item> <item>
<spacer name="tool_hspacer_2"> <spacer name="hspacer_right">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -123,26 +91,31 @@
</layout> </layout>
</item> </item>
<item> <item>
<widget class="QLabel" name="no_games_label"> <widget class="QScrollArea" name="scrollarea">
<property name="text"> <property name="sizeAdjustPolicy">
<string>No games matching your filter</string> <enum>QAbstractScrollArea::AdjustToContents</enum>
</property> </property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="list_scrollarea">
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
<widget class="QWidget" name="list_container"> <widget class="QWidget" name="container">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>407</width> <width>473</width>
<height>83</height> <height>115</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="container_layout">
<item alignment="Qt::AlignTop">
<widget class="QLabel" name="no_games_label">
<property name="text">
<string>No games matching your filter</string>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</widget> </widget>
</item> </item>