1
0
Fork 0
mirror of synced 2024-06-28 11:11:15 +12:00

Some optimizations

This commit is contained in:
Dummerle 2021-06-30 00:38:42 +02:00
parent 98386f0bbb
commit 2233c7f338
5 changed files with 28 additions and 19 deletions

View file

@ -18,6 +18,7 @@ logger = logging.getLogger("BrowseGames")
class BrowseGames(QWidget, Ui_browse_games): class BrowseGames(QWidget, Ui_browse_games):
show_game = pyqtSignal(dict) show_game = pyqtSignal(dict)
init = False
price = "" price = ""
tags = [] tags = []
types = [] types = []
@ -65,7 +66,9 @@ class BrowseGames(QWidget, Ui_browse_games):
self.type_gb.layout().addWidget(checkbox) self.type_gb.layout().addWidget(checkbox)
def load(self): 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, 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 = ""):

View file

@ -9,7 +9,6 @@ from rare.utils.extra_widgets import ImageLabel, FlowLayout
class SearchResults(QWidget): class SearchResults(QWidget):
show_info = pyqtSignal(dict) show_info = pyqtSignal(dict)
# TODO nice look
def __init__(self): def __init__(self):
super(SearchResults, self).__init__() super(SearchResults, self).__init__()
self.main_layout = QVBoxLayout() self.main_layout = QVBoxLayout()
@ -32,10 +31,13 @@ class SearchResults(QWidget):
QVBoxLayout().addWidget(self.widget) QVBoxLayout().addWidget(self.widget)
self.widget = QWidget() self.widget = QWidget()
self.layout = FlowLayout() self.layout = FlowLayout()
for res in results: if not results:
w = _SearchResultItem(res) self.layout.addWidget(QLabel(self.tr("No results found")))
w.show_info.connect(self.show_info.emit) else:
self.layout.addWidget(w) 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.widget.setLayout(self.layout)
self.result_area.setWidget(self.widget) self.result_area.setWidget(self.widget)

View file

@ -47,6 +47,8 @@ class ShopGameInfo(QWidget, Ui_shop_info):
self.owned_label.setVisible(False) self.owned_label.setVisible(False)
self.dev.setText(self.tr("Loading")) self.dev.setText(self.tr("Loading"))
self.price.setText(self.tr("Loading"))
self.title.setText(self.tr("Loading"))
self.image.setPixmap(QPixmap()) self.image.setPixmap(QPixmap())
self.data = data self.data = data
is_bundle = False is_bundle = False

View file

@ -150,11 +150,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json") request.setHeader(QNetworkRequest.ContentTypeHeader, "application/json")
self.search_request = self.manager.post(request, payload) self.search_request = self.manager.post(request, payload)
self.search_request.finished.connect(lambda: self.show_search_results(show_direct)) self.search_request.finished.connect(lambda: self.show_search_results(show_direct))
self.active_search_request = True
else: else:
self.next_search = text self.next_search = text
def show_search_results(self, show_direct=False): def show_search_results(self, show_direct=False):
self.active_search_request = False
if self.search_request: if self.search_request:
try: try:
if self.search_request.error() == QNetworkReply.NoError: if self.search_request.error() == QNetworkReply.NoError:
@ -166,14 +168,14 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
self.data = data self.data = data
if show_direct: if show_direct:
self.show_search_result(True) self.show_search_result(True)
return else:
titles = [i.get("title") for i in data] titles = [i.get("title") for i in data]
model = QStringListModel() model = QStringListModel()
model.setStringList(titles) model.setStringList(titles)
self.completer.setModel(model) self.completer.setModel(model)
# self.completer.popup() # self.completer.popup()
if self.search_request: if self.search_request:
self.search_request.deleteLater() self.search_request.deleteLater()
else: else:
logging.error(error.errorString()) logging.error(error.errorString())
# response = .decode(encoding="utf-8") # response = .decode(encoding="utf-8")
@ -181,13 +183,13 @@ class ShopWidget(QScrollArea, Ui_ShopWidget):
# results = json.loads(response) # results = json.loads(response)
except RuntimeError: except RuntimeError:
return return
if self.next_search:
self.search_games(self.next_search) self.search_games(self.next_search)
self.next_search = ""
def show_search_result(self, show_direct=False): def show_search_result(self, show_direct=False):
if not show_direct: if not show_direct:
if self.data: self.show_info.emit(self.data)
self.show_info.emit(self.data)
else: else:
try: try:
result = self.data[0] result = self.data[0]

View file

@ -324,7 +324,7 @@ class ButtonLineEdit(QLineEdit):
self.button.setStyleSheet('border: 0px; padding: 0px;') self.button.setStyleSheet('border: 0px; padding: 0px;')
self.button.setCursor(Qt.ArrowCursor) self.button.setCursor(Qt.ArrowCursor)
self.button.clicked.connect(self.buttonClicked.emit) self.button.clicked.connect(self.buttonClicked.emit)
self.setPlaceholderText(placeholder_text)
frameWidth = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth) frameWidth = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth)
buttonSize = self.button.sizeHint() buttonSize = self.button.sizeHint()