1
0
Fork 0
mirror of synced 2024-06-21 12:00:25 +12:00

Some fixes

This commit is contained in:
Dummerle 2021-08-25 22:08:24 +02:00
parent 9048e4790e
commit be8ce667eb
10 changed files with 101 additions and 47 deletions

View file

@ -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:

View file

@ -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

View file

@ -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):

View file

@ -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)

View file

@ -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)

View file

@ -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>

View file

@ -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)

View file

@ -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>

View file

@ -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()

View file

@ -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>