diff --git a/rare/components/tabs/shop/browse_games.py b/rare/components/tabs/shop/browse_games.py
index e862f1bf..ec727d7a 100644
--- a/rare/components/tabs/shop/browse_games.py
+++ b/rare/components/tabs/shop/browse_games.py
@@ -19,6 +19,8 @@ class BrowseGames(QWidget, Ui_browse_games):
show_game = pyqtSignal(dict)
price = ""
platform = (False, False)
+ request_active = False
+ next_request = ()
def __init__(self, path):
super(BrowseGames, self).__init__()
@@ -48,11 +50,16 @@ class BrowseGames(QWidget, Ui_browse_games):
lambda: self.prepare_request(platform=(self.win_cb.isChecked(), self.mac_cb.isChecked())))
def prepare_request(self, price: str = None, platform: tuple = None):
+
if price is not None:
self.price = price
if platform is not None:
self.platform = platform
+ if self.request_active:
+ self.next_request = (self.price, self.platform)
+ return
+
locale = get_lang()
self.stack.setCurrentIndex(2)
date = f"[,{datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%dT%X')}.{str(random.randint(0, 999)).zfill(3)}Z]"
@@ -80,10 +87,12 @@ class BrowseGames(QWidget, Ui_browse_games):
request = QNetworkRequest(QUrl("https://www.epicgames.com/graphql"))
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
+ self.request_active = True
self.game_request = self.manager.post(request, json.dumps(payload).encode("utf-8"))
self.game_request.finished.connect(self.show_games)
def show_games(self):
+
if self.game_request:
if self.game_request.error() == QNetworkReply.NoError:
error = QJsonParseError()
@@ -105,13 +114,23 @@ class BrowseGames(QWidget, Ui_browse_games):
self.games_widget.layout().addWidget(w)
w.show_info.connect(self.show_game.emit)
self.stack.setCurrentIndex(0)
+
+ self.request_active = False
+ if self.next_request:
+ self.prepare_request(*self.next_request)
+ self.next_request = ()
+
return
else:
- logger.info(self.slug, error.errorString())
+ logger.error(error.errorString())
else:
- print(self.game_request.errorString())
- self.stack.setCurrentIndex(1)
+ logger.error(self.game_request.errorString())
+ if self.next_request:
+ self.prepare_request(*self.next_request)
+ self.next_request = ()
+ else:
+ self.stack.setCurrentIndex(1)
game_query = "query searchStoreQuery($allowCountries: String, $category: String, $count: Int, $country: String!, " \
diff --git a/rare/ui/components/tabs/store/browse_games.py b/rare/ui/components/tabs/store/browse_games.py
index fba96450..e5729c0f 100644
--- a/rare/ui/components/tabs/store/browse_games.py
+++ b/rare/ui/components/tabs/store/browse_games.py
@@ -8,7 +8,7 @@
# run again. Do not edit this file unless you know what you are doing.
-from PyQt5 import QtCore, QtGui, QtWidgets
+from PyQt5 import QtCore, QtWidgets
class Ui_browse_games(object):
@@ -17,11 +17,7 @@ class Ui_browse_games(object):
browse_games.resize(706, 541)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(browse_games)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
- self.games_gb = QtWidgets.QGroupBox(browse_games)
- self.games_gb.setObjectName("games_gb")
- self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.games_gb)
- self.verticalLayout_4.setObjectName("verticalLayout_4")
- self.stack = QtWidgets.QStackedWidget(self.games_gb)
+ self.stack = QtWidgets.QStackedWidget(browse_games)
self.stack.setObjectName("stack")
self.games_page = QtWidgets.QWidget()
self.games_page.setObjectName("games_page")
@@ -31,7 +27,7 @@ class Ui_browse_games(object):
self.games.setWidgetResizable(True)
self.games.setObjectName("games")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
- self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 394, 306))
+ self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 462, 503))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.games.setWidget(self.scrollAreaWidgetContents)
self.verticalLayout_5.addWidget(self.games)
@@ -46,25 +42,13 @@ class Ui_browse_games(object):
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_6.addItem(spacerItem)
self.stack.addWidget(self.error)
- self.verticalLayout_4.addWidget(self.stack)
- self.horizontalLayout_2.addWidget(self.games_gb)
- self.filter_gb = QtWidgets.QGroupBox(browse_games)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.filter_gb.sizePolicy().hasHeightForWidth())
- self.filter_gb.setSizePolicy(sizePolicy)
- self.filter_gb.setMaximumSize(QtCore.QSize(200, 16777215))
- self.filter_gb.setFlat(False)
- self.filter_gb.setCheckable(False)
- self.filter_gb.setObjectName("filter_gb")
- self.verticalLayout = QtWidgets.QVBoxLayout(self.filter_gb)
- self.verticalLayout.setObjectName("verticalLayout")
- self.filter_scroll = QtWidgets.QScrollArea(self.filter_gb)
+ self.horizontalLayout_2.addWidget(self.stack)
+ self.filter_scroll = QtWidgets.QScrollArea(browse_games)
+ self.filter_scroll.setMaximumSize(QtCore.QSize(200, 16777215))
self.filter_scroll.setWidgetResizable(True)
self.filter_scroll.setObjectName("filter_scroll")
self.scroll_widget = QtWidgets.QWidget()
- self.scroll_widget.setGeometry(QtCore.QRect(0, 0, 174, 479))
+ self.scroll_widget.setGeometry(QtCore.QRect(0, 0, 198, 521))
self.scroll_widget.setObjectName("scroll_widget")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.scroll_widget)
self.verticalLayout_3.setObjectName("verticalLayout_3")
@@ -109,19 +93,16 @@ class Ui_browse_games(object):
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem1)
self.filter_scroll.setWidget(self.scroll_widget)
- self.verticalLayout.addWidget(self.filter_scroll)
- self.horizontalLayout_2.addWidget(self.filter_gb)
+ self.horizontalLayout_2.addWidget(self.filter_scroll)
self.retranslateUi(browse_games)
- self.stack.setCurrentIndex(1)
+ self.stack.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(browse_games)
def retranslateUi(self, browse_games):
_translate = QtCore.QCoreApplication.translate
browse_games.setWindowTitle(_translate("browse_games", "Form"))
- self.games_gb.setTitle(_translate("browse_games", "Games"))
self.error_label.setText(_translate("browse_games", "An error occured"))
- self.filter_gb.setTitle(_translate("browse_games", "Filter"))
self.price_gb.setTitle(_translate("browse_games", "Price"))
self.clear_price.setText(_translate("browse_games", "Clear price filter"))
self.free_button.setText(_translate("browse_games", "Free"))
diff --git a/rare/ui/components/tabs/store/browse_games.ui b/rare/ui/components/tabs/store/browse_games.ui
index 8845f141..9f0ce58b 100644
--- a/rare/ui/components/tabs/store/browse_games.ui
+++ b/rare/ui/components/tabs/store/browse_games.ui
@@ -15,207 +15,177 @@
-
-
-
- Games
+
+
+ 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- true
-
-
-
-
- 0
- 0
- 394
- 306
-
-
-
-
-
-
+
+
+ -
+
+
+ true
+
+
+
+
+ 0
+ 0
+ 462
+ 503
+
+
+
-
-
-
-
-
-
- An error occured
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
+
+
+
+
+
+ -
+
+
+ An error occured
+
-
-
-
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
-
-
-
-
- 0
- 0
-
-
+
200
16777215
-
- Filter
+
+ true
-
- false
-
-
- false
-
-
-
-
-
-
- true
-
-
-
-
- 0
- 0
- 174
- 479
-
+
+
+
+ 0
+ 0
+ 198
+ 521
+
+
+
+
-
+
+
+ Price
-
+
-
-
-
- Price
+
+
+ Clear price filter
+
+
+ true
-
-
-
-
-
- Clear price filter
-
-
- true
-
-
-
- -
-
-
- Free
-
-
-
- -
-
-
- Under 10
-
-
-
- -
-
-
- Under 20
-
-
-
- -
-
-
- Under 30
-
-
-
- -
-
-
- 14.99 and above
-
-
-
- -
-
-
- Discount
-
-
-
-
-
-
-
- Platform
+
+
+ Free
-
-
-
-
-
- Windows
-
-
-
- -
-
-
- Mac
-
-
-
-
-
-
-
- Qt::Vertical
+
+
+ Under 10
-
-
- 20
- 40
-
+
+
+ -
+
+
+ Under 20
-
+
+
+ -
+
+
+ Under 30
+
+
+
+ -
+
+
+ 14.99 and above
+
+
+
+ -
+
+
+ Discount
+
+
-
-
-
+
+ -
+
+
+ Platform
+
+
+
-
+
+
+ Windows
+
+
+
+ -
+
+
+ Mac
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+