From be8ce667eb9175003fce479d23d1bb3e32591de1 Mon Sep 17 00:00:00 2001 From: Dummerle Date: Wed, 25 Aug 2021 22:08:24 +0200 Subject: [PATCH] Some fixes --- rare/components/tabs/shop/game_info.py | 1 - rare/components/tabs/shop/shop_models.py | 3 +- rare/components/tabs/shop/shop_widget.py | 21 ++++--- rare/components/tabs/shop/wishlist.py | 12 +++- .../components/tabs/store/shop_game_info.py | 10 ++++ .../components/tabs/store/shop_game_info.ui | 56 +++++++++++-------- rare/ui/components/tabs/store/store.py | 2 +- rare/ui/components/tabs/store/store.ui | 18 +++--- rare/ui/components/tabs/store/wishlist.py | 12 +++- rare/ui/components/tabs/store/wishlist.ui | 13 +++++ 10 files changed, 101 insertions(+), 47 deletions(-) diff --git a/rare/components/tabs/shop/game_info.py b/rare/components/tabs/shop/game_info.py index 1e3b2156..fbd791b5 100644 --- a/rare/components/tabs/shop/game_info.py +++ b/rare/components/tabs/shop/game_info.py @@ -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: diff --git a/rare/components/tabs/shop/shop_models.py b/rare/components/tabs/shop/shop_models.py index c91aaaf5..d0272457 100644 --- a/rare/components/tabs/shop/shop_models.py +++ b/rare/components/tabs/shop/shop_models.py @@ -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(""): payload["priceRange"] = self.price.replace("", "") - elif self.price == "sale": + if self.onSale: payload["onSale"] = True return payload diff --git a/rare/components/tabs/shop/shop_widget.py b/rare/components/tabs/shop/shop_widget.py index d5ca713a..c1617162 100644 --- a/rare/components/tabs/shop/shop_widget.py +++ b/rare/components/tabs/shop/shop_widget.py @@ -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("[0, 3000)") if self.under30.isChecked() else None) self.above.toggled.connect(lambda: self.prepare_request("[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): diff --git a/rare/components/tabs/shop/wishlist.py b/rare/components/tabs/shop/wishlist.py index 8cd45d3f..45645205 100644 --- a/rare/components/tabs/shop/wishlist.py +++ b/rare/components/tabs/shop/wishlist.py @@ -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) diff --git a/rare/ui/components/tabs/store/shop_game_info.py b/rare/ui/components/tabs/store/shop_game_info.py index a4bed440..d66a7de5 100644 --- a/rare/ui/components/tabs/store/shop_game_info.py +++ b/rare/ui/components/tabs/store/shop_game_info.py @@ -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) diff --git a/rare/ui/components/tabs/store/shop_game_info.ui b/rare/ui/components/tabs/store/shop_game_info.ui index 88ea4608..09d92f42 100644 --- a/rare/ui/components/tabs/store/shop_game_info.ui +++ b/rare/ui/components/tabs/store/shop_game_info.ui @@ -47,21 +47,21 @@ - - - - - 14 - - - - TextLabel - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - + + + + + 14 + + + + TextLabel + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + @@ -79,13 +79,13 @@ - - - - TextLabel - - - + + + + TextLabel + + + @@ -95,6 +95,12 @@ + + + 0 + 0 + + Buy Game in Epic Games Store @@ -102,6 +108,12 @@ + + + 0 + 0 + + Add to wishlist diff --git a/rare/ui/components/tabs/store/store.py b/rare/ui/components/tabs/store/store.py index ef6ac08e..26c5e58f 100644 --- a/rare/ui/components/tabs/store/store.py +++ b/rare/ui/components/tabs/store/store.py @@ -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) diff --git a/rare/ui/components/tabs/store/store.ui b/rare/ui/components/tabs/store/store.ui index b9ddb5f8..d53748a1 100644 --- a/rare/ui/components/tabs/store/store.ui +++ b/rare/ui/components/tabs/store/store.ui @@ -2,14 +2,14 @@ ShopWidget - - - 0 - 0 - 850 - 572 - - + + + 0 + 0 + 850 + 572 + + Form @@ -165,7 +165,7 @@ - + Discount diff --git a/rare/ui/components/tabs/store/wishlist.py b/rare/ui/components/tabs/store/wishlist.py index 140a9734..72cc6ac7 100644 --- a/rare/ui/components/tabs/store/wishlist.py +++ b/rare/ui/components/tabs/store/wishlist.py @@ -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() diff --git a/rare/ui/components/tabs/store/wishlist.ui b/rare/ui/components/tabs/store/wishlist.ui index b9bfbd8d..c84504c0 100644 --- a/rare/ui/components/tabs/store/wishlist.ui +++ b/rare/ui/components/tabs/store/wishlist.ui @@ -128,6 +128,19 @@ + + + + + 0 + 0 + + + + + + +