diff --git a/rare/components/tabs/shop/browse_games.py b/rare/components/tabs/shop/browse_games.py index 0b027f4e..3777d382 100644 --- a/rare/components/tabs/shop/browse_games.py +++ b/rare/components/tabs/shop/browse_games.py @@ -18,6 +18,7 @@ logger = logging.getLogger("BrowseGames") class BrowseGames(QWidget, Ui_browse_games): show_game = pyqtSignal(dict) + init = False price = "" tags = [] types = [] @@ -65,7 +66,9 @@ class BrowseGames(QWidget, Ui_browse_games): self.type_gb.layout().addWidget(checkbox) def load(self): - self.prepare_request() + if not self.init: + self.prepare_request() + self.init = True def prepare_request(self, price: str = None, added_tag: int = 0, removed_tag: int = 0, added_type: str = "", removed_type: str = ""): diff --git a/rare/components/tabs/shop/search_results.py b/rare/components/tabs/shop/search_results.py index 613de082..73dcdaec 100644 --- a/rare/components/tabs/shop/search_results.py +++ b/rare/components/tabs/shop/search_results.py @@ -9,7 +9,6 @@ from rare.utils.extra_widgets import ImageLabel, FlowLayout class SearchResults(QWidget): show_info = pyqtSignal(dict) - # TODO nice look def __init__(self): super(SearchResults, self).__init__() self.main_layout = QVBoxLayout() @@ -32,10 +31,13 @@ class SearchResults(QWidget): QVBoxLayout().addWidget(self.widget) self.widget = QWidget() self.layout = FlowLayout() - for res in results: - w = _SearchResultItem(res) - w.show_info.connect(self.show_info.emit) - self.layout.addWidget(w) + if not results: + self.layout.addWidget(QLabel(self.tr("No results found"))) + else: + for res in results: + w = _SearchResultItem(res) + w.show_info.connect(self.show_info.emit) + self.layout.addWidget(w) self.widget.setLayout(self.layout) self.result_area.setWidget(self.widget) diff --git a/rare/components/tabs/shop/shop_info.py b/rare/components/tabs/shop/shop_info.py index f1aa22dd..87d19bb5 100644 --- a/rare/components/tabs/shop/shop_info.py +++ b/rare/components/tabs/shop/shop_info.py @@ -47,6 +47,8 @@ class ShopGameInfo(QWidget, Ui_shop_info): self.owned_label.setVisible(False) self.dev.setText(self.tr("Loading")) + self.price.setText(self.tr("Loading")) + self.title.setText(self.tr("Loading")) self.image.setPixmap(QPixmap()) self.data = data is_bundle = False diff --git a/rare/components/tabs/shop/shop_widget.py b/rare/components/tabs/shop/shop_widget.py index 9e1537a4..93a4dec0 100644 --- a/rare/components/tabs/shop/shop_widget.py +++ b/rare/components/tabs/shop/shop_widget.py @@ -150,11 +150,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget): request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") self.search_request = self.manager.post(request, payload) self.search_request.finished.connect(lambda: self.show_search_results(show_direct)) + self.active_search_request = True else: self.next_search = text def show_search_results(self, show_direct=False): + self.active_search_request = False if self.search_request: try: if self.search_request.error() == QNetworkReply.NoError: @@ -166,14 +168,14 @@ class ShopWidget(QScrollArea, Ui_ShopWidget): self.data = data if show_direct: self.show_search_result(True) - return - titles = [i.get("title") for i in data] - model = QStringListModel() - model.setStringList(titles) - self.completer.setModel(model) - # self.completer.popup() - if self.search_request: - self.search_request.deleteLater() + else: + titles = [i.get("title") for i in data] + model = QStringListModel() + model.setStringList(titles) + self.completer.setModel(model) + # self.completer.popup() + if self.search_request: + self.search_request.deleteLater() else: logging.error(error.errorString()) # response = .decode(encoding="utf-8") @@ -181,13 +183,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget): # results = json.loads(response) except RuntimeError: return - - self.search_games(self.next_search) + if self.next_search: + self.search_games(self.next_search) + self.next_search = "" def show_search_result(self, show_direct=False): if not show_direct: - if self.data: - self.show_info.emit(self.data) + self.show_info.emit(self.data) else: try: result = self.data[0] diff --git a/rare/utils/extra_widgets.py b/rare/utils/extra_widgets.py index a30bbea1..fa65cbeb 100644 --- a/rare/utils/extra_widgets.py +++ b/rare/utils/extra_widgets.py @@ -324,7 +324,7 @@ class ButtonLineEdit(QLineEdit): self.button.setStyleSheet('border: 0px; padding: 0px;') self.button.setCursor(Qt.ArrowCursor) self.button.clicked.connect(self.buttonClicked.emit) - + self.setPlaceholderText(placeholder_text) frameWidth = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth) buttonSize = self.button.sizeHint()