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