Some fixes
This commit is contained in:
parent
9048e4790e
commit
be8ce667eb
10 changed files with 101 additions and 47 deletions
|
@ -89,7 +89,6 @@ class ShopGameInfo(QWidget, Ui_shop_info):
|
|||
self.game = ShopGame.from_json(game, self.data)
|
||||
self.title.setText(self.game.title)
|
||||
self.price.setFont(QFont())
|
||||
print(type(self.game.price))
|
||||
if self.game.price == "0" or self.game.price == 0:
|
||||
self.price.setText(self.tr("Free"))
|
||||
else:
|
||||
|
|
|
@ -113,6 +113,7 @@ class BrowseModel:
|
|||
withPrice: bool = True
|
||||
date: str = f"[,{datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%dT%X')}.{str(random.randint(0, 999)).zfill(3)}Z]"
|
||||
price: str = ""
|
||||
onSale: bool = False
|
||||
|
||||
@property
|
||||
def __dict__(self):
|
||||
|
@ -135,6 +136,6 @@ class BrowseModel:
|
|||
payload["freeGame"] = True
|
||||
elif self.price.startswith("<price>"):
|
||||
payload["priceRange"] = self.price.replace("<price>", "")
|
||||
elif self.price == "sale":
|
||||
if self.onSale:
|
||||
payload["onSale"] = True
|
||||
return payload
|
||||
|
|
|
@ -40,7 +40,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
|||
self.update_games_allowed = True
|
||||
|
||||
self.free_games_now = QGroupBox(self.tr("Now Free"))
|
||||
self.free_games_now.setLayout(QHBoxLayout())
|
||||
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())
|
||||
|
@ -96,6 +96,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
|||
self.discount_widget.layout().addWidget(w)
|
||||
discounts += 1
|
||||
self.discounts_gb.setVisible(discounts > 0)
|
||||
self.discount_stack.setCurrentIndex(0)
|
||||
|
||||
def add_free_games(self, free_games):
|
||||
date = datetime.datetime.now()
|
||||
|
@ -146,7 +147,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
|||
self.free_games_now.layout().addWidget(w)
|
||||
self.free_game_widgets.append(w)
|
||||
|
||||
self.free_games_now.layout().addStretch(1)
|
||||
# self.free_games_now.layout().addStretch(1)
|
||||
|
||||
# free games next week
|
||||
for free_game in coming_free_games:
|
||||
|
@ -171,8 +172,8 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
|||
self.under30.toggled.connect(
|
||||
lambda: self.prepare_request("<price>[0, 3000)") if self.under30.isChecked() else None)
|
||||
self.above.toggled.connect(lambda: self.prepare_request("<price>[1499,]") if self.above.isChecked() else None)
|
||||
self.on_discount.toggled.connect(lambda: self.prepare_request("sale") if self.on_discount.isChecked() else None)
|
||||
|
||||
# self.on_discount.toggled.connect(lambda: self.prepare_request("sale") if self.on_discount.isChecked() else None)
|
||||
self.on_discount.toggled.connect(lambda: self.prepare_request())
|
||||
constants = Constants()
|
||||
|
||||
self.checkboxes = []
|
||||
|
@ -201,12 +202,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
|||
self.update_games_allowed = True
|
||||
self.prepare_request("")
|
||||
|
||||
def prepare_request(self, price: str = "", added_tag: int = 0, removed_tag: int = 0,
|
||||
def prepare_request(self, price: str = None, added_tag: int = 0, removed_tag: int = 0,
|
||||
added_type: str = "", removed_type: str = ""):
|
||||
if not self.update_games_allowed:
|
||||
return
|
||||
if price is not None:
|
||||
self.price = price
|
||||
|
||||
self.price = price
|
||||
if added_tag != 0:
|
||||
self.tags.append(added_tag)
|
||||
if removed_tag != 0 and removed_tag in self.tags:
|
||||
|
@ -216,7 +218,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
|||
self.types.append(added_type)
|
||||
if removed_type and removed_type in self.types:
|
||||
self.types.remove(removed_type)
|
||||
if (self.types or self.price) or self.tags:
|
||||
if (self.types or self.price) or self.tags or self.on_discount.isChecked():
|
||||
self.free_game_group_box.setVisible(False)
|
||||
self.discounts_gb.setVisible(False)
|
||||
else:
|
||||
|
@ -228,12 +230,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
|
|||
self.game_stack.setCurrentIndex(1)
|
||||
date = f"[,{datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%dT%X')}.{str(random.randint(0, 999)).zfill(3)}Z]"
|
||||
|
||||
browse_model = BrowseModel(locale=locale, date=date, count=20, price=self.price)
|
||||
browse_model = BrowseModel(locale=locale, date=date, count=20, price=self.price,
|
||||
onSale=self.on_discount.isChecked())
|
||||
browse_model.tag = "|".join(self.tags)
|
||||
|
||||
if self.types:
|
||||
browse_model.category = "|".join(self.types)
|
||||
|
||||
print(browse_model.__dict__)
|
||||
self.api_core.browse_games(browse_model, self.show_games)
|
||||
|
||||
def show_games(self, data):
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from PyQt5.QtCore import pyqtSignal
|
||||
from PyQt5.QtWidgets import QStackedWidget, QMessageBox
|
||||
from qtawesome import icon
|
||||
|
||||
from rare.components.tabs.shop import ShopApiCore
|
||||
from rare.components.tabs.shop.game_widgets import WishlistWidget
|
||||
|
@ -16,13 +17,14 @@ class Wishlist(QStackedWidget, Ui_Wishlist):
|
|||
self.api_core = api_core
|
||||
self.setupUi(self)
|
||||
self.addWidget(WaitingSpinner())
|
||||
# self.setContentsMargins(100, 0, 100, 0)
|
||||
self.setCurrentIndex(1)
|
||||
self.wishlist = []
|
||||
self.widgets = []
|
||||
|
||||
self.sort_cb.currentIndexChanged.connect(lambda i: self.set_wishlist(self.wishlist, i))
|
||||
self.filter_cb.currentIndexChanged.connect(self.set_filter)
|
||||
self.reload_button.clicked.connect(self.update_wishlist)
|
||||
self.reload_button.setIcon(icon("fa.refresh", color="white"))
|
||||
|
||||
def update_wishlist(self):
|
||||
self.setCurrentIndex(1)
|
||||
|
@ -65,12 +67,18 @@ class Wishlist(QStackedWidget, Ui_Wishlist):
|
|||
elif sort == 2:
|
||||
sorted_list = sorted(wishlist, key=lambda x: x["offer"]["seller"]["name"])
|
||||
elif sort == 3:
|
||||
sorted_list = sorted(wishlist, key=lambda x: 1 - (
|
||||
sorted_list = sorted(wishlist, reverse=True, key=lambda x: 1 - (
|
||||
x["offer"]["price"]["totalPrice"]["discountPrice"] / x["offer"]["price"]["totalPrice"][
|
||||
"originalPrice"]))
|
||||
else:
|
||||
sorted_list = wishlist
|
||||
self.widgets.clear()
|
||||
|
||||
if len(sorted_list) == 0:
|
||||
self.no_games_label.setVisible(True)
|
||||
else:
|
||||
self.no_games_label.setVisible(False)
|
||||
|
||||
for game in sorted_list:
|
||||
w = WishlistWidget(game["offer"])
|
||||
self.widgets.append(w)
|
||||
|
|
|
@ -55,9 +55,19 @@ class Ui_shop_info(object):
|
|||
self.tags.setObjectName("tags")
|
||||
self.verticalLayout_2.addWidget(self.tags)
|
||||
self.open_store_button = QtWidgets.QPushButton(shop_info)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.open_store_button.sizePolicy().hasHeightForWidth())
|
||||
self.open_store_button.setSizePolicy(sizePolicy)
|
||||
self.open_store_button.setObjectName("open_store_button")
|
||||
self.verticalLayout_2.addWidget(self.open_store_button)
|
||||
self.wishlist_button = QtWidgets.QPushButton(shop_info)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.wishlist_button.sizePolicy().hasHeightForWidth())
|
||||
self.wishlist_button.setSizePolicy(sizePolicy)
|
||||
self.wishlist_button.setObjectName("wishlist_button")
|
||||
self.verticalLayout_2.addWidget(self.wishlist_button)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
|
|
|
@ -47,21 +47,21 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="dev">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="dev">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="owned_label">
|
||||
<property name="text">
|
||||
|
@ -79,13 +79,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="discount_price">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="discount_price">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="tags">
|
||||
<property name="text">
|
||||
|
@ -95,6 +95,12 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="open_store_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Buy Game in Epic Games Store</string>
|
||||
</property>
|
||||
|
@ -102,6 +108,12 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="wishlist_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add to wishlist</string>
|
||||
</property>
|
||||
|
|
|
@ -104,7 +104,7 @@ class Ui_ShopWidget(object):
|
|||
self.above = QtWidgets.QRadioButton(self.price_gb)
|
||||
self.above.setObjectName("above")
|
||||
self.verticalLayout_9.addWidget(self.above)
|
||||
self.on_discount = QtWidgets.QRadioButton(self.price_gb)
|
||||
self.on_discount = QtWidgets.QCheckBox(self.price_gb)
|
||||
self.on_discount.setObjectName("on_discount")
|
||||
self.verticalLayout_9.addWidget(self.on_discount)
|
||||
self.verticalLayout_2.addWidget(self.price_gb)
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
<ui version="4.0">
|
||||
<class>ShopWidget</class>
|
||||
<widget class="QWidget" name="ShopWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>850</width>
|
||||
<height>572</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>850</width>
|
||||
<height>572</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
|
@ -165,7 +165,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="on_discount">
|
||||
<widget class="QCheckBox" name="on_discount">
|
||||
<property name="text">
|
||||
<string>Discount</string>
|
||||
</property>
|
||||
|
|
|
@ -62,6 +62,15 @@ class Ui_Wishlist(object):
|
|||
self.horizontalLayout.addWidget(self.filter_cb)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem1)
|
||||
self.reload_button = QtWidgets.QPushButton(self.scroll_widget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.reload_button.sizePolicy().hasHeightForWidth())
|
||||
self.reload_button.setSizePolicy(sizePolicy)
|
||||
self.reload_button.setText("")
|
||||
self.reload_button.setObjectName("reload_button")
|
||||
self.horizontalLayout.addWidget(self.reload_button)
|
||||
self.verticalLayout_2.addLayout(self.horizontalLayout)
|
||||
self.list_layout = QtWidgets.QVBoxLayout()
|
||||
self.list_layout.setObjectName("list_layout")
|
||||
|
@ -87,7 +96,7 @@ class Ui_Wishlist(object):
|
|||
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.filter_label.setText(_translate("Wishlist", "Filter: "))
|
||||
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"))
|
||||
|
@ -95,7 +104,6 @@ class Ui_Wishlist(object):
|
|||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
Wishlist = QtWidgets.QStackedWidget()
|
||||
ui = Ui_Wishlist()
|
||||
|
|
|
@ -128,6 +128,19 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="reload_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
|
Loading…
Reference in a new issue