1
0
Fork 0
mirror of synced 2024-06-18 02:24:43 +12:00
Rare/Rare/Components/TabWidget.py
2021-02-10 11:48:25 +01:00

68 lines
2.1 KiB
Python

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QTabWidget, QTabBar, QWidget, QToolButton, QWidgetAction, QMenu
from Rare import style_path
from Rare.Components.Tabs.Account.AccountWidget import MiniWidget
from Rare.Components.Tabs.Games.Games import Games
class TabWidget(QTabWidget):
def __init__(self, core):
super(TabWidget, self).__init__()
self.setTabBar(TabBar(2))
self.game_list = Games(core)
self.addTab(self.game_list, self.tr("Games"))
self.downloads = QWidget()
self.addTab(self.downloads, "Downloads")
# Space Tab
self.addTab(QWidget(), "")
self.setTabEnabled(2, False)
self.account = QWidget()
self.addTab(self.account, "")
self.setTabEnabled(3, False)
# self.settings = SettingsTab(core)
self.settings = QWidget()
self.addTab(self.settings, QIcon(style_path + "/Icons/settings.png"), "")
self.tabBar().setTabButton(3, self.tabBar().RightSide, TabButtonWidget(core))
def resizeEvent(self, event):
self.tabBar().setMinimumWidth(self.width())
super(TabWidget, self).resizeEvent(event)
def download(self):
self.downloads.download()
class TabBar(QTabBar):
def __init__(self, expanded):
super(TabBar, self).__init__()
self._expanded = expanded
def tabSizeHint(self, index):
size = super(TabBar, self).tabSizeHint(index)
if index == self._expanded:
offset = self.width()
for index in range(self.count()):
offset -= super(TabBar, self).tabSizeHint(index).width()
size.setWidth(max(size.width(), size.width() + offset))
return size
class TabButtonWidget(QToolButton):
def __init__(self, core):
super(TabButtonWidget, self).__init__()
self.setText("Icon")
self.setPopupMode(QToolButton.InstantPopup)
self.setIcon(QIcon(style_path+"/Icons/account.png"))
self.setToolTip("Account")
self.setMenu(QMenu())
action = QWidgetAction(self)
action.setDefaultWidget(MiniWidget(core))
self.menu().addAction(action)