From dd6df40e40e7e1299f0e42ab6d62b75f85f7af98 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Sat, 18 Feb 2023 17:33:25 +0200 Subject: [PATCH] ExtraWidgets: Remove SideTab widgets and update imports --- .../tabs/games/game_info/__init__.py | 2 +- .../tabs/games/integrations/__init__.py | 4 +- rare/components/tabs/settings/__init__.py | 2 +- rare/utils/extra_widgets.py | 104 +----------------- 4 files changed, 5 insertions(+), 107 deletions(-) diff --git a/rare/components/tabs/games/game_info/__init__.py b/rare/components/tabs/games/game_info/__init__.py index c2e11453..0c61eea2 100644 --- a/rare/components/tabs/games/game_info/__init__.py +++ b/rare/components/tabs/games/game_info/__init__.py @@ -6,8 +6,8 @@ from PyQt5.QtWidgets import QTreeView from rare.models.game import RareGame from rare.shared import LegendaryCoreSingleton, GlobalSignalsSingleton, ArgumentsSingleton -from rare.utils.extra_widgets import SideTabWidget from rare.utils.json_formatter import QJsonModel +from rare.widgets.side_tab import SideTabWidget from .game_dlc import GameDlc from .game_info import GameInfo from .game_settings import GameSettings diff --git a/rare/components/tabs/games/integrations/__init__.py b/rare/components/tabs/games/integrations/__init__.py index 12a84488..d6329577 100644 --- a/rare/components/tabs/games/integrations/__init__.py +++ b/rare/components/tabs/games/integrations/__init__.py @@ -3,10 +3,10 @@ from typing import Optional from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QVBoxLayout, QWidget, QLabel, QSpacerItem, QSizePolicy -from rare.utils.extra_widgets import SideTabWidget +from rare.widgets.side_tab import SideTabWidget from .egl_sync_group import EGLSyncGroup -from .import_group import ImportGroup from .eos_group import EOSGroup +from .import_group import ImportGroup from .ubisoft_group import UbisoftGroup diff --git a/rare/components/tabs/settings/__init__.py b/rare/components/tabs/settings/__init__.py index 00d2dde4..05b74f4f 100644 --- a/rare/components/tabs/settings/__init__.py +++ b/rare/components/tabs/settings/__init__.py @@ -1,6 +1,6 @@ from rare.components.tabs.settings.widgets.linux import LinuxSettings from rare.shared import ArgumentsSingleton -from rare.utils.extra_widgets import SideTabWidget +from rare.widgets.side_tab import SideTabWidget from .about import About from .debug import DebugSettings from .default_game_settings import DefaultGameSettings diff --git a/rare/utils/extra_widgets.py b/rare/utils/extra_widgets.py index d9e09471..f2536e19 100644 --- a/rare/utils/extra_widgets.py +++ b/rare/utils/extra_widgets.py @@ -3,26 +3,17 @@ from logging import getLogger from PyQt5.QtCore import ( Qt, - QRect, - QSize, - QPoint, pyqtSignal, ) -from PyQt5.QtGui import QMovie, QPixmap, QFontMetrics, QImage +from PyQt5.QtGui import QMovie, QPixmap, QImage from PyQt5.QtWidgets import ( QStyle, QLabel, QHBoxLayout, QWidget, QPushButton, - QStyleOptionTab, - QStylePainter, - QTabBar, QLineEdit, QToolButton, - QTabWidget, - QVBoxLayout, - QScrollArea, ) from rare.utils.misc import icon as qta_icon @@ -32,99 +23,6 @@ from rare.utils.qt_requests import QtRequestManager logger = getLogger("ExtraWidgets") -class SideTabBar(QTabBar): - def __init__(self, padding: int = -1, parent=None): - super(SideTabBar, self).__init__(parent=parent) - self.setObjectName("SideTabBar") - self.padding = padding - self.fm = QFontMetrics(self.font()) - - def tabSizeHint(self, index): - width = QTabBar.tabSizeHint(self, index).height() - if self.padding < 0: - width += QTabBar.tabSizeHint(self, index).width() - else: - width += self.padding - return QSize(width, self.fm.height() + 18) - - def paintEvent(self, event): - painter = QStylePainter(self) - opt = QStyleOptionTab() - - for i in range(self.count()): - self.initStyleOption(opt, i) - painter.drawControl(QStyle.CE_TabBarTabShape, opt) - painter.save() - - s = opt.rect.size() - s.transpose() - r = QRect(QPoint(), s) - r.moveCenter(opt.rect.center()) - opt.rect = r - - c = self.tabRect(i).center() - painter.translate(c) - painter.rotate(90) - painter.translate(-c) - painter.drawControl(QStyle.CE_TabBarTabLabel, opt) - painter.restore() - - -class SideTabContainer(QWidget): - def __init__(self, widget: QWidget, title: str = "", parent: QWidget = None): - super(SideTabContainer, self).__init__(parent=parent) - self.title = QLabel(self) - self.setTitle(title) - - self.scrollarea = QScrollArea(self) - self.scrollarea.setWidgetResizable(True) - self.scrollarea.setSizeAdjustPolicy(QScrollArea.AdjustToContents) - self.scrollarea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) - self.scrollarea.setFrameStyle(QScrollArea.NoFrame) - if widget.layout(): - widget.layout().setAlignment(Qt.AlignTop) - widget.layout().setContentsMargins(0, 0, 3, 0) - widget.title = self.title - widget.title.setTitle = self.setTitle - self.scrollarea.setMinimumWidth( - widget.sizeHint().width() + self.scrollarea.verticalScrollBar().sizeHint().width() - ) - self.scrollarea.setWidget(widget) - - layout = QVBoxLayout() - layout.addWidget(self.title) - layout.addWidget(self.scrollarea) - self.setLayout(layout) - - def setTitle(self, text: str) -> None: - self.title.setText(f"

{text}

") - self.title.setVisible(bool(text)) - - -class SideTabWidget(QTabWidget): - back_clicked = pyqtSignal() - - def __init__(self, show_back: bool = False, padding: int = -1, parent=None): - super(SideTabWidget, self).__init__(parent=parent) - self.setTabBar(SideTabBar(padding=padding, parent=self)) - self.setDocumentMode(True) - self.setTabPosition(QTabWidget.West) - if show_back: - super(SideTabWidget, self).addTab( - QWidget(), qta_icon("mdi.keyboard-backspace", "ei.backward"), self.tr("Back") - ) - self.tabBarClicked.connect(self.back_func) - - def back_func(self, tab): - # shortcut for tab == 0 - if not tab: - self.back_clicked.emit() - - def addTab(self, widget: QWidget, a1: str, title: str = "") -> int: - container = SideTabContainer(widget, title, parent=self) - return super(SideTabWidget, self).addTab(container, a1) - - class WaitingSpinner(QLabel): def __init__(self): super(WaitingSpinner, self).__init__()