diff --git a/rare/commands/launcher/cloud_sync_dialog.py b/rare/commands/launcher/cloud_sync_dialog.py index 5af0de0f..1a861039 100644 --- a/rare/commands/launcher/cloud_sync_dialog.py +++ b/rare/commands/launcher/cloud_sync_dialog.py @@ -9,7 +9,7 @@ from legendary.core import LegendaryCore from legendary.models.game import InstalledGame from rare.ui.components.tabs.games.game_info.cloud_sync_widget import Ui_CloudSyncWidget -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.dialogs import ButtonDialog, game_title logger = getLogger("CloudSyncDialog") @@ -41,7 +41,7 @@ class CloudSyncDialog(ButtonDialog): layout.addWidget(sync_widget) self.accept_button.setText(self.tr("Skip")) - self.accept_button.setIcon(icon("fa.chevron-right")) + self.accept_button.setIcon(qta_icon("fa.chevron-right")) self.setCentralLayout(layout) @@ -62,8 +62,8 @@ class CloudSyncDialog(ButtonDialog): self.sync_ui.date_info_local.setText(dt_local.strftime("%A, %d. %B %Y %X") if dt_local else "None") self.sync_ui.date_info_remote.setText(dt_remote.strftime("%A, %d. %B %Y %X") if dt_remote else "None") - self.sync_ui.icon_local.setPixmap(icon("mdi.harddisk", "fa.desktop").pixmap(128, 128)) - self.sync_ui.icon_remote.setPixmap(icon("mdi.cloud-outline", "ei.cloud").pixmap(128, 128)) + self.sync_ui.icon_local.setPixmap(qta_icon("mdi.harddisk", "fa.desktop").pixmap(128, 128)) + self.sync_ui.icon_remote.setPixmap(qta_icon("mdi.cloud-outline", "ei.cloud").pixmap(128, 128)) self.sync_ui.upload_button.clicked.connect(self.__on_upload) self.sync_ui.download_button.clicked.connect(self.__on_download) diff --git a/rare/commands/launcher/console_dialog.py b/rare/commands/launcher/console_dialog.py index 1a76701d..9df2c137 100644 --- a/rare/commands/launcher/console_dialog.py +++ b/rare/commands/launcher/console_dialog.py @@ -13,7 +13,7 @@ from PyQt5.QtWidgets import ( QSizePolicy, QTableWidgetItem, QHeaderView, QApplication, ) -from rare.ui.launcher.console_env import Ui_ConsoleEnv +from rare.ui.commands.launcher.console_env import Ui_ConsoleEnv from rare.widgets.dialogs import dialog_title, game_title diff --git a/rare/components/dialogs/install_dialog.py b/rare/components/dialogs/install_dialog.py index 00c7f49e..b1250db7 100644 --- a/rare/components/dialogs/install_dialog.py +++ b/rare/components/dialogs/install_dialog.py @@ -13,7 +13,7 @@ from rare.models.install import InstallDownloadModel, InstallQueueItemModel, Ins from rare.shared.workers.install_info import InstallInfoWorker from rare.ui.components.dialogs.install_dialog import Ui_InstallDialog from rare.ui.components.dialogs.install_dialog_advanced import Ui_InstallDialogAdvanced -from rare.utils.misc import format_size, icon +from rare.utils.misc import format_size, qta_icon from rare.widgets.collapsible_widget import CollapsibleFrame from rare.widgets.dialogs import ActionDialog, game_title from rare.widgets.indicator_edit import PathEdit, IndicatorReasonsCommon @@ -63,17 +63,17 @@ class InstallDialog(ActionDialog): super(InstallDialog, self).__init__(parent=parent) header = self.tr("Install") - bicon = icon("ri.install-line") + bicon = qta_icon("ri.install-line") if options.repair_mode: header = self.tr("Repair") - bicon = icon("fa.wrench") + bicon = qta_icon("fa.wrench") if options.repair_and_update: header = self.tr("Repair and update") elif options.update: header = self.tr("Update") elif options.reset_sdl: header = self.tr("Modify") - bicon = icon("fa.gear") + bicon = qta_icon("fa.gear") self.setWindowTitle(game_title(header, rgame.app_title)) self.setSubtitle(game_title(header, rgame.app_title)) @@ -198,7 +198,7 @@ class InstallDialog(ActionDialog): self.accept_button.setObjectName("InstallButton") self.action_button.setText(self.tr("Verify")) - self.action_button.setIcon(icon("fa.check")) + self.action_button.setIcon(qta_icon("fa.check")) self.setCentralWidget(install_widget) diff --git a/rare/components/dialogs/login/__init__.py b/rare/components/dialogs/login/__init__.py index ba876b58..32a2ee5e 100644 --- a/rare/components/dialogs/login/__init__.py +++ b/rare/components/dialogs/login/__init__.py @@ -7,7 +7,7 @@ from legendary.core import LegendaryCore from rare.shared import ArgumentsSingleton from rare.ui.components.dialogs.login.landing_page import Ui_LandingPage from rare.ui.components.dialogs.login.login_dialog import Ui_LoginDialog -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.dialogs import BaseDialog from rare.widgets.sliding_stack import SlidingStackedWidget from .browser_login import BrowserLogin @@ -99,9 +99,9 @@ class LoginDialog(BaseDialog): self.login_stack.setCurrentWidget(self.landing_page) - self.ui.exit_button.setIcon(icon("fa.remove")) - self.ui.back_button.setIcon(icon("fa.chevron-left")) - self.ui.next_button.setIcon(icon("fa.chevron-right")) + self.ui.exit_button.setIcon(qta_icon("fa.remove")) + self.ui.back_button.setIcon(qta_icon("fa.chevron-left")) + self.ui.next_button.setIcon(qta_icon("fa.chevron-right")) # lk: Set next as the default button only to stop closing the dialog when pressing enter self.ui.exit_button.setAutoDefault(False) diff --git a/rare/components/dialogs/login/browser_login.py b/rare/components/dialogs/login/browser_login.py index 136d1876..df15855f 100644 --- a/rare/components/dialogs/login/browser_login.py +++ b/rare/components/dialogs/login/browser_login.py @@ -9,7 +9,7 @@ from legendary.utils import webview_login from rare.lgndr.core import LegendaryCore from rare.ui.components.dialogs.login.browser_login import Ui_BrowserLogin -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.utils.paths import get_rare_executable from rare.widgets.indicator_edit import IndicatorLineEdit, IndicatorReasonsCommon @@ -34,7 +34,7 @@ class BrowserLogin(QFrame): ) self.sid_edit.line_edit.setEchoMode(QLineEdit.Password) self.ui.link_text.setText(self.login_url) - self.ui.copy_button.setIcon(icon("mdi.content-copy", "fa.copy")) + self.ui.copy_button.setIcon(qta_icon("mdi.content-copy", "fa.copy")) self.ui.copy_button.clicked.connect(self.copy_link) self.ui.form_layout.setWidget( self.ui.form_layout.getWidgetPosition(self.ui.sid_label)[0], diff --git a/rare/components/dialogs/login/import_login.py b/rare/components/dialogs/login/import_login.py index 9aa4980c..b02905c4 100644 --- a/rare/components/dialogs/login/import_login.py +++ b/rare/components/dialogs/login/import_login.py @@ -54,7 +54,7 @@ class ImportLogin(QFrame): else: self.ui.status_label.setText(self.text_egl_notfound) - self.ui.prefix_tool.clicked.connect(self.prefix_path) + self.ui.prefix_button.clicked.connect(self.prefix_path) self.ui.prefix_combo.editTextChanged.connect(self.changed.emit) def get_wine_prefixes(self): diff --git a/rare/components/dialogs/move_dialog.py b/rare/components/dialogs/move_dialog.py index a9bf56e4..38ea2a14 100644 --- a/rare/components/dialogs/move_dialog.py +++ b/rare/components/dialogs/move_dialog.py @@ -10,7 +10,7 @@ from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QLabel, QFileDialog, QLayo from rare.models.install import MoveGameModel from rare.models.game import RareGame from rare.shared import RareCore -from rare.utils.misc import path_size, format_size, icon +from rare.utils.misc import path_size, format_size, qta_icon from rare.widgets.dialogs import ActionDialog, game_title from rare.widgets.elide_label import ElideLabel from rare.widgets.indicator_edit import PathEdit, IndicatorReasons, IndicatorReasonsCommon @@ -76,7 +76,7 @@ class MoveDialog(ActionDialog): self.setCentralLayout(layout) self.accept_button.setText(self.tr("Move")) - self.accept_button.setIcon(icon("mdi.folder-move-outline")) + self.accept_button.setIcon(qta_icon("mdi.folder-move-outline")) self.action_button.setHidden(True) diff --git a/rare/components/dialogs/selective_dialog.py b/rare/components/dialogs/selective_dialog.py index 3bdab291..85814d3b 100644 --- a/rare/components/dialogs/selective_dialog.py +++ b/rare/components/dialogs/selective_dialog.py @@ -3,7 +3,7 @@ from PyQt5.QtWidgets import QVBoxLayout, QGroupBox from rare.models.game import RareGame from rare.models.install import SelectiveDownloadsModel -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.dialogs import ButtonDialog, game_title from rare.widgets.selective_widget import SelectiveWidget @@ -31,7 +31,7 @@ class SelectiveDialog(ButtonDialog): self.setCentralLayout(layout) self.accept_button.setText(self.tr("Verify")) - self.accept_button.setIcon(icon("fa.check")) + self.accept_button.setIcon(qta_icon("fa.check")) self.options: SelectiveDownloadsModel = SelectiveDownloadsModel(rgame.app_name) diff --git a/rare/components/dialogs/uninstall_dialog.py b/rare/components/dialogs/uninstall_dialog.py index a935e07b..337bc1b6 100644 --- a/rare/components/dialogs/uninstall_dialog.py +++ b/rare/components/dialogs/uninstall_dialog.py @@ -6,7 +6,7 @@ from PyQt5.QtWidgets import ( from rare.models.game import RareGame from rare.models.install import UninstallOptionsModel -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.dialogs import ButtonDialog, game_title @@ -39,7 +39,7 @@ class UninstallDialog(ButtonDialog): self.setCentralLayout(layout) self.accept_button.setText(self.tr("Uninstall")) - self.accept_button.setIcon(icon("ri.uninstall-line")) + self.accept_button.setIcon(qta_icon("ri.uninstall-line")) self.accept_button.setObjectName("UninstallButton") if rgame.sdl_name is not None: diff --git a/rare/components/tabs/__init__.py b/rare/components/tabs/__init__.py index a959c2d7..688d0ea7 100644 --- a/rare/components/tabs/__init__.py +++ b/rare/components/tabs/__init__.py @@ -2,7 +2,7 @@ from PyQt5.QtCore import QSize, pyqtSignal, pyqtSlot from PyQt5.QtWidgets import QMenu, QTabWidget, QWidget, QWidgetAction, QShortcut, QMessageBox from rare.shared import RareCore, LegendaryCoreSingleton, GlobalSignalsSingleton, ArgumentsSingleton -from rare.utils.misc import icon, ExitCodes +from rare.utils.misc import qta_icon, ExitCodes from .account import AccountWidget from .downloads import DownloadsTab from .games import GamesTab @@ -18,6 +18,7 @@ class MainTabWidget(QTabWidget): def __init__(self, parent): super(MainTabWidget, self).__init__(parent=parent) + self.rcore = RareCore.instance() self.core = LegendaryCoreSingleton() self.signals = GlobalSignalsSingleton() @@ -54,22 +55,22 @@ class MainTabWidget(QTabWidget): self.account_widget.exit_app.connect(self.__on_exit_app) account_action = QWidgetAction(self) account_action.setDefaultWidget(self.account_widget) - account_button = TabButtonWidget("mdi.account-circle", "Account", fallback_icon="fa.user") - account_button.setMenu(QMenu()) - account_button.menu().addAction(account_action) + account_button = TabButtonWidget(qta_icon("mdi.account-circle", fallback="fa.user"), tooltip="Menu") + account_menu = QMenu(account_button) + account_menu.addAction(account_action) + account_button.setMenu(account_menu) self.tab_bar.setTabButton( button_index, MainTabBar.RightSide, account_button ) self.settings_tab = SettingsTab(self) - self.settings_index = self.addTab(self.settings_tab, icon("fa.gear"), "") + self.settings_index = self.addTab(self.settings_tab, qta_icon("fa.gear"), "") self.settings_tab.about.update_available_ready.connect( lambda: self.tab_bar.setTabText(self.settings_index, "(!)") ) # Open game list on click on Games tab button self.tabBarClicked.connect(self.mouse_clicked) - self.setIconSize(QSize(24, 24)) # shortcuts QShortcut("Alt+1", self).activated.connect(lambda: self.setCurrentIndex(self.games_index)) diff --git a/rare/components/tabs/account/__init__.py b/rare/components/tabs/account/__init__.py index 7e45c5e4..30c95e9a 100644 --- a/rare/components/tabs/account/__init__.py +++ b/rare/components/tabs/account/__init__.py @@ -4,7 +4,7 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton from rare.shared import LegendaryCoreSingleton, GlobalSignalsSingleton -from rare.utils.misc import icon, ExitCodes +from rare.utils.misc import qta_icon, ExitCodes class AccountWidget(QWidget): @@ -20,7 +20,7 @@ class AccountWidget(QWidget): if not username: username = "Offline" - self.open_browser = QPushButton(icon("fa.external-link"), self.tr("Account settings")) + self.open_browser = QPushButton(qta_icon("fa.external-link"), self.tr("Account settings")) self.open_browser.clicked.connect( lambda: webbrowser.open( "https://www.epicgames.com/account/personal?productName=epicgames" diff --git a/rare/components/tabs/games/game_info/cloud_saves.py b/rare/components/tabs/games/game_info/cloud_saves.py index 30d76f73..c87769fb 100644 --- a/rare/components/tabs/games/game_info/cloud_saves.py +++ b/rare/components/tabs/games/game_info/cloud_saves.py @@ -22,7 +22,7 @@ from rare.shared import RareCore from rare.shared.workers.wine_resolver import WineSavePathResolver from rare.ui.components.tabs.games.game_info.cloud_settings_widget import Ui_CloudSettingsWidget from rare.ui.components.tabs.games.game_info.cloud_sync_widget import Ui_CloudSyncWidget -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.utils.metrics import timelogger from rare.widgets.indicator_edit import PathEdit, IndicatorReasonsCommon from rare.widgets.loading_widget import LoadingWidget @@ -45,8 +45,8 @@ class CloudSaves(QWidget, SideTabContents): self.core = RareCore.instance().core() self.settings = QSettings() - self.sync_ui.icon_local.setPixmap(icon("mdi.harddisk", "fa.desktop").pixmap(128, 128)) - self.sync_ui.icon_remote.setPixmap(icon("mdi.cloud-outline", "ei.cloud").pixmap(128, 128)) + self.sync_ui.icon_local.setPixmap(qta_icon("mdi.harddisk", "fa.desktop").pixmap(128, 128)) + self.sync_ui.icon_remote.setPixmap(qta_icon("mdi.cloud-outline", "ei.cloud").pixmap(128, 128)) self.sync_ui.upload_button.clicked.connect(self.upload) self.sync_ui.download_button.clicked.connect(self.download) @@ -73,7 +73,7 @@ class CloudSaves(QWidget, SideTabContents): self.cloud_save_path_edit ) - self.compute_save_path_button = QPushButton(icon("fa.magic"), self.tr("Calculate path")) + self.compute_save_path_button = QPushButton(qta_icon("fa.magic"), self.tr("Calculate path")) self.compute_save_path_button.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed) self.compute_save_path_button.clicked.connect(self.compute_save_path) self.cloud_ui.main_layout.addRow(None, self.compute_save_path_button) diff --git a/rare/components/tabs/games/game_info/game_dlc.py b/rare/components/tabs/games/game_info/game_dlc.py index 77b20115..93311580 100644 --- a/rare/components/tabs/games/game_info/game_dlc.py +++ b/rare/components/tabs/games/game_info/game_dlc.py @@ -10,7 +10,7 @@ from rare.ui.components.tabs.games.game_info.game_dlc import Ui_GameDlc from rare.ui.components.tabs.games.game_info.game_dlc_widget import Ui_GameDlcWidget from rare.widgets.image_widget import ImageWidget, ImageSize from rare.widgets.side_tab import SideTabContents -from rare.utils.misc import widget_object_name, icon +from rare.utils.misc import widget_object_name, qta_icon class GameDlcWidget(QFrame): @@ -57,7 +57,7 @@ class InstalledGameDlcWidget(GameDlcWidget): self.ui.action_button.setObjectName("UninstallButton") self.ui.action_button.clicked.connect(self.uninstall_dlc) self.ui.action_button.setText(self.tr("Uninstall DLC")) - self.ui.action_button.setIcon(icon("ri.uninstall-line")) + self.ui.action_button.setIcon(qta_icon("ri.uninstall-line")) # lk: don't reference `self.rdlc` here because the object has been deleted rdlc.signals.game.uninstalled.connect(self.__uninstalled) @@ -78,7 +78,7 @@ class AvailableGameDlcWidget(GameDlcWidget): self.ui.action_button.setObjectName("InstallButton") self.ui.action_button.clicked.connect(self.install_dlc) self.ui.action_button.setText(self.tr("Install DLC")) - self.ui.action_button.setIcon(icon("ri.install-line")) + self.ui.action_button.setIcon(qta_icon("ri.install-line")) # lk: don't reference `self.rdlc` here because the object has been deleted rdlc.signals.game.installed.connect(self.__installed) diff --git a/rare/components/tabs/games/game_info/game_info.py b/rare/components/tabs/games/game_info/game_info.py index c7f353e8..c914da90 100644 --- a/rare/components/tabs/games/game_info/game_info.py +++ b/rare/components/tabs/games/game_info/game_info.py @@ -20,7 +20,7 @@ from rare.models.game import RareGame from rare.shared import RareCore from rare.shared.workers import VerifyWorker, MoveWorker from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo -from rare.utils.misc import format_size, icon, style_hyperlink +from rare.utils.misc import format_size, qta_icon, style_hyperlink from rare.widgets.image_widget import ImageWidget, ImageSize from rare.widgets.side_tab import SideTabContents from rare.components.dialogs.move_dialog import MoveDialog, is_game_dir @@ -41,14 +41,14 @@ class GameInfo(QWidget, SideTabContents): self.ui.modify_button.setObjectName("InstallButton") self.ui.uninstall_button.setObjectName("UninstallButton") - self.ui.install_button.setIcon(icon("ri.install-line")) - self.ui.import_button.setIcon(icon("mdi.application-import")) + self.ui.install_button.setIcon(qta_icon("ri.install-line")) + self.ui.import_button.setIcon(qta_icon("mdi.application-import")) - self.ui.modify_button.setIcon(icon("fa.gear")) - self.ui.verify_button.setIcon(icon("fa.check")) - self.ui.repair_button.setIcon(icon("fa.wrench")) - self.ui.move_button.setIcon(icon("mdi.folder-move-outline")) - self.ui.uninstall_button.setIcon(icon("ri.uninstall-line")) + self.ui.modify_button.setIcon(qta_icon("fa.gear")) + self.ui.verify_button.setIcon(qta_icon("fa.check")) + self.ui.repair_button.setIcon(qta_icon("fa.wrench")) + self.ui.move_button.setIcon(qta_icon("mdi.folder-move-outline")) + self.ui.uninstall_button.setIcon(qta_icon("ri.uninstall-line")) self.rcore = RareCore.instance() self.core = RareCore.instance().core() diff --git a/rare/components/tabs/games/game_widgets/icon_widget.py b/rare/components/tabs/games/game_widgets/icon_widget.py index 9ec78ba4..2f3ddd35 100644 --- a/rare/components/tabs/games/game_widgets/icon_widget.py +++ b/rare/components/tabs/games/game_widgets/icon_widget.py @@ -10,7 +10,7 @@ from PyQt5.QtWidgets import ( QPushButton, ) -from rare.utils.misc import icon, widget_object_name +from rare.utils.misc import qta_icon, widget_object_name from rare.widgets.elide_label import ElideLabel @@ -59,13 +59,13 @@ class IconWidget(object): # play button self.launch_btn = QPushButton(parent=self.mini_widget) self.launch_btn.setObjectName(f"{type(self).__name__}Button") - self.launch_btn.setIcon(icon("ei.play-alt", color="white")) + self.launch_btn.setIcon(qta_icon("ei.play-alt", color="white")) self.launch_btn.setIconSize(QSize(20, 20)) self.launch_btn.setFixedSize(QSize(widget.width() // 4, widget.width() // 4)) self.install_btn = QPushButton(parent=self.mini_widget) self.install_btn.setObjectName(f"{type(self).__name__}Button") - self.install_btn.setIcon(icon("ri.install-fill", color="white")) + self.install_btn.setIcon(qta_icon("ri.install-fill", color="white")) self.install_btn.setIconSize(QSize(20, 20)) self.install_btn.setFixedSize(QSize(widget.width() // 4, widget.width() // 4)) diff --git a/rare/components/tabs/games/game_widgets/list_widget.py b/rare/components/tabs/games/game_widgets/list_widget.py index a45cdf01..045a851f 100644 --- a/rare/components/tabs/games/game_widgets/list_widget.py +++ b/rare/components/tabs/games/game_widgets/list_widget.py @@ -9,7 +9,7 @@ from PyQt5.QtWidgets import ( QWidget, ) -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.elide_label import ElideLabel @@ -40,13 +40,13 @@ class ListWidget(object): self.install_btn = QPushButton(parent=widget) self.install_btn.setObjectName(f"{type(self).__name__}Button") - self.install_btn.setIcon(icon("ri.install-line")) + self.install_btn.setIcon(qta_icon("ri.install-line")) self.install_btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.install_btn.setFixedWidth(120) self.launch_btn = QPushButton(parent=widget) self.launch_btn.setObjectName(f"{type(self).__name__}Button") - self.launch_btn.setIcon(icon("ei.play-alt")) + self.launch_btn.setIcon(qta_icon("ei.play-alt")) self.launch_btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.launch_btn.setFixedWidth(120) diff --git a/rare/components/tabs/games/head_bar.py b/rare/components/tabs/games/head_bar.py index b80527cb..c000e994 100644 --- a/rare/components/tabs/games/head_bar.py +++ b/rare/components/tabs/games/head_bar.py @@ -5,15 +5,14 @@ from PyQt5.QtWidgets import ( QWidget, QHBoxLayout, QComboBox, - QToolButton, QMenu, - QAction, + QAction, QSpacerItem, QSizePolicy, ) -from rare.shared import RareCore from rare.models.options import options, LibraryFilter, LibraryOrder +from rare.shared import RareCore from rare.utils.extra_widgets import ButtonLineEdit -from rare.utils.misc import icon +from rare.utils.misc import qta_icon class GameListHeadBar(QWidget): @@ -83,15 +82,15 @@ class GameListHeadBar(QWidget): integrations_menu = QMenu(parent=self) import_action = QAction( - icon("mdi.import", "fa.arrow-down"), self.tr("Import Game"), integrations_menu + qta_icon("mdi.import", "fa.arrow-down"), self.tr("Import Game"), integrations_menu ) import_action.triggered.connect(self.goto_import) - egl_sync_action = QAction(icon("mdi.sync", "fa.refresh"), self.tr("Sync with EGL"), integrations_menu) + egl_sync_action = QAction(qta_icon("mdi.sync", "fa.refresh"), self.tr("Sync with EGL"), integrations_menu) egl_sync_action.triggered.connect(self.goto_egl_sync) eos_ubisoft_action = QAction( - icon("mdi.rocket", "fa.rocket"), self.tr("Epic Overlay and Ubisoft"), integrations_menu + qta_icon("mdi.rocket", "fa.rocket"), self.tr("Epic Overlay and Ubisoft"), integrations_menu ) eos_ubisoft_action.triggered.connect(self.goto_eos_ubisoft) @@ -99,19 +98,18 @@ class GameListHeadBar(QWidget): integrations_menu.addAction(egl_sync_action) integrations_menu.addAction(eos_ubisoft_action) - integrations = QToolButton(parent=self) + integrations = QPushButton(parent=self) integrations.setText(self.tr("Integrations")) integrations.setMenu(integrations_menu) - integrations.setPopupMode(QToolButton.InstantPopup) - self.search_bar = ButtonLineEdit("fa.search", placeholder_text=self.tr("Search Game")) + self.search_bar = ButtonLineEdit("fa.search", placeholder_text=self.tr("Search")) + self.search_bar.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) self.search_bar.setObjectName("SearchBar") - self.search_bar.setFrame(False) self.search_bar.setMinimumWidth(250) installed_tooltip = self.tr("Installed games") self.installed_icon = QLabel(parent=self) - self.installed_icon.setPixmap(icon("ph.floppy-disk-back-fill").pixmap(QSize(16, 16))) + self.installed_icon.setPixmap(qta_icon("ph.floppy-disk-back-fill").pixmap(QSize(16, 16))) self.installed_icon.setToolTip(installed_tooltip) self.installed_label = QLabel(parent=self) font = self.installed_label.font() @@ -120,29 +118,27 @@ class GameListHeadBar(QWidget): self.installed_label.setToolTip(installed_tooltip) available_tooltip = self.tr("Available games") self.available_icon = QLabel(parent=self) - self.available_icon.setPixmap(icon("ph.floppy-disk-back-light").pixmap(QSize(16, 16))) + self.available_icon.setPixmap(qta_icon("ph.floppy-disk-back-light").pixmap(QSize(16, 16))) self.available_icon.setToolTip(available_tooltip) self.available_label = QLabel(parent=self) self.available_label.setToolTip(available_tooltip) self.refresh_list = QPushButton(parent=self) - self.refresh_list.setIcon(icon("fa.refresh")) # Reload icon + self.refresh_list.setIcon(qta_icon("fa.refresh")) # Reload icon self.refresh_list.clicked.connect(self.__refresh_clicked) layout = QHBoxLayout(self) - layout.setContentsMargins(0, 5, 0, 5) + layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.filter) layout.addWidget(self.order) - layout.addStretch(0) - layout.addWidget(integrations) - layout.addStretch(3) + layout.addSpacerItem(QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Fixed)) layout.addWidget(self.search_bar) - layout.addStretch(4) layout.addWidget(self.installed_icon) layout.addWidget(self.installed_label) layout.addWidget(self.available_icon) layout.addWidget(self.available_label) - layout.addStretch(4) + layout.addSpacerItem(QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Fixed)) + layout.addWidget(integrations) layout.addWidget(self.refresh_list) def set_games_count(self, inst: int, avail: int) -> None: diff --git a/rare/components/tabs/games/integrations/egl_sync_group.py b/rare/components/tabs/games/integrations/egl_sync_group.py index 531d2a4d..f2478bfe 100644 --- a/rare/components/tabs/games/integrations/egl_sync_group.py +++ b/rare/components/tabs/games/integrations/egl_sync_group.py @@ -46,7 +46,6 @@ class EGLSyncGroup(QGroupBox): ) self.egl_path_info = ElideLabel(parent=self) - self.egl_path_info.setProperty("infoLabel", 1) self.ui.egl_sync_layout.setWidget( self.ui.egl_sync_layout.getWidgetPosition(self.ui.egl_path_info_label)[0], QFormLayout.FieldRole, self.egl_path_info diff --git a/rare/components/tabs/games/integrations/eos_group.py b/rare/components/tabs/games/integrations/eos_group.py index 0f8efb95..fae747be 100644 --- a/rare/components/tabs/games/integrations/eos_group.py +++ b/rare/components/tabs/games/integrations/eos_group.py @@ -22,7 +22,7 @@ from rare.models.game import RareEosOverlay from rare.shared import RareCore from rare.ui.components.tabs.games.integrations.eos_widget import Ui_EosWidget from rare.utils import config_helper as config -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.elide_label import ElideLabel logger = getLogger("EpicOverlay") @@ -102,15 +102,15 @@ class EosPrefixWidget(QFrame): if not self.overlay.is_installed and not self.overlay.available_paths(self.prefix): self.setDisabled(True) - self.indicator.setPixmap(icon("fa.circle-o", color="grey").pixmap(20, 20)) + self.indicator.setPixmap(qta_icon("fa.circle-o", color="grey").pixmap(20, 20)) self.overlay_label.setText(self.overlay.active_path(self.prefix)) self.button.setText(self.tr("Unavailable")) return if self.overlay.is_enabled(self.prefix): - self.indicator.setPixmap(icon("fa.check-circle-o", color="green").pixmap(QSize(20, 20))) + self.indicator.setPixmap(qta_icon("fa.check-circle-o", color="green").pixmap(QSize(20, 20))) else: - self.indicator.setPixmap(icon("fa.times-circle-o", color="red").pixmap(QSize(20, 20))) + self.indicator.setPixmap(qta_icon("fa.times-circle-o", color="red").pixmap(QSize(20, 20))) install_path = os.path.normpath(p) if (p := self.overlay.install_path) else "" @@ -171,8 +171,8 @@ class EosGroup(QGroupBox): self.ui.install_page_layout.setAlignment(Qt.AlignTop) self.ui.info_page_layout.setAlignment(Qt.AlignTop) - self.ui.install_button.setIcon(icon("ri.install-line")) - self.ui.uninstall_button.setIcon(icon("ri.uninstall-line")) + self.ui.install_button.setIcon(qta_icon("ri.install-line")) + self.ui.uninstall_button.setIcon(qta_icon("ri.uninstall-line")) self.installed_path_label = ElideLabel(parent=self) self.installed_version_label = ElideLabel(parent=self) diff --git a/rare/components/tabs/games/integrations/ubisoft_group.py b/rare/components/tabs/games/integrations/ubisoft_group.py index b73d44bd..5de288cf 100644 --- a/rare/components/tabs/games/integrations/ubisoft_group.py +++ b/rare/components/tabs/games/integrations/ubisoft_group.py @@ -20,7 +20,7 @@ from rare.lgndr.core import LegendaryCore from rare.shared import RareCore from rare.shared.workers.worker import Worker from rare.utils.metrics import timelogger -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.elide_label import ElideLabel from rare.widgets.loading_widget import LoadingWidget @@ -104,7 +104,7 @@ class UbiLinkWidget(QFrame): self.ubi_account_id = ubi_account_id self.ok_indicator = QLabel(parent=self) - self.ok_indicator.setPixmap(icon("fa.circle-o", color="grey").pixmap(20, 20)) + self.ok_indicator.setPixmap(qta_icon("fa.circle-o", color="grey").pixmap(20, 20)) self.ok_indicator.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) self.title_label = ElideLabel(game.app_title, parent=self) @@ -116,7 +116,7 @@ class UbiLinkWidget(QFrame): if activated: self.link_button.setText(self.tr("Already activated")) self.link_button.setDisabled(True) - self.ok_indicator.setPixmap(icon("fa.check-circle-o", color="green").pixmap(QSize(20, 20))) + self.ok_indicator.setPixmap(qta_icon("fa.check-circle-o", color="green").pixmap(QSize(20, 20))) layout = QHBoxLayout(self) layout.setContentsMargins(-1, 0, 0, 0) @@ -127,7 +127,7 @@ class UbiLinkWidget(QFrame): def activate(self): self.link_button.setDisabled(True) # self.ok_indicator.setPixmap(icon("mdi.loading", color="grey").pixmap(20, 20)) - self.ok_indicator.setPixmap(icon("mdi.transit-connection-horizontal", color="grey").pixmap(20, 20)) + self.ok_indicator.setPixmap(qta_icon("mdi.transit-connection-horizontal", color="grey").pixmap(20, 20)) if self.args.debug: worker = UbiConnectWorker(RareCore.instance().core(), None, None) @@ -140,11 +140,11 @@ class UbiLinkWidget(QFrame): def worker_finished(self, error): if not error: - self.ok_indicator.setPixmap(icon("fa.check-circle-o", color="green").pixmap(QSize(20, 20))) + self.ok_indicator.setPixmap(qta_icon("fa.check-circle-o", color="green").pixmap(QSize(20, 20))) self.link_button.setDisabled(True) self.link_button.setText(self.tr("Already activated")) else: - self.ok_indicator.setPixmap(icon("fa.times-circle-o", color="red").pixmap(QSize(20, 20))) + self.ok_indicator.setPixmap(qta_icon("fa.times-circle-o", color="red").pixmap(QSize(20, 20))) self.ok_indicator.setToolTip(error) self.link_button.setText(self.tr("Try again")) self.link_button.setDisabled(False) diff --git a/rare/components/tabs/settings/widgets/env_vars_model.py b/rare/components/tabs/settings/widgets/env_vars_model.py index d6332218..8acb8cf4 100644 --- a/rare/components/tabs/settings/widgets/env_vars_model.py +++ b/rare/components/tabs/settings/widgets/env_vars_model.py @@ -8,7 +8,7 @@ from PyQt5.QtCore import Qt, QModelIndex, QAbstractTableModel, pyqtSlot from PyQt5.QtGui import QFont from rare.lgndr.core import LegendaryCore -from rare.utils.misc import icon +from rare.utils.misc import qta_icon if platform.system() != "Windows": from rare.utils.compat.wine import get_wine_environment @@ -139,12 +139,12 @@ class EnvVarsTableModel(QAbstractTableModel): if orientation == Qt.Vertical: if section < self.__data_length(): if self.__is_readonly(section) or not self.__is_local(section): - return icon("mdi.lock", "ei.lock") + return qta_icon("mdi.lock", "ei.lock") if self.__is_global(section) and self.__is_local(section): - return icon("mdi.refresh", "ei.refresh") + return qta_icon("mdi.refresh", "ei.refresh") if self.__is_local(section): - return icon("mdi.delete", "ei.remove-sign") - return icon("mdi.plus", "ei.plus-sign") + return qta_icon("mdi.delete", "ei.remove-sign") + return qta_icon("mdi.plus", "ei.plus-sign") if role == Qt.TextAlignmentRole: return Qt.AlignVCenter + Qt.AlignHCenter return None diff --git a/rare/components/tabs/settings/widgets/wrappers.py b/rare/components/tabs/settings/widgets/wrappers.py index b54acb46..b508bf33 100644 --- a/rare/components/tabs/settings/widgets/wrappers.py +++ b/rare/components/tabs/settings/widgets/wrappers.py @@ -15,13 +15,12 @@ from PyQt5.QtWidgets import ( QWidget, QScrollArea, QAction, - QToolButton, QMenu, QStackedWidget, QPushButton, QLineEdit, QVBoxLayout, QComboBox, ) from rare.models.wrapper import Wrapper from rare.shared import RareCore -from rare.utils.misc import icon +from rare.utils.misc import qta_icon from rare.widgets.dialogs import ButtonDialog, game_title if pf.system() in {"Linux", "FreeBSD"}: @@ -45,7 +44,7 @@ class WrapperEditDialog(ButtonDialog): self.setCentralLayout(self.widget_layout) self.accept_button.setText(self.tr("Save")) - self.accept_button.setIcon(icon("fa.edit")) + self.accept_button.setIcon(qta_icon("fa.edit")) self.accept_button.setEnabled(False) self.result: Tuple = () @@ -108,7 +107,7 @@ class WrapperWidget(QFrame): text_lbl.setEnabled(wrapper.is_editable) image_lbl = QLabel(parent=self) - image_lbl.setPixmap(icon("mdi.drag-vertical").pixmap(QSize(20, 20))) + image_lbl.setPixmap(qta_icon("mdi.drag-vertical").pixmap(QSize(20, 20))) edit_action = QAction("Edit", parent=self) edit_action.triggered.connect(self.__on_edit) @@ -118,10 +117,9 @@ class WrapperWidget(QFrame): manage_menu = QMenu(parent=self) manage_menu.addActions([edit_action, delete_action]) - manage_button = QToolButton(parent=self) - manage_button.setIcon(icon("mdi.menu")) + manage_button = QPushButton(parent=self) + manage_button.setIcon(qta_icon("mdi.menu", fallback="fa.align-justify")) manage_button.setMenu(manage_menu) - manage_button.setPopupMode(QToolButton.InstantPopup) manage_button.setEnabled(wrapper.is_editable) if not wrapper.is_editable: manage_button.setToolTip(self.tr("Manage through settings")) diff --git a/rare/components/tabs/store/game_info.py b/rare/components/tabs/store/game_info.py index 65045040..263f91e9 100644 --- a/rare/components/tabs/store/game_info.py +++ b/rare/components/tabs/store/game_info.py @@ -17,7 +17,7 @@ from rare.components.tabs.store.shop_models import ShopGame from rare.shared import LegendaryCoreSingleton from rare.ui.components.tabs.store.shop_game_info import Ui_shop_info from rare.utils.extra_widgets import ImageLabel -from rare.utils.misc import icon +from rare.utils.misc import qta_icon as icon from rare.widgets.loading_widget import LoadingWidget logger = logging.getLogger("ShopInfo") diff --git a/rare/components/tabs/store/game_widgets.py b/rare/components/tabs/store/game_widgets.py index 7cc2c1f8..8085965b 100644 --- a/rare/components/tabs/store/game_widgets.py +++ b/rare/components/tabs/store/game_widgets.py @@ -9,7 +9,7 @@ from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QHBoxLayout from rare.components.tabs.store.shop_models import ImageUrlModel from rare.ui.components.tabs.store.wishlist_widget import Ui_WishlistWidget from rare.utils.extra_widgets import ImageLabel -from rare.utils.misc import icon +from rare.utils.misc import qta_icon as icon logger = logging.getLogger("GameWidgets") diff --git a/rare/components/tabs/store/wishlist.py b/rare/components/tabs/store/wishlist.py index 140ad8ad..fbac0713 100644 --- a/rare/components/tabs/store/wishlist.py +++ b/rare/components/tabs/store/wishlist.py @@ -5,7 +5,7 @@ from rare.components.tabs.store import ShopApiCore from rare.components.tabs.store.game_widgets import WishlistWidget from rare.ui.components.tabs.store.wishlist import Ui_Wishlist from rare.utils.extra_widgets import WaitingSpinner -from rare.utils.misc import icon +from rare.utils.misc import qta_icon as icon class Wishlist(QStackedWidget, Ui_Wishlist): diff --git a/rare/components/tabs/tab_widgets.py b/rare/components/tabs/tab_widgets.py index b3212fb4..dfa01d8c 100644 --- a/rare/components/tabs/tab_widgets.py +++ b/rare/components/tabs/tab_widgets.py @@ -1,15 +1,13 @@ -from PyQt5.QtCore import QSize -from PyQt5.QtWidgets import QTabBar, QToolButton - -from rare.utils.misc import icon +from PyQt5.QtGui import QIcon +from PyQt5.QtWidgets import QTabBar, QSizePolicy, QPushButton class MainTabBar(QTabBar): def __init__(self, parent=None): super(MainTabBar, self).__init__(parent=parent) - self.setObjectName("MainTabBar") + self.setObjectName(type(self).__name__) font = self.font() - font.setPointSize(font.pointSize() + 2) + font.setPointSize(font.pointSize() + 1) font.setBold(True) self.setFont(font) self.expanded = -1 @@ -24,11 +22,9 @@ class MainTabBar(QTabBar): return size -class TabButtonWidget(QToolButton): - def __init__(self, button_icon: str, tool_tip: str, fallback_icon=None, parent=None): +class TabButtonWidget(QPushButton): + def __init__(self, icon: QIcon, tooltip: str = "", parent=None): super(TabButtonWidget, self).__init__(parent=parent) - self.setText("Icon") - self.setPopupMode(QToolButton.InstantPopup) - self.setIcon(icon(button_icon, fallback_icon, scale_factor=1.25)) - self.setToolTip(tool_tip) - self.setIconSize(QSize(25, 25)) + self.setObjectName(type(self).__name__) + self.setIcon(icon) + self.setToolTip(tooltip) diff --git a/rare/resources/static_css/__init__.py b/rare/resources/static_css/__init__.py index 70c3b962..82dc3338 100644 Binary files a/rare/resources/static_css/__init__.py and b/rare/resources/static_css/__init__.py differ diff --git a/rare/resources/static_css/stylesheet.py b/rare/resources/static_css/stylesheet.py index 099886b1..551826e7 100644 --- a/rare/resources/static_css/stylesheet.py +++ b/rare/resources/static_css/stylesheet.py @@ -5,7 +5,7 @@ from typing import Union, Type import qstylizer.style from PyQt5.QtCore import QDir, QObject from PyQt5.QtGui import QColor -from PyQt5.pyrcc import RCCResourceLibrary, CONSTANT_COMPRESSLEVEL_DEFAULT, CONSTANT_COMPRESSTHRESHOLD_DEFAULT +from PyQt5.pyrcc import RCCResourceLibrary, CONSTANT_COMPRESSTHRESHOLD_DEFAULT from PyQt5.sip import wrappertype from rare.utils.misc import widget_object_name @@ -64,6 +64,13 @@ def css_name(widget: Union[wrappertype, QObject, Type], subwidget: str = ""): css = qstylizer.style.StyleSheet() +# InfoLabel +css.QLabel["#InfoLabel"].setValues( + color="#999", + fontStyle="italic", + fontWeight="normal", +) + # [Un]InstallButton css.QPushButton["#InstallButton"].setValues( borderColor=QColor(0, 180, 0).name(), @@ -197,6 +204,15 @@ css.QPushButton[css_name(SelectViewWidget, "Button")].setValues( ) +# ButtonLineEdit +from rare.utils.extra_widgets import ButtonLineEdit +css.QPushButton[css_name(ButtonLineEdit, "Button")].setValues( + backgroundColor="transparent", + border="0px", + padding="0px", +) + + if __name__ == "__main__": with open("stylesheet.qss", "w") as qss: qss.write(f'\n/* This file is auto-generated from "{os.path.basename(__file__)}". DO NOT EDIT!!! */\n\n') diff --git a/rare/resources/static_css/stylesheet.qss b/rare/resources/static_css/stylesheet.qss index 4b74aebd..051a419d 100644 --- a/rare/resources/static_css/stylesheet.qss +++ b/rare/resources/static_css/stylesheet.qss @@ -1,6 +1,11 @@ /* This file is auto-generated from "stylesheet.py". DO NOT EDIT!!! */ +QLabel#InfoLabel { + color: #999; + font-style: italic; + font-weight: normal; +} QPushButton#InstallButton { border-color: #00b400; background-color: #007800; @@ -106,3 +111,8 @@ QPushButton#SelectViewWidgetButton { border: none; background-color: transparent; } +QPushButton#ButtonLineEditButton { + background-color: transparent; + border: 0px; + padding: 0px; +} diff --git a/rare/resources/stylesheets/ChildOfMetropolis/__init__.py b/rare/resources/stylesheets/ChildOfMetropolis/__init__.py index 990d81d1..592d3dda 100644 Binary files a/rare/resources/stylesheets/ChildOfMetropolis/__init__.py and b/rare/resources/stylesheets/ChildOfMetropolis/__init__.py differ diff --git a/rare/resources/stylesheets/ChildOfMetropolis/stylesheet.qss b/rare/resources/stylesheets/ChildOfMetropolis/stylesheet.qss index 1cfc9718..d9ea0f3a 100644 --- a/rare/resources/stylesheets/ChildOfMetropolis/stylesheet.qss +++ b/rare/resources/stylesheets/ChildOfMetropolis/stylesheet.qss @@ -20,7 +20,6 @@ disabled: #43474d #767778 -- border for disabled widgets alternate: #3c3f41 #A3DAAA -- border color for gradient backgrounds on widgets like Tabs and Popups [Special] -info-normal: #bbb #4D5059 -- infoLabel install-normal: #070 #F9A7FF -- install install-hover: #050 #BB7DBF -- install install-disabled: #020 #7D5380 -- install @@ -48,12 +47,6 @@ QLabel:disabled { padding: 0px; selection-background-color: #71DA7E; } -QLabel[infoLabel="1"] { - color: #4D5059; - font-style: italic; - font-weight: normal; -} - QMenu, QListView, @@ -101,6 +94,7 @@ QScrollBar { background-color: #DADDDE; selection-background-color: #71DA7E; } + QLineEdit, QTextEdit, QTimeEdit, @@ -111,11 +105,22 @@ QSpinBox, QDoubleSpinBox, QProgressBar, QPushButton { - height: 1.30em; + min-height: 1.30em; +} +QLineEdit, +QTextEdit +QTimeEdit, +QDateEdit, +QDateTimeEdit, +QSpinBox, +QDoubleSpinBox, +QProgressBar { + max-height: 1.30em; } QToolButton { - height: 1.10em; + min-height: 1.10em; } + QFrame[frameShape="0"] { border-width: 0px; } @@ -314,12 +319,15 @@ QToolButton { padding-left: 6px; padding-right: 6px; } -QPushButton::menu-indicator { +/* +QPushButton::menu-indicator, +QToolButton::menu-indicator { subcontrol-position: right center; subcontrol-origin: padding; left: -2px; border-style: none; } +*/ QGroupBox, QCheckBox, @@ -451,12 +459,6 @@ QSizeGrip { height: 4px; } -QLineEdit#SearchBar { - padding: 3px; - border-radius: 5px; - background-color: #DADDDE; -} - QTabWidget::pane { } QTabWidget::tab-bar { @@ -610,6 +612,39 @@ QTabBar::tab:right:selected:disabled { border-left-color: transparent; } +QStatusBar { + border-width: 1px; + border-style: solid; + border-color: transparent; + border-top-color: #5CD3FF; + border-bottom-color: #A3DAAA; + background: qlineargradient( + x1: 0, y1: 3, + x2: 0, y2: 0, + stop: 0 #A3DAAA, + stop: 1 #C2C4C5); +} + +QToolTip { + border-width: 1px; + border-style: solid; + border-color: #5CD3FF; + border-radius: 4px; + padding: 1px; + opacity: 200; +} + +QBalloonTip { + color: #36393F; + background-color: #C2C4C5; + border-width: 1px; + border-style: solid; + border-color: #5CD3FF; + border-radius: 4px; + padding: 1px; +} + +/* Main tab bar styling */ QTabBar#MainTabBar { border-width: 1px; border-style: solid; @@ -651,6 +686,17 @@ QTabBar#MainTabBar::tab:top:selected { border-color: #5CD3FF; border-bottom-color: #C2C4C5; } +QPushButton#TabButtonWidget, +QToolButton#TabButtonWidget { + padding: 0px; + border-color: rgb( 51, 54, 59); +} +QPushButton#TabButtonWidget:disabled, +QToolButton#TabButtonWidget:disabled { + border-color: rgb( 41, 43, 47); +} + +/* Side tab bar styling */ QTabBar#SideTabBar { border-width: 1px; border-style: solid; @@ -688,36 +734,10 @@ QTabBar#SideTabBar::tab:disabled { background-color: transparent; } -QStatusBar { - border-width: 1px; - border-style: solid; - border-color: transparent; - border-top-color: #5CD3FF; - border-bottom-color: #A3DAAA; - background: qlineargradient( - x1: 0, y1: 3, - x2: 0, y2: 0, - stop: 0 #A3DAAA, - stop: 1 #C2C4C5); -} - -QToolTip { - border-width: 1px; - border-style: solid; - border-color: #5CD3FF; - border-radius: 4px; - padding: 1px; - opacity: 200; -} - -QBalloonTip { - color: #36393F; - background-color: #C2C4C5; - border-width: 1px; - border-style: solid; - border-color: #5CD3FF; - border-radius: 4px; - padding: 1px; +/* Search bar styling */ +QLineEdit#SearchBar { + border-radius: 5px; + background-color: #DADDDE; } /* Wrapper settings styling */ @@ -745,3 +765,7 @@ QLabel#WrapperSettingsLabel { border-color: #71DA7E; background-color: #BCBEBF; } +QLabel#WrapperSettingsLabel:disabled { + border-color: rgb( 67, 71, 77); + background-color: rgb( 32, 34, 37); +} diff --git a/rare/resources/stylesheets/RareStyle/__init__.py b/rare/resources/stylesheets/RareStyle/__init__.py index cac9ca62..cf9bfd6e 100644 Binary files a/rare/resources/stylesheets/RareStyle/__init__.py and b/rare/resources/stylesheets/RareStyle/__init__.py differ diff --git a/rare/resources/stylesheets/RareStyle/drop-down.svg b/rare/resources/stylesheets/RareStyle/drop-down.svg index 12e7c92c..80110650 100644 --- a/rare/resources/stylesheets/RareStyle/drop-down.svg +++ b/rare/resources/stylesheets/RareStyle/drop-down.svg @@ -1,4 +1,4 @@ + fill="#ccc"/> \ No newline at end of file diff --git a/rare/resources/stylesheets/RareStyle/sort-down.svg b/rare/resources/stylesheets/RareStyle/sort-down.svg index 29f5f7b6..5f9a6633 100644 --- a/rare/resources/stylesheets/RareStyle/sort-down.svg +++ b/rare/resources/stylesheets/RareStyle/sort-down.svg @@ -1,4 +1,4 @@ + fill="#ccc"/> \ No newline at end of file diff --git a/rare/resources/stylesheets/RareStyle/sort-up.svg b/rare/resources/stylesheets/RareStyle/sort-up.svg index 7a2d0ddc..4a9e3549 100644 --- a/rare/resources/stylesheets/RareStyle/sort-up.svg +++ b/rare/resources/stylesheets/RareStyle/sort-up.svg @@ -1,4 +1,4 @@ + fill="#ccc"/> \ No newline at end of file diff --git a/rare/resources/stylesheets/RareStyle/stylesheet.qss b/rare/resources/stylesheets/RareStyle/stylesheet.qss index 796d92b5..ea905143 100644 --- a/rare/resources/stylesheets/RareStyle/stylesheet.qss +++ b/rare/resources/stylesheets/RareStyle/stylesheet.qss @@ -6,7 +6,7 @@ disabled: #43474d rgb( 67, 71, 77) -- disabled font color rgba( 67, 71, 77, 25%) == rgb( 41, 43, 47) [Background] normal: #202225 rgb( 32, 34, 37) -- main background color -editable: #333344 rgb( 51, 51, 68) -- background color for reactive/editable widgets (TextEdits, ProgressBars etc) +editable: #272733 rgb( 38, 38, 51) -- background color for reactive/editable widgets (TextEdits, ProgressBars etc) hover: #222233 rgb( 34, 34, 51) -- background color when hovering over reactive widgets (Buttons, Headers) selection: #2f4f4f rgb( 47, 79, 79) -- background color for selectable widgets alternate: #282a2e rgb( 40, 42, 46) -- background color for alternating rows in List/Tree/TableViews and for ScrollBars @@ -20,7 +20,6 @@ disabled: #43474d rgb( 67, 71, 77) -- border for disabled widgets alternate: #3c3f41 rgb( 60, 63, 65) -- border color for gradient backgrounds on widgets like Tabs and Popups [Special] -info-normal: #bbb rgb(187, 187, 187) -- infoLabel install-normal: #070 rgb( 0, 119, 0) -- install install-hover: #050 rgb( 0, 85, 0) -- install install-disabled: #020 rgb( 0, 34, 0) -- install @@ -48,12 +47,6 @@ QLabel:disabled { padding: 0px; selection-background-color: rgb( 47, 79, 79); } -QLabel[infoLabel="1"] { - color: rgb(187, 187, 187); - font-style: italic; - font-weight: normal; -} - QMenu, QListView, @@ -98,9 +91,10 @@ QDoubleSpinBox, QProgressBar, QScrollBar { border-color: rgb( 47, 79, 79); - background-color: rgb( 51, 51, 68); + background-color: rgb( 38, 38, 51); selection-background-color: rgb( 47, 79, 79); } + QLineEdit, QTextEdit, QTimeEdit, @@ -111,11 +105,22 @@ QSpinBox, QDoubleSpinBox, QProgressBar, QPushButton { - height: 1.30em; + min-height: 1.30em; +} +QLineEdit, +QTextEdit +QTimeEdit, +QDateEdit, +QDateTimeEdit, +QSpinBox, +QDoubleSpinBox, +QProgressBar { + max-height: 1.30em; } QToolButton { - height: 1.10em; + min-height: 1.10em; } + QFrame[frameShape="0"] { border-width: 0px; } @@ -230,7 +235,7 @@ QScrollBar::handle { border-width: 1px; border-style: solid; border-color: rgb( 72, 61, 139); - background-color: rgb( 51, 51, 68); + background-color: rgb( 38, 38, 51); border-radius: 2px; min-height: 30px; min-width: 30px; @@ -314,12 +319,15 @@ QToolButton { padding-left: 6px; padding-right: 6px; } -QPushButton::menu-indicator { +/* +QPushButton::menu-indicator, +QToolButton::menu-indicator { subcontrol-position: right center; subcontrol-origin: padding; left: -2px; border-style: none; } +*/ QGroupBox, QCheckBox, @@ -451,12 +459,6 @@ QSizeGrip { height: 4px; } -QLineEdit#SearchBar { - padding: 3px; - border-radius: 5px; - background-color: rgb( 51, 51, 68); -} - QTabWidget::pane { } QTabWidget::tab-bar { @@ -610,6 +612,39 @@ QTabBar::tab:right:selected:disabled { border-left-color: transparent; } +QStatusBar { + border-width: 1px; + border-style: solid; + border-color: transparent; + border-top-color: rgb( 72, 61, 139); + border-bottom-color: rgb( 60, 63, 65); + background: qlineargradient( + x1: 0, y1: 3, + x2: 0, y2: 0, + stop: 0 rgb( 60, 63, 65), + stop: 1 rgb( 32, 34, 37)); +} + +QToolTip { + border-width: 1px; + border-style: solid; + border-color: rgb( 72, 61, 139); + border-radius: 4px; + padding: 1px; + opacity: 200; +} + +QBalloonTip { + color: rgb(238, 238, 238); + background-color: rgb( 32, 34, 37); + border-width: 1px; + border-style: solid; + border-color: rgb( 72, 61, 139); + border-radius: 4px; + padding: 1px; +} + +/* Main tab bar styling */ QTabBar#MainTabBar { border-width: 1px; border-style: solid; @@ -632,7 +667,7 @@ QTabBar#MainTabBar::tab { margin-right: 3px; border-top-color: transparent; border-bottom-color: rgb( 72, 61, 139); - padding: 5px; + padding: 3px 5px; }/* QTabBar#MainTabBar::tab:top:first, QTabBar#MainTabBar::tab:bottom:first { @@ -651,6 +686,17 @@ QTabBar#MainTabBar::tab:top:selected { border-color: rgb( 72, 61, 139); border-bottom-color: rgb( 32, 34, 37); } +QPushButton#TabButtonWidget, +QToolButton#TabButtonWidget { + padding: 0px; + border-color: rgb( 51, 54, 59); +} +QPushButton#TabButtonWidget:disabled, +QToolButton#TabButtonWidget:disabled { + border-color: rgb( 41, 43, 47); +} + +/* Side tab bar styling */ QTabBar#SideTabBar { border-width: 1px; border-style: solid; @@ -688,41 +734,16 @@ QTabBar#SideTabBar::tab:disabled { background-color: transparent; } -QStatusBar { - border-width: 1px; - border-style: solid; - border-color: transparent; - border-top-color: rgb( 72, 61, 139); - border-bottom-color: rgb( 60, 63, 65); - background: qlineargradient( - x1: 0, y1: 3, - x2: 0, y2: 0, - stop: 0 rgb( 60, 63, 65), - stop: 1 rgb( 32, 34, 37)); -} - -QToolTip { - border-width: 1px; - border-style: solid; - border-color: rgb( 72, 61, 139); - border-radius: 4px; - padding: 1px; - opacity: 200; -} - -QBalloonTip { - color: rgb(238, 238, 238); - background-color: rgb( 32, 34, 37); - border-width: 1px; - border-style: solid; - border-color: rgb( 72, 61, 139); - border-radius: 4px; - padding: 1px; +/* Search bar styling */ +QLineEdit#SearchBar { + border-radius: 5px; + background-color: rgb( 38, 38, 51); } /* Wrapper settings styling */ QPushButton#WrapperWidgetButton, QToolButton#WrapperWidgetButton { + padding: 0px; border-color: rgb( 51, 54, 59); } QPushButton#WrapperWidgetButton:disabled, @@ -731,7 +752,7 @@ QToolButton#WrapperWidgetButton:disabled { } QScrollArea#WrapperSettingsScroll { border-color: rgb( 47, 79, 79); - background-color: rgb( 40, 42, 46); + background-color: rgb( 38, 38, 51); } QScrollBar#WrapperSettingsScrollBar { background-color: rgb( 40, 42, 46); @@ -743,9 +764,9 @@ QLabel#WrapperSettingsLabel { padding: 2px; color: #999; border-color: rgb( 47, 79, 79); - background-color: rgb( 40, 42, 46); + background-color: rgb( 38, 38, 51); } QLabel#WrapperSettingsLabel:disabled { border-color: rgb( 67, 71, 77); background-color: rgb( 32, 34, 37); -} \ No newline at end of file +} diff --git a/rare/ui/launcher/__init__.py b/rare/ui/commands/__init__.py similarity index 100% rename from rare/ui/launcher/__init__.py rename to rare/ui/commands/__init__.py diff --git a/rare/ui/commands/launcher/__init__.py b/rare/ui/commands/launcher/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/rare/ui/launcher/console_env.py b/rare/ui/commands/launcher/console_env.py similarity index 100% rename from rare/ui/launcher/console_env.py rename to rare/ui/commands/launcher/console_env.py diff --git a/rare/ui/launcher/console_env.ui b/rare/ui/commands/launcher/console_env.ui similarity index 100% rename from rare/ui/launcher/console_env.ui rename to rare/ui/commands/launcher/console_env.ui diff --git a/rare/ui/components/dialogs/login/import_login.py b/rare/ui/components/dialogs/login/import_login.py index e6105982..277ac81f 100644 --- a/rare/ui/components/dialogs/login/import_login.py +++ b/rare/ui/components/dialogs/login/import_login.py @@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_ImportLogin(object): def setupUi(self, ImportLogin): ImportLogin.setObjectName("ImportLogin") - ImportLogin.resize(233, 156) + ImportLogin.resize(256, 143) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -52,9 +52,9 @@ class Ui_ImportLogin(object): self.prefix_combo.setEditable(True) self.prefix_combo.setObjectName("prefix_combo") self.prefix_layout.addWidget(self.prefix_combo) - self.prefix_tool = QtWidgets.QToolButton(ImportLogin) - self.prefix_tool.setObjectName("prefix_tool") - self.prefix_layout.addWidget(self.prefix_tool) + self.prefix_button = QtWidgets.QPushButton(ImportLogin) + self.prefix_button.setObjectName("prefix_button") + self.prefix_layout.addWidget(self.prefix_button) self.prefix_layout.setStretch(0, 1) self.form_layout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.prefix_layout) self.prefix_label = QtWidgets.QLabel(ImportLogin) @@ -85,7 +85,7 @@ class Ui_ImportLogin(object): def retranslateUi(self, ImportLogin): _translate = QtCore.QCoreApplication.translate self.title_label.setText(_translate("ImportLogin", "Import existing session from EGL")) - self.prefix_tool.setText(_translate("ImportLogin", "Browse")) + self.prefix_button.setText(_translate("ImportLogin", "Browse...")) self.prefix_label.setText(_translate("ImportLogin", "Select prefix")) self.info_label.setText(_translate("ImportLogin", "Please select the Wine prefix where Epic Games Launcher is installed. You will get logged out from EGL in the process.")) diff --git a/rare/ui/components/dialogs/login/import_login.ui b/rare/ui/components/dialogs/login/import_login.ui index c396215a..f6a6f3c3 100644 --- a/rare/ui/components/dialogs/login/import_login.ui +++ b/rare/ui/components/dialogs/login/import_login.ui @@ -6,8 +6,8 @@ 0 0 - 233 - 156 + 256 + 143 @@ -69,9 +69,9 @@ - + - Browse + Browse... diff --git a/rare/ui/components/tabs/games/integrations/egl_sync_group.py b/rare/ui/components/tabs/games/integrations/egl_sync_group.py index d59c2b2a..42ce39db 100644 --- a/rare/ui/components/tabs/games/integrations/egl_sync_group.py +++ b/rare/ui/components/tabs/games/integrations/egl_sync_group.py @@ -45,7 +45,7 @@ class Ui_EGLSyncGroup(object): def retranslateUi(self, EGLSyncGroup): _translate = QtCore.QCoreApplication.translate EGLSyncGroup.setTitle(_translate("EGLSyncGroup", "Sync with Epic Games Launcher")) - self.egl_path_edit_label.setText(_translate("EGLSyncGroup", "Prefix/Manifest path")) + self.egl_path_edit_label.setText(_translate("EGLSyncGroup", "Manifest path")) self.egl_sync_check_label.setText(_translate("EGLSyncGroup", "Enable automatic sync")) self.egl_sync_check.setText(_translate("EGLSyncGroup", "This will immediately synchronize with EGL")) self.egl_path_info_label.setText(_translate("EGLSyncGroup", "Estimated path")) diff --git a/rare/ui/components/tabs/games/integrations/egl_sync_group.ui b/rare/ui/components/tabs/games/integrations/egl_sync_group.ui index 10b71aab..b01fa592 100644 --- a/rare/ui/components/tabs/games/integrations/egl_sync_group.ui +++ b/rare/ui/components/tabs/games/integrations/egl_sync_group.ui @@ -29,7 +29,7 @@ - Prefix/Manifest path + Manifest path diff --git a/rare/ui/components/tabs/games/integrations/eos_widget.py b/rare/ui/components/tabs/games/integrations/eos_widget.py index 3efcf3f9..7a3d245c 100644 --- a/rare/ui/components/tabs/games/integrations/eos_widget.py +++ b/rare/ui/components/tabs/games/integrations/eos_widget.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'rare/ui/components/tabs/games/integrations/eos_widget.ui' # -# Created by: PyQt5 UI code generator 5.15.9 +# Created by: PyQt5 UI code generator 5.15.10 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_EosWidget(object): def setupUi(self, EosWidget): EosWidget.setObjectName("EosWidget") - EosWidget.resize(464, 98) + EosWidget.resize(465, 98) EosWidget.setWindowTitle("GroupBox") self.eos_layout = QtWidgets.QVBoxLayout(EosWidget) self.eos_layout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) @@ -27,8 +27,8 @@ class Ui_EosWidget(object): self.install_page_layout.setContentsMargins(0, 0, 0, 0) self.install_page_layout.setObjectName("install_page_layout") self.install_label_layout = QtWidgets.QFormLayout() - self.install_label_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.install_label_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.install_label_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTop|QtCore.Qt.AlignTrailing) + self.install_label_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.install_label_layout.setObjectName("install_label_layout") self.install_label = QtWidgets.QLabel(self.install_page) self.install_label.setObjectName("install_label") @@ -43,7 +43,7 @@ class Ui_EosWidget(object): self.install_button = QtWidgets.QPushButton(self.install_page) self.install_button.setMinimumSize(QtCore.QSize(140, 0)) self.install_button.setObjectName("install_button") - self.install_button_layout.addWidget(self.install_button) + self.install_button_layout.addWidget(self.install_button, 0, QtCore.Qt.AlignTop) self.install_page_layout.addLayout(self.install_button_layout) self.install_page_layout.setStretch(0, 1) self.overlay_stack.addWidget(self.install_page) @@ -53,8 +53,8 @@ class Ui_EosWidget(object): self.info_page_layout.setContentsMargins(0, 0, 0, 0) self.info_page_layout.setObjectName("info_page_layout") self.info_label_layout = QtWidgets.QFormLayout() - self.info_label_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.info_label_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.info_label_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTop|QtCore.Qt.AlignTrailing) + self.info_label_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.info_label_layout.setObjectName("info_label_layout") self.version_label = QtWidgets.QLabel(self.info_page) self.version_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) @@ -70,11 +70,11 @@ class Ui_EosWidget(object): self.update_button = QtWidgets.QPushButton(self.info_page) self.update_button.setMinimumSize(QtCore.QSize(140, 0)) self.update_button.setObjectName("update_button") - self.info_button_layout.addWidget(self.update_button) + self.info_button_layout.addWidget(self.update_button, 0, QtCore.Qt.AlignTop) self.uninstall_button = QtWidgets.QPushButton(self.info_page) self.uninstall_button.setMinimumSize(QtCore.QSize(140, 0)) self.uninstall_button.setObjectName("uninstall_button") - self.info_button_layout.addWidget(self.uninstall_button) + self.info_button_layout.addWidget(self.uninstall_button, 0, QtCore.Qt.AlignTop) self.info_page_layout.addLayout(self.info_button_layout) self.info_page_layout.setStretch(0, 1) self.overlay_stack.addWidget(self.info_page) @@ -86,11 +86,11 @@ class Ui_EosWidget(object): def retranslateUi(self, EosWidget): _translate = QtCore.QCoreApplication.translate EosWidget.setTitle(_translate("EosWidget", "Epic Overlay")) - self.install_label.setText(_translate("EosWidget", "Status:")) + self.install_label.setText(_translate("EosWidget", "Version")) self.install_text.setText(_translate("EosWidget", "Epic Online Services Overlay is not installed")) self.install_button.setText(_translate("EosWidget", "Install")) - self.version_label.setText(_translate("EosWidget", "Version:")) - self.path_label.setText(_translate("EosWidget", "Path:")) + self.version_label.setText(_translate("EosWidget", "Version")) + self.path_label.setText(_translate("EosWidget", "Install folder")) self.update_button.setText(_translate("EosWidget", "Update")) self.uninstall_button.setText(_translate("EosWidget", "Uninstall")) diff --git a/rare/ui/components/tabs/games/integrations/eos_widget.ui b/rare/ui/components/tabs/games/integrations/eos_widget.ui index 81dad003..4dec2a31 100644 --- a/rare/ui/components/tabs/games/integrations/eos_widget.ui +++ b/rare/ui/components/tabs/games/integrations/eos_widget.ui @@ -6,7 +6,7 @@ 0 0 - 464 + 465 98 @@ -42,15 +42,15 @@ - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - Status: + Version @@ -68,7 +68,7 @@ 0 - + @@ -102,15 +102,15 @@ - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignRight|Qt::AlignTop|Qt::AlignTrailing - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - Version: + Version Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -120,7 +120,7 @@ - Path: + Install folder Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -131,7 +131,7 @@ - + @@ -144,7 +144,7 @@ - + diff --git a/rare/utils/extra_widgets.py b/rare/utils/extra_widgets.py index dfecc958..e5e9ca3d 100644 --- a/rare/utils/extra_widgets.py +++ b/rare/utils/extra_widgets.py @@ -9,10 +9,9 @@ from PyQt5.QtWidgets import ( QWidget, QPushButton, QLineEdit, - QToolButton, ) -from rare.utils.misc import icon as qta_icon +from rare.utils.misc import qta_icon from rare.utils.paths import cache_dir from rare.utils.qt_requests import QtRequests @@ -117,14 +116,12 @@ class ButtonLineEdit(QLineEdit): super(ButtonLineEdit, self).__init__(parent=parent) self.setObjectName(type(self).__name__) - self.button = QToolButton(self) + self.button = QPushButton(self) self.button.setObjectName(f"{type(self).__name__}Button") - self.button.setIcon(qta_icon(icon_name, color="white")) - self.button.setStyleSheet( - f"QToolButton#{self.button.objectName()} {{border: 0px; padding: 0px;}}" - ) + self.button.setIcon(qta_icon(icon_name)) self.button.setCursor(Qt.ArrowCursor) self.button.clicked.connect(self.buttonClicked.emit) + self.setPlaceholderText(placeholder_text) frame_width = self.style().pixelMetric(QStyle.PM_DefaultFrameWidth) button_size = self.button.sizeHint() diff --git a/rare/utils/misc.py b/rare/utils/misc.py index 50d81193..b630db5c 100644 --- a/rare/utils/misc.py +++ b/rare/utils/misc.py @@ -101,8 +101,9 @@ def set_color_pallete(color_scheme: str) -> None: if custom_palette is not None: qApp.setPalette(custom_palette) qApp.setStyleSheet(static) - icon_color = qApp.palette().color(QPalette.Foreground).name() - qtawesome.set_defaults(color=icon_color) + icon_color_normal = qApp.palette().color(QPalette.Foreground).name() + icon_color_disabled = qApp.palette().color(QPalette.Foreground).name() + qtawesome.set_defaults(color=icon_color_normal, color_disabled=icon_color_disabled) def get_color_schemes() -> Iterable[str]: @@ -124,8 +125,9 @@ def set_style_sheet(style_sheet: str) -> None: file.close() qApp.setStyleSheet(stylesheet + static) - icon_color = qApp.palette().color(QPalette.Text).name() - qtawesome.set_defaults(color="#eeeeee") + icon_color_normal = qApp.palette().color(QPalette.Text).name() + icon_color_disabled = qApp.palette().color(QPalette.Text).name() + qtawesome.set_defaults(color="#eee", color_disabled="#eee") def get_style_sheets() -> Iterable[str]: @@ -157,7 +159,7 @@ def format_size(b: Union[int, float]) -> str: b /= 1024 -def icon(icn_str: str, fallback: str = None, **kwargs): +def qta_icon(icn_str: str, fallback: str = None, **kwargs): try: return qtawesome.icon(icn_str, **kwargs) except Exception as e: diff --git a/rare/widgets/collapsible_widget.py b/rare/widgets/collapsible_widget.py index bd5d8ab6..553d8c34 100644 --- a/rare/widgets/collapsible_widget.py +++ b/rare/widgets/collapsible_widget.py @@ -13,7 +13,7 @@ from PyQt5.QtWidgets import ( QLabel, ) -from rare.utils.misc import icon +from rare.utils.misc import qta_icon class CollapsibleBase(object): @@ -108,7 +108,7 @@ class CollapsibleFrame(QFrame, CollapsibleBase): self.toggle_button = QToolButton(self) self.toggle_button.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) - self.toggle_button.setIcon(icon("fa.arrow-right")) + self.toggle_button.setIcon(qta_icon("fa.arrow-right")) self.toggle_button.setCheckable(True) self.toggle_button.setChecked(False) @@ -150,7 +150,7 @@ class CollapsibleFrame(QFrame, CollapsibleBase): return super(CollapsibleFrame, self).sizeHint() def animationStart(self, checked): - arrow_type = icon("fa.arrow-down") if checked else icon("fa.arrow-right") + arrow_type = qta_icon("fa.arrow-down") if checked else qta_icon("fa.arrow-right") self.toggle_button.setIcon(arrow_type) super(CollapsibleFrame, self).animationStart(checked) diff --git a/rare/widgets/dialogs.py b/rare/widgets/dialogs.py index 83628d1f..836b3b55 100644 --- a/rare/widgets/dialogs.py +++ b/rare/widgets/dialogs.py @@ -14,7 +14,7 @@ from PyQt5.QtWidgets import ( QLayout, QSpacerItem, QSizePolicy, QLabel, ) -from rare.utils.misc import icon +from rare.utils.misc import qta_icon def game_title(text: str, app_title: str) -> str: @@ -79,7 +79,7 @@ class ButtonDialog(BaseDialog): self.reject_button = QPushButton(self) self.reject_button.setText(self.tr("Cancel")) - self.reject_button.setIcon(icon("fa.remove")) + self.reject_button.setIcon(qta_icon("fa.remove")) self.reject_button.setAutoDefault(False) self.reject_button.clicked.connect(self.reject) diff --git a/rare/widgets/indicator_edit.py b/rare/widgets/indicator_edit.py index 93132126..0255069a 100644 --- a/rare/widgets/indicator_edit.py +++ b/rare/widgets/indicator_edit.py @@ -24,10 +24,10 @@ from PyQt5.QtWidgets import ( QCompleter, QFileSystemModel, QStyledItemDelegate, - QFileIconProvider, + QFileIconProvider, QPushButton, ) -from rare.utils.misc import icon as qta_icon +from rare.utils.misc import qta_icon logger = getLogger("IndicatorEdit") @@ -304,7 +304,7 @@ class PathEdit(IndicatorLineEdit): ) self.setObjectName(type(self).__name__) self.line_edit.setMinimumSize(QSize(250, 0)) - self.path_select = QToolButton(self) + self.path_select = QPushButton(self) self.path_select.setObjectName(f"{type(self).__name__}Button") layout = self.layout() layout.addWidget(self.path_select) diff --git a/rare/widgets/side_tab.py b/rare/widgets/side_tab.py index c08b2953..25b04481 100644 --- a/rare/widgets/side_tab.py +++ b/rare/widgets/side_tab.py @@ -21,7 +21,7 @@ from PyQt5.QtWidgets import ( QScrollArea, QLayout, QSizePolicy, ) -from rare.utils.misc import icon as qta_icon +from rare.utils.misc import qta_icon logger = getLogger("SideTab") @@ -29,7 +29,7 @@ logger = getLogger("SideTab") class SideTabBar(QTabBar): def __init__(self, padding: int = -1, parent=None): super(SideTabBar, self).__init__(parent=parent) - self.setObjectName("SideTabBar") + self.setObjectName(type(self).__name__) self.padding = padding self.fm = QFontMetrics(self.font())