1
0
Fork 0
mirror of synced 2024-06-27 18:51:06 +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.game = ShopGame.from_json(game, self.data)
self.title.setText(self.game.title) self.title.setText(self.game.title)
self.price.setFont(QFont()) self.price.setFont(QFont())
print(type(self.game.price))
if self.game.price == "0" or self.game.price == 0: if self.game.price == "0" or self.game.price == 0:
self.price.setText(self.tr("Free")) self.price.setText(self.tr("Free"))
else: else:

View file

@ -113,6 +113,7 @@ class BrowseModel:
withPrice: bool = True withPrice: bool = True
date: str = f"[,{datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%dT%X')}.{str(random.randint(0, 999)).zfill(3)}Z]" date: str = f"[,{datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%dT%X')}.{str(random.randint(0, 999)).zfill(3)}Z]"
price: str = "" price: str = ""
onSale: bool = False
@property @property
def __dict__(self): def __dict__(self):
@ -135,6 +136,6 @@ class BrowseModel:
payload["freeGame"] = True payload["freeGame"] = True
elif self.price.startswith("<price>"): elif self.price.startswith("<price>"):
payload["priceRange"] = self.price.replace("<price>", "") payload["priceRange"] = self.price.replace("<price>", "")
elif self.price == "sale": if self.onSale:
payload["onSale"] = True payload["onSale"] = True
return payload return payload

View file

@ -40,7 +40,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.update_games_allowed = True self.update_games_allowed = True
self.free_games_now = QGroupBox(self.tr("Now Free")) 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.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(QHBoxLayout())
@ -96,6 +96,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.discount_widget.layout().addWidget(w) self.discount_widget.layout().addWidget(w)
discounts += 1 discounts += 1
self.discounts_gb.setVisible(discounts > 0) self.discounts_gb.setVisible(discounts > 0)
self.discount_stack.setCurrentIndex(0)
def add_free_games(self, free_games): def add_free_games(self, free_games):
date = datetime.datetime.now() date = datetime.datetime.now()
@ -146,7 +147,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
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)
self.free_games_now.layout().addStretch(1) # self.free_games_now.layout().addStretch(1)
# free games next week # free games next week
for free_game in coming_free_games: for free_game in coming_free_games:
@ -171,8 +172,8 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.under30.toggled.connect( self.under30.toggled.connect(
lambda: self.prepare_request("<price>[0, 3000)") if self.under30.isChecked() else None) 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.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() constants = Constants()
self.checkboxes = [] self.checkboxes = []
@ -201,12 +202,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.update_games_allowed = True self.update_games_allowed = True
self.prepare_request("") 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 = ""): added_type: str = "", removed_type: str = ""):
if not self.update_games_allowed: if not self.update_games_allowed:
return return
if price is not None:
self.price = price
self.price = price
if added_tag != 0: if added_tag != 0:
self.tags.append(added_tag) self.tags.append(added_tag)
if removed_tag != 0 and removed_tag in self.tags: if removed_tag != 0 and removed_tag in self.tags:
@ -216,7 +218,7 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.types.append(added_type) self.types.append(added_type)
if removed_type and removed_type in self.types: if removed_type and removed_type in self.types:
self.types.remove(removed_type) 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.free_game_group_box.setVisible(False)
self.discounts_gb.setVisible(False) self.discounts_gb.setVisible(False)
else: else:
@ -228,12 +230,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.game_stack.setCurrentIndex(1) 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]" 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) browse_model.tag = "|".join(self.tags)
if self.types: if self.types:
browse_model.category = "|".join(self.types) browse_model.category = "|".join(self.types)
print(browse_model.__dict__)
self.api_core.browse_games(browse_model, self.show_games) self.api_core.browse_games(browse_model, self.show_games)
def show_games(self, data): def show_games(self, data):

View file

@ -1,5 +1,6 @@
from PyQt5.QtCore import pyqtSignal from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QStackedWidget, QMessageBox from PyQt5.QtWidgets import QStackedWidget, QMessageBox
from qtawesome import icon
from rare.components.tabs.shop import ShopApiCore from rare.components.tabs.shop import ShopApiCore
from rare.components.tabs.shop.game_widgets import WishlistWidget from rare.components.tabs.shop.game_widgets import WishlistWidget
@ -16,13 +17,14 @@ class Wishlist(QStackedWidget, Ui_Wishlist):
self.api_core = api_core self.api_core = api_core
self.setupUi(self) self.setupUi(self)
self.addWidget(WaitingSpinner()) self.addWidget(WaitingSpinner())
# self.setContentsMargins(100, 0, 100, 0)
self.setCurrentIndex(1) self.setCurrentIndex(1)
self.wishlist = [] self.wishlist = []
self.widgets = [] self.widgets = []
self.sort_cb.currentIndexChanged.connect(lambda i: self.set_wishlist(self.wishlist, i)) self.sort_cb.currentIndexChanged.connect(lambda i: self.set_wishlist(self.wishlist, i))
self.filter_cb.currentIndexChanged.connect(self.set_filter) 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): def update_wishlist(self):
self.setCurrentIndex(1) self.setCurrentIndex(1)
@ -65,12 +67,18 @@ class Wishlist(QStackedWidget, Ui_Wishlist):
elif sort == 2: elif sort == 2:
sorted_list = sorted(wishlist, key=lambda x: x["offer"]["seller"]["name"]) sorted_list = sorted(wishlist, key=lambda x: x["offer"]["seller"]["name"])
elif sort == 3: 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"][ x["offer"]["price"]["totalPrice"]["discountPrice"] / x["offer"]["price"]["totalPrice"][
"originalPrice"])) "originalPrice"]))
else: else:
sorted_list = wishlist sorted_list = wishlist
self.widgets.clear() 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: for game in sorted_list:
w = WishlistWidget(game["offer"]) w = WishlistWidget(game["offer"])
self.widgets.append(w) self.widgets.append(w)

View file

@ -55,9 +55,19 @@ class Ui_shop_info(object):
self.tags.setObjectName("tags") self.tags.setObjectName("tags")
self.verticalLayout_2.addWidget(self.tags) self.verticalLayout_2.addWidget(self.tags)
self.open_store_button = QtWidgets.QPushButton(shop_info) 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.open_store_button.setObjectName("open_store_button")
self.verticalLayout_2.addWidget(self.open_store_button) self.verticalLayout_2.addWidget(self.open_store_button)
self.wishlist_button = QtWidgets.QPushButton(shop_info) 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.wishlist_button.setObjectName("wishlist_button")
self.verticalLayout_2.addWidget(self.wishlist_button) self.verticalLayout_2.addWidget(self.wishlist_button)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)

View file

@ -47,21 +47,21 @@
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="dev"> <widget class="QLabel" name="dev">
<property name="font"> <property name="font">
<font> <font>
<pointsize>14</pointsize> <pointsize>14</pointsize>
</font> </font>
</property> </property>
<property name="text"> <property name="text">
<string>TextLabel</string> <string>TextLabel</string>
</property> </property>
<property name="textInteractionFlags"> <property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="owned_label"> <widget class="QLabel" name="owned_label">
<property name="text"> <property name="text">
@ -79,13 +79,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="discount_price"> <widget class="QLabel" name="discount_price">
<property name="text"> <property name="text">
<string>TextLabel</string> <string>TextLabel</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="tags"> <widget class="QLabel" name="tags">
<property name="text"> <property name="text">
@ -95,6 +95,12 @@
</item> </item>
<item> <item>
<widget class="QPushButton" name="open_store_button"> <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"> <property name="text">
<string>Buy Game in Epic Games Store</string> <string>Buy Game in Epic Games Store</string>
</property> </property>
@ -102,6 +108,12 @@
</item> </item>
<item> <item>
<widget class="QPushButton" name="wishlist_button"> <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"> <property name="text">
<string>Add to wishlist</string> <string>Add to wishlist</string>
</property> </property>

View file

@ -104,7 +104,7 @@ class Ui_ShopWidget(object):
self.above = QtWidgets.QRadioButton(self.price_gb) self.above = QtWidgets.QRadioButton(self.price_gb)
self.above.setObjectName("above") self.above.setObjectName("above")
self.verticalLayout_9.addWidget(self.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.on_discount.setObjectName("on_discount")
self.verticalLayout_9.addWidget(self.on_discount) self.verticalLayout_9.addWidget(self.on_discount)
self.verticalLayout_2.addWidget(self.price_gb) self.verticalLayout_2.addWidget(self.price_gb)

View file

@ -2,14 +2,14 @@
<ui version="4.0"> <ui version="4.0">
<class>ShopWidget</class> <class>ShopWidget</class>
<widget class="QWidget" name="ShopWidget"> <widget class="QWidget" name="ShopWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>850</width> <width>850</width>
<height>572</height> <height>572</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
@ -165,7 +165,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QRadioButton" name="on_discount"> <widget class="QCheckBox" name="on_discount">
<property name="text"> <property name="text">
<string>Discount</string> <string>Discount</string>
</property> </property>

View file

@ -62,6 +62,15 @@ class Ui_Wishlist(object):
self.horizontalLayout.addWidget(self.filter_cb) self.horizontalLayout.addWidget(self.filter_cb)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem1) 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.verticalLayout_2.addLayout(self.horizontalLayout)
self.list_layout = QtWidgets.QVBoxLayout() self.list_layout = QtWidgets.QVBoxLayout()
self.list_layout.setObjectName("list_layout") 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(1, _translate("Wishlist", "Price"))
self.sort_cb.setItemText(2, _translate("Wishlist", "Developer")) self.sort_cb.setItemText(2, _translate("Wishlist", "Developer"))
self.sort_cb.setItemText(3, _translate("Wishlist", "Discount")) 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(0, _translate("Wishlist", "None"))
self.filter_cb.setItemText(1, _translate("Wishlist", "Discount")) self.filter_cb.setItemText(1, _translate("Wishlist", "Discount"))
self.no_games_label.setText(_translate("Wishlist", "No games matching your filter")) self.no_games_label.setText(_translate("Wishlist", "No games matching your filter"))
@ -95,7 +104,6 @@ class Ui_Wishlist(object):
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
Wishlist = QtWidgets.QStackedWidget() Wishlist = QtWidgets.QStackedWidget()
ui = Ui_Wishlist() ui = Ui_Wishlist()

View file

@ -128,6 +128,19 @@
</property> </property>
</spacer> </spacer>
</item> </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> </layout>
</item> </item>
<item> <item>