1
0
Fork 0
mirror of synced 2024-06-23 08:40:45 +12:00

Add price to game widget

This commit is contained in:
Dummerle 2021-09-05 21:52:47 +02:00
parent f8560b206f
commit 648fd6fd7f
4 changed files with 53 additions and 32 deletions

View file

@ -29,10 +29,25 @@ class GameWidget(QWidget):
self.layout = QVBoxLayout()
self.image = ImageLabel()
self.layout.addWidget(self.image)
mini_layout = QHBoxLayout()
self.layout.addLayout(mini_layout)
self.title_label = QLabel(json_info.get("title"))
self.title_label.setWordWrap(True)
self.layout.addWidget(self.title_label)
mini_layout.addWidget(self.title_label)
mini_layout.addStretch(1)
price = json_info['price']['totalPrice']['fmtPrice']['originalPrice']
discount_price = json_info['price']['totalPrice']['fmtPrice']['discountPrice']
price_label = QLabel(price)
if price != discount_price:
font = QFont()
font.setStrikeOut(True)
price_label.setFont(font)
mini_layout.addWidget(QLabel(discount_price if discount_price != "0" else self.tr("Free")))
mini_layout.addWidget(price_label)
else:
mini_layout.addWidget(price_label)
for c in r'<>?":|\/*':
json_info["title"] = json_info["title"].replace(c, "")
@ -57,25 +72,6 @@ class GameWidget(QWidget):
self.show_info.emit(self.json_info)
class GameWidgetDiscount(GameWidget):
def __init__(self, *args, **kwargs):
super(GameWidgetDiscount, self).__init__(*args, **kwargs)
h_layout = QHBoxLayout()
self.layout.addLayout(h_layout)
price = args[1]['price']['totalPrice']['fmtPrice']['originalPrice']
discount_price = args[1]['price']['totalPrice']['fmtPrice']['discountPrice']
price_label = QLabel(price)
font = QFont()
font.setStrikeOut(True)
price_label.setFont(font)
h_layout.addWidget(QLabel(discount_price if discount_price != "0" else self.tr("Free")))
h_layout.addWidget(price_label)
class WishlistWidget(QWidget, Ui_WishlistWidget):
open_game = pyqtSignal(dict)
delete_from_wishlist = pyqtSignal(dict)

View file

@ -2,13 +2,13 @@ import datetime
import logging
import random
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QWidget, QCompleter, QGroupBox, QHBoxLayout, QScrollArea, QCheckBox, QVBoxLayout, QLabel
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QWidget, QGroupBox, QScrollArea, QCheckBox, QVBoxLayout, QLabel
from custom_legendary.core import LegendaryCore
from rare.components.tabs.shop import ShopApiCore
from rare.components.tabs.shop.constants import Constants
from rare.components.tabs.shop.game_widgets import GameWidget, GameWidgetDiscount
from rare.components.tabs.shop.game_widgets import GameWidget
from rare.components.tabs.shop.shop_models import BrowseModel
from rare.ui.components.tabs.store.store import Ui_ShopWidget
from rare.utils.extra_widgets import WaitingSpinner, FlowLayout, ButtonLineEdit
@ -38,12 +38,12 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.types = []
self.locale = get_lang()
self.update_games_allowed = True
self.free_widget.setLayout(FlowLayout())
self.free_games_now = QGroupBox(self.tr("Now Free"))
self.free_games_now.setLayout(FlowLayout())
self.free_widget.layout().addWidget(self.free_games_now)
self.coming_free_games = QGroupBox(self.tr("Free Games next week"))
self.coming_free_games.setLayout(QHBoxLayout())
self.coming_free_games.setLayout(FlowLayout())
self.free_widget.layout().addWidget(self.coming_free_games)
self.free_stack.addWidget(WaitingSpinner())
self.free_stack.setCurrentIndex(1)
@ -56,15 +56,11 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.game_stack.addWidget(WaitingSpinner())
self.game_stack.setCurrentIndex(1)
self.completer = QCompleter()
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.search_bar = ButtonLineEdit("fa.search", placeholder_text=self.tr("Search Games"))
self.layout().insertWidget(0, self.search_bar)
# self.search_bar.textChanged.connect(self.search_games)
self.search_bar.setCompleter(self.completer)
self.search_bar.returnPressed.connect(self.show_search_results)
self.search_bar.buttonClicked.connect(self.show_search_results)
@ -91,7 +87,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
if not game:
continue
if game["offer"]["price"]["totalPrice"]["discount"] > 0:
w = GameWidgetDiscount(self.path, game["offer"])
w = GameWidget(self.path, game["offer"])
w.show_info.connect(self.show_game.emit)
self.discount_widget.layout().addWidget(w)
discounts += 1
@ -142,7 +138,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
coming_free_games.append(game)
# free games now
for free_game in free_games_now:
w = GameWidgetDiscount(self.path, free_game)
w = GameWidget(self.path, free_game)
w.show_info.connect(self.show_game.emit)
self.free_games_now.layout().addWidget(w)
self.free_game_widgets.append(w)
@ -244,7 +240,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.game_widget.setLayout(FlowLayout())
for game in data:
w = GameWidget(self.path, game, 275)
price = game['price']['totalPrice']['fmtPrice']['originalPrice']
discount_price = game['price']['totalPrice']['fmtPrice']['discountPrice']
if price != discount_price:
w = GameWidget(self.path, game, 275)
else:
w = GameWidget(self.path, game, 275)
self.game_widget.layout().addWidget(w)
w.show_info.connect(self.show_game.emit)

View file

@ -32,12 +32,22 @@ class Ui_ShopWidget(object):
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout.setObjectName("verticalLayout")
self.free_game_group_box = QtWidgets.QGroupBox(self.widget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.free_game_group_box.sizePolicy().hasHeightForWidth())
self.free_game_group_box.setSizePolicy(sizePolicy)
self.free_game_group_box.setObjectName("free_game_group_box")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.free_game_group_box)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.free_stack = QtWidgets.QStackedWidget(self.free_game_group_box)
self.free_stack.setObjectName("free_stack")
self.free_widget = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.free_widget.sizePolicy().hasHeightForWidth())
self.free_widget.setSizePolicy(sizePolicy)
self.free_widget.setObjectName("free_widget")
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.free_widget)
self.verticalLayout_8.setObjectName("verticalLayout_8")

View file

@ -36,6 +36,12 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QGroupBox" name="free_game_group_box">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Free Games</string>
</property>
@ -43,6 +49,13 @@
<item>
<widget class="QStackedWidget" name="free_stack">
<widget class="QWidget" name="free_widget">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred"
vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout"
name="verticalLayout_8"/>
</widget>