1
0
Fork 0
mirror of synced 2024-06-26 10:11:19 +12:00
Rare/rare/components/tabs/shop/__init__.py

61 lines
2.1 KiB
Python
Raw Normal View History

2021-06-15 08:30:57 +12:00
import os
from PyQt5.QtWidgets import QStackedWidget, QTabWidget
2021-06-04 09:23:55 +12:00
2021-06-18 10:29:36 +12:00
from custom_legendary.core import LegendaryCore
from rare.components.tabs.shop.browse_games import BrowseGames
from rare.components.tabs.shop.search_results import SearchResults
2021-06-04 09:23:55 +12:00
from rare.components.tabs.shop.shop_info import ShopGameInfo
from rare.components.tabs.shop.shop_widget import ShopWidget
class Shop(QStackedWidget):
init = False
2021-06-05 04:16:27 +12:00
2021-06-15 08:30:57 +12:00
def __init__(self, core: LegendaryCore):
2021-06-04 09:23:55 +12:00
super(Shop, self).__init__()
2021-06-15 08:30:57 +12:00
self.core = core
if p := os.getenv("XDG_CACHE_HOME"):
self.path = p
else:
self.path = os.path.expanduser("~/.cache/rare/cache/")
if not os.path.exists(self.path):
os.makedirs(self.path)
self.shop = ShopWidget(self.path)
self.browse_games = BrowseGames(self.path)
self.store_tabs = QTabWidget()
self.store_tabs.addTab(self.shop, self.tr("Games"))
self.store_tabs.addTab(self.browse_games, self.tr("Browse"))
2021-06-18 10:29:36 +12:00
self.store_tabs.tabBarClicked.connect(lambda x: self.browse_games.load() if x == 1 else None)
2021-06-04 09:23:55 +12:00
2021-06-15 08:30:57 +12:00
self.addWidget(self.store_tabs)
2021-06-04 09:23:55 +12:00
self.search_results = SearchResults()
self.addWidget(self.search_results)
self.search_results.show_info.connect(self.show_game_info)
2021-06-15 08:30:57 +12:00
self.info = ShopGameInfo([i.asset_info.namespace for i in self.core.get_game_list(True)])
2021-06-04 09:23:55 +12:00
self.addWidget(self.info)
2021-06-05 04:16:27 +12:00
self.info.back_button.clicked.connect(lambda: self.setCurrentIndex(0))
2021-06-04 09:23:55 +12:00
2021-06-11 05:58:35 +12:00
self.search_results.back_button.clicked.connect(lambda: self.setCurrentIndex(0))
2021-08-08 09:42:40 +12:00
self.shop.show_info.connect(self.show_search_results)
self.shop.show_game.connect(self.show_game_info)
2021-06-15 08:30:57 +12:00
self.browse_games.show_game.connect(self.show_game_info)
2021-06-04 09:23:55 +12:00
def load(self):
if not self.init:
self.init = True
self.shop.load()
2021-06-18 10:29:36 +12:00
# self.browse_games.prepare_request()
2021-06-04 09:23:55 +12:00
def show_game_info(self, data):
self.info.update_game(data)
self.setCurrentIndex(2)
2021-08-08 09:42:40 +12:00
def show_search_results(self, text: str):
self.search_results.load_results(text)
2021-06-04 09:23:55 +12:00
self.setCurrentIndex(1)