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 @@
\ 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 @@
\ 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 @@
\ 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())