From 74d04a2a7b08a7e986f7c3d926294b27f7a803c9 Mon Sep 17 00:00:00 2001 From: ChemicalXandco <32775248+ChemicalXandco@users.noreply.github.com> Date: Thu, 8 Apr 2021 20:00:18 +0100 Subject: [PATCH] add button to open epic games store in web browser --- rare/components/tab_utils.py | 14 ++++---------- rare/components/tab_widget.py | 17 +++++++++++++++-- start.sh | 2 +- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/rare/components/tab_utils.py b/rare/components/tab_utils.py index f6b40daf..f7187814 100644 --- a/rare/components/tab_utils.py +++ b/rare/components/tab_utils.py @@ -1,10 +1,8 @@ from PyQt5.QtCore import QSize from PyQt5.QtGui import QFont -from PyQt5.QtWidgets import QTabBar, QToolButton, QMenu, QWidgetAction +from PyQt5.QtWidgets import QTabBar, QToolButton from qtawesome import icon -from rare.components.tabs.account import MiniWidget - class TabBar(QTabBar): def __init__(self, expanded): @@ -25,14 +23,10 @@ class TabBar(QTabBar): class TabButtonWidget(QToolButton): - def __init__(self, core): + def __init__(self, core, button_icon: str, tool_tip: str): super(TabButtonWidget, self).__init__() self.setText("Icon") self.setPopupMode(QToolButton.InstantPopup) - self.setIcon(icon("mdi.account-circle", color="white", scale_factor=1.25)) - self.setToolTip("Account") + self.setIcon(icon(button_icon, color="white", scale_factor=1.25)) + self.setToolTip(tool_tip) self.setIconSize(QSize(25, 25)) - self.setMenu(QMenu()) - action = QWidgetAction(self) - action.setDefaultWidget(MiniWidget(core)) - self.menu().addAction(action) diff --git a/rare/components/tab_widget.py b/rare/components/tab_widget.py index 24e5465f..82395b4b 100644 --- a/rare/components/tab_widget.py +++ b/rare/components/tab_widget.py @@ -1,8 +1,11 @@ +import webbrowser + from PyQt5.QtCore import QSize -from PyQt5.QtWidgets import QTabWidget, QWidget +from PyQt5.QtWidgets import QMenu, QTabWidget, QWidget, QWidgetAction from qtawesome import icon from rare.components.tab_utils import TabBar, TabButtonWidget +from rare.components.tabs.account import MiniWidget from rare.components.tabs.cloud_saves import SyncSaves from rare.components.tabs.downloads.__init__ import DownloadTab from rare.components.tabs.games import GameTab @@ -45,7 +48,17 @@ class TabWidget(QTabWidget): self.addTab(self.settings, icon("fa.gear", color='white'), "(!)" if self.settings.about.update_available else "") self.setIconSize(QSize(25, 25)) - self.tabBar().setTabButton(3, self.tabBar().RightSide, TabButtonWidget(core)) + + store_button = TabButtonWidget(core, 'mdi.tag', 'Epic Games Store') + store_button.pressed.connect(lambda: webbrowser.open("https://www.epicgames.com/store")) + self.tabBar().setTabButton(3, self.tabBar().RightSide, store_button) + + account_action = QWidgetAction(self) + account_action.setDefaultWidget(MiniWidget(core)) + account_button = TabButtonWidget(core, 'mdi.account-circle', 'Account') + account_button.setMenu(QMenu()) + account_button.menu().addAction(account_action) + self.tabBar().setTabButton(4, self.tabBar().RightSide, account_button) def dl_finished(self): self.game_list.default_widget.game_list.update_list() diff --git a/start.sh b/start.sh index f6fb2402..181e713d 100644 --- a/start.sh +++ b/start.sh @@ -1,2 +1,2 @@ export PYTHONPATH=$PWD -python3 Rare +python3 rare