Add price to game widget
This commit is contained in:
parent
f8560b206f
commit
648fd6fd7f
4 changed files with 53 additions and 32 deletions
|
@ -29,10 +29,25 @@ class GameWidget(QWidget):
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
self.image = ImageLabel()
|
self.image = ImageLabel()
|
||||||
self.layout.addWidget(self.image)
|
self.layout.addWidget(self.image)
|
||||||
|
mini_layout = QHBoxLayout()
|
||||||
|
self.layout.addLayout(mini_layout)
|
||||||
|
|
||||||
self.title_label = QLabel(json_info.get("title"))
|
self.title_label = QLabel(json_info.get("title"))
|
||||||
self.title_label.setWordWrap(True)
|
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'<>?":|\/*':
|
for c in r'<>?":|\/*':
|
||||||
json_info["title"] = json_info["title"].replace(c, "")
|
json_info["title"] = json_info["title"].replace(c, "")
|
||||||
|
@ -57,25 +72,6 @@ class GameWidget(QWidget):
|
||||||
self.show_info.emit(self.json_info)
|
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):
|
class WishlistWidget(QWidget, Ui_WishlistWidget):
|
||||||
open_game = pyqtSignal(dict)
|
open_game = pyqtSignal(dict)
|
||||||
delete_from_wishlist = pyqtSignal(dict)
|
delete_from_wishlist = pyqtSignal(dict)
|
||||||
|
|
|
@ -2,13 +2,13 @@ import datetime
|
||||||
import logging
|
import logging
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
from PyQt5.QtCore import pyqtSignal
|
||||||
from PyQt5.QtWidgets import QWidget, QCompleter, QGroupBox, QHBoxLayout, QScrollArea, QCheckBox, QVBoxLayout, QLabel
|
from PyQt5.QtWidgets import QWidget, QGroupBox, QScrollArea, QCheckBox, QVBoxLayout, QLabel
|
||||||
|
|
||||||
from custom_legendary.core import LegendaryCore
|
from custom_legendary.core import LegendaryCore
|
||||||
from rare.components.tabs.shop import ShopApiCore
|
from rare.components.tabs.shop import ShopApiCore
|
||||||
from rare.components.tabs.shop.constants import Constants
|
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.components.tabs.shop.shop_models import BrowseModel
|
||||||
from rare.ui.components.tabs.store.store import Ui_ShopWidget
|
from rare.ui.components.tabs.store.store import Ui_ShopWidget
|
||||||
from rare.utils.extra_widgets import WaitingSpinner, FlowLayout, ButtonLineEdit
|
from rare.utils.extra_widgets import WaitingSpinner, FlowLayout, ButtonLineEdit
|
||||||
|
@ -38,12 +38,12 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
||||||
self.types = []
|
self.types = []
|
||||||
self.locale = get_lang()
|
self.locale = get_lang()
|
||||||
self.update_games_allowed = True
|
self.update_games_allowed = True
|
||||||
|
self.free_widget.setLayout(FlowLayout())
|
||||||
self.free_games_now = QGroupBox(self.tr("Now Free"))
|
self.free_games_now = QGroupBox(self.tr("Now Free"))
|
||||||
self.free_games_now.setLayout(FlowLayout())
|
self.free_games_now.setLayout(FlowLayout())
|
||||||
self.free_widget.layout().addWidget(self.free_games_now)
|
self.free_widget.layout().addWidget(self.free_games_now)
|
||||||
self.coming_free_games = QGroupBox(self.tr("Free Games next week"))
|
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_widget.layout().addWidget(self.coming_free_games)
|
||||||
self.free_stack.addWidget(WaitingSpinner())
|
self.free_stack.addWidget(WaitingSpinner())
|
||||||
self.free_stack.setCurrentIndex(1)
|
self.free_stack.setCurrentIndex(1)
|
||||||
|
@ -56,15 +56,11 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
||||||
self.game_stack.addWidget(WaitingSpinner())
|
self.game_stack.addWidget(WaitingSpinner())
|
||||||
self.game_stack.setCurrentIndex(1)
|
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.search_bar = ButtonLineEdit("fa.search", placeholder_text=self.tr("Search Games"))
|
||||||
self.layout().insertWidget(0, self.search_bar)
|
self.layout().insertWidget(0, self.search_bar)
|
||||||
|
|
||||||
# self.search_bar.textChanged.connect(self.search_games)
|
# 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.returnPressed.connect(self.show_search_results)
|
||||||
self.search_bar.buttonClicked.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:
|
if not game:
|
||||||
continue
|
continue
|
||||||
if game["offer"]["price"]["totalPrice"]["discount"] > 0:
|
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)
|
w.show_info.connect(self.show_game.emit)
|
||||||
self.discount_widget.layout().addWidget(w)
|
self.discount_widget.layout().addWidget(w)
|
||||||
discounts += 1
|
discounts += 1
|
||||||
|
@ -142,7 +138,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
||||||
coming_free_games.append(game)
|
coming_free_games.append(game)
|
||||||
# free games now
|
# free games now
|
||||||
for free_game in 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)
|
w.show_info.connect(self.show_game.emit)
|
||||||
self.free_games_now.layout().addWidget(w)
|
self.free_games_now.layout().addWidget(w)
|
||||||
self.free_game_widgets.append(w)
|
self.free_game_widgets.append(w)
|
||||||
|
@ -244,7 +240,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
||||||
self.game_widget.setLayout(FlowLayout())
|
self.game_widget.setLayout(FlowLayout())
|
||||||
|
|
||||||
for game in data:
|
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)
|
self.game_widget.layout().addWidget(w)
|
||||||
w.show_info.connect(self.show_game.emit)
|
w.show_info.connect(self.show_game.emit)
|
||||||
|
|
||||||
|
|
|
@ -32,12 +32,22 @@ class Ui_ShopWidget(object):
|
||||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
|
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
|
||||||
self.verticalLayout.setObjectName("verticalLayout")
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
self.free_game_group_box = QtWidgets.QGroupBox(self.widget)
|
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.free_game_group_box.setObjectName("free_game_group_box")
|
||||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.free_game_group_box)
|
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.free_game_group_box)
|
||||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||||
self.free_stack = QtWidgets.QStackedWidget(self.free_game_group_box)
|
self.free_stack = QtWidgets.QStackedWidget(self.free_game_group_box)
|
||||||
self.free_stack.setObjectName("free_stack")
|
self.free_stack.setObjectName("free_stack")
|
||||||
self.free_widget = QtWidgets.QWidget()
|
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.free_widget.setObjectName("free_widget")
|
||||||
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.free_widget)
|
self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.free_widget)
|
||||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||||
|
|
|
@ -36,6 +36,12 @@
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="free_game_group_box">
|
<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">
|
<property name="title">
|
||||||
<string>Free Games</string>
|
<string>Free Games</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -43,6 +49,13 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="free_stack">
|
<widget class="QStackedWidget" name="free_stack">
|
||||||
<widget class="QWidget" name="free_widget">
|
<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"
|
<layout class="QVBoxLayout"
|
||||||
name="verticalLayout_8"/>
|
name="verticalLayout_8"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
Loading…
Reference in a new issue