Skip to content

Commit 0429880

Browse files
author
Alessio Attilio
committed
feat: add cyan accent variant for RareStyle
1 parent 835c0df commit 0429880

6 files changed

Lines changed: 169 additions & 84 deletions

File tree

rare/components/tabs/settings/rare.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,18 @@ def __init__(self, settings: RareAppSettings, rcore: RareCore, parent=None):
7474
self.ui.style_select.setCurrentIndex(0)
7575
self.ui.style_select.currentIndexChanged.connect(self._on_style_select_changed)
7676

77+
self.ui.accent_select.addItem(self.tr('RareStylePurple'), 'purple')
78+
self.ui.accent_select.addItem(self.tr('Cyan'), 'cyan')
79+
accent = self.settings.get_value(app_settings.accent_color)
80+
if (index := self.ui.accent_select.findData(accent, Qt.ItemDataRole.UserRole)) > 0:
81+
self.ui.accent_select.setCurrentIndex(index)
82+
self.ui.accent_select.currentIndexChanged.connect(self._on_accent_select_changed)
83+
84+
if color or not style:
85+
self.ui.accent_select.setDisabled(True)
86+
else:
87+
self.ui.accent_select.setDisabled(False)
88+
7789
self.ui.view_combo.addItem(self.tr('Game covers'), LibraryView.COVER)
7890
self.ui.view_combo.addItem(self.tr('Vertical list'), LibraryView.VLIST)
7991
view = LibraryView(self.settings.get_value(app_settings.library_view))
@@ -222,8 +234,10 @@ def _on_color_select_changed(self, index: int):
222234
if scheme:
223235
self.ui.style_select.setCurrentIndex(0)
224236
self.ui.style_select.setDisabled(True)
237+
self.ui.accent_select.setDisabled(True)
225238
else:
226239
self.ui.style_select.setDisabled(False)
240+
self.ui.accent_select.setDisabled(not self.ui.style_select.currentIndex())
227241
self.settings.set_value(app_settings.color_scheme, scheme)
228242
set_color_pallete(scheme)
229243

@@ -233,10 +247,21 @@ def _on_style_select_changed(self, index: int):
233247
if style:
234248
self.ui.color_select.setCurrentIndex(0)
235249
self.ui.color_select.setDisabled(True)
250+
self.ui.accent_select.setDisabled(False)
236251
else:
237252
self.ui.color_select.setDisabled(False)
253+
self.ui.accent_select.setDisabled(True)
238254
self.settings.set_value(app_settings.style_sheet, style)
239-
set_style_sheet(style)
255+
set_style_sheet(style, str(self.settings.get_value(app_settings.accent_color)))
256+
257+
@Slot(int)
258+
def _on_accent_select_changed(self, index: int):
259+
accent = self.ui.accent_select.itemData(index, Qt.ItemDataRole.UserRole)
260+
self.settings.set_value(app_settings.accent_color, accent)
261+
set_style_sheet(
262+
str(self.settings.get_value(app_settings.style_sheet)),
263+
accent,
264+
)
240265

241266
@Slot(int)
242267
def _on_view_combo_changed(self, index: int):

rare/models/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class Settings(Namespace):
4444

4545
color_scheme = Setting(key='color_scheme', default='', dtype=str)
4646
style_sheet = Setting(key='style_sheet', default='RareStyle', dtype=str)
47+
accent_color = Setting(key='accent_color', default='purple', dtype=str)
4748

4849
library_view = Setting(key='library_view', default=int(LibraryView.COVER), dtype=int)
4950
library_filter = Setting(
Lines changed: 89 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,133 +1,139 @@
1+
# -*- coding: utf-8 -*-
12

23
################################################################################
34
## Form generated from reading UI file 'rare.ui'
45
##
5-
## Created by: Qt User Interface Compiler version 6.11.1
6+
## Created by: Qt User Interface Compiler version 6.11.2
67
##
78
## WARNING! All changes made in this file will be lost when recompiling UI file!
89
################################################################################
910

10-
from PySide6.QtCore import QCoreApplication, Qt
11-
from PySide6.QtGui import QFont
12-
from PySide6.QtWidgets import (
13-
QCheckBox,
14-
QComboBox,
15-
QFormLayout,
16-
QGridLayout,
17-
QGroupBox,
18-
QHBoxLayout,
19-
QLabel,
20-
QPushButton,
21-
QSizePolicy,
22-
QSpacerItem,
23-
QVBoxLayout,
24-
)
25-
26-
27-
class Ui_RareSettings:
11+
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
12+
QMetaObject, QObject, QPoint, QRect,
13+
QSize, QTime, QUrl, Qt)
14+
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
15+
QFont, QFontDatabase, QGradient, QIcon,
16+
QImage, QKeySequence, QLinearGradient, QPainter,
17+
QPalette, QPixmap, QRadialGradient, QTransform)
18+
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QFormLayout,
19+
QGridLayout, QGroupBox, QHBoxLayout, QLabel,
20+
QPushButton, QSizePolicy, QSpacerItem, QVBoxLayout,
21+
QWidget)
22+
23+
class Ui_RareSettings(object):
2824
def setupUi(self, RareSettings):
2925
if not RareSettings.objectName():
30-
RareSettings.setObjectName("RareSettings")
26+
RareSettings.setObjectName(u"RareSettings")
3127
RareSettings.resize(629, 447)
32-
RareSettings.setWindowTitle("RareSettings")
28+
RareSettings.setWindowTitle(u"RareSettings")
3329
self.main_layout = QHBoxLayout(RareSettings)
34-
self.main_layout.setObjectName("main_layout")
30+
self.main_layout.setObjectName(u"main_layout")
3531
self.left_layout = QVBoxLayout()
36-
self.left_layout.setObjectName("left_layout")
32+
self.left_layout.setObjectName(u"left_layout")
3733
self.interface_group = QGroupBox(RareSettings)
38-
self.interface_group.setObjectName("interface_group")
34+
self.interface_group.setObjectName(u"interface_group")
3935
sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred)
4036
sizePolicy.setHorizontalStretch(0)
4137
sizePolicy.setVerticalStretch(0)
4238
sizePolicy.setHeightForWidth(self.interface_group.sizePolicy().hasHeightForWidth())
4339
self.interface_group.setSizePolicy(sizePolicy)
4440
self.interface_layout = QFormLayout(self.interface_group)
45-
self.interface_layout.setObjectName("interface_layout")
41+
self.interface_layout.setObjectName(u"interface_layout")
4642
self.interface_layout.setFieldGrowthPolicy(QFormLayout.FieldGrowthPolicy.FieldsStayAtSizeHint)
4743
self.interface_layout.setLabelAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
4844
self.lang_label = QLabel(self.interface_group)
49-
self.lang_label.setObjectName("lang_label")
45+
self.lang_label.setObjectName(u"lang_label")
5046

5147
self.interface_layout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.lang_label)
5248

5349
self.lang_select = QComboBox(self.interface_group)
54-
self.lang_select.setObjectName("lang_select")
50+
self.lang_select.setObjectName(u"lang_select")
5551

5652
self.interface_layout.setWidget(0, QFormLayout.ItemRole.FieldRole, self.lang_select)
5753

5854
self.color_label = QLabel(self.interface_group)
59-
self.color_label.setObjectName("color_label")
55+
self.color_label.setObjectName(u"color_label")
6056

6157
self.interface_layout.setWidget(1, QFormLayout.ItemRole.LabelRole, self.color_label)
6258

6359
self.color_select = QComboBox(self.interface_group)
64-
self.color_select.setObjectName("color_select")
60+
self.color_select.setObjectName(u"color_select")
6561

6662
self.interface_layout.setWidget(1, QFormLayout.ItemRole.FieldRole, self.color_select)
6763

6864
self.style_label = QLabel(self.interface_group)
69-
self.style_label.setObjectName("style_label")
65+
self.style_label.setObjectName(u"style_label")
7066

7167
self.interface_layout.setWidget(2, QFormLayout.ItemRole.LabelRole, self.style_label)
7268

7369
self.style_select = QComboBox(self.interface_group)
74-
self.style_select.setObjectName("style_select")
70+
self.style_select.setObjectName(u"style_select")
7571

7672
self.interface_layout.setWidget(2, QFormLayout.ItemRole.FieldRole, self.style_select)
7773

7874
self.interface_info = QLabel(self.interface_group)
79-
self.interface_info.setObjectName("interface_info")
75+
self.interface_info.setObjectName(u"interface_info")
8076
font = QFont()
8177
font.setItalic(True)
8278
self.interface_info.setFont(font)
8379
self.interface_info.setWordWrap(True)
8480

85-
self.interface_layout.setWidget(4, QFormLayout.ItemRole.SpanningRole, self.interface_info)
81+
self.interface_layout.setWidget(5, QFormLayout.ItemRole.SpanningRole, self.interface_info)
82+
83+
self.accent_label = QLabel(self.interface_group)
84+
self.accent_label.setObjectName(u"accent_label")
85+
86+
self.interface_layout.setWidget(3, QFormLayout.ItemRole.LabelRole, self.accent_label)
87+
88+
self.accent_select = QComboBox(self.interface_group)
89+
self.accent_select.setObjectName(u"accent_select")
90+
91+
self.interface_layout.setWidget(3, QFormLayout.ItemRole.FieldRole, self.accent_select)
8692

8793
self.view_label = QLabel(self.interface_group)
88-
self.view_label.setObjectName("view_label")
94+
self.view_label.setObjectName(u"view_label")
8995

90-
self.interface_layout.setWidget(3, QFormLayout.ItemRole.LabelRole, self.view_label)
96+
self.interface_layout.setWidget(4, QFormLayout.ItemRole.LabelRole, self.view_label)
9197

9298
self.view_combo = QComboBox(self.interface_group)
93-
self.view_combo.setObjectName("view_combo")
99+
self.view_combo.setObjectName(u"view_combo")
94100

95-
self.interface_layout.setWidget(3, QFormLayout.ItemRole.FieldRole, self.view_combo)
101+
self.interface_layout.setWidget(4, QFormLayout.ItemRole.FieldRole, self.view_combo)
96102

97103

98104
self.left_layout.addWidget(self.interface_group)
99105

100106
self.settings_group = QGroupBox(RareSettings)
101-
self.settings_group.setObjectName("settings_group")
107+
self.settings_group.setObjectName(u"settings_group")
102108
self.behavior_layout = QGridLayout(self.settings_group)
103-
self.behavior_layout.setObjectName("behavior_layout")
109+
self.behavior_layout.setObjectName(u"behavior_layout")
104110
self.confirm_start = QCheckBox(self.settings_group)
105-
self.confirm_start.setObjectName("confirm_start")
111+
self.confirm_start.setObjectName(u"confirm_start")
106112

107113
self.behavior_layout.addWidget(self.confirm_start, 3, 0, 1, 1)
108114

109115
self.sys_tray_close = QCheckBox(self.settings_group)
110-
self.sys_tray_close.setObjectName("sys_tray_close")
116+
self.sys_tray_close.setObjectName(u"sys_tray_close")
111117

112118
self.behavior_layout.addWidget(self.sys_tray_close, 0, 0, 1, 1)
113119

114120
self.log_games = QCheckBox(self.settings_group)
115-
self.log_games.setObjectName("log_games")
121+
self.log_games.setObjectName(u"log_games")
116122

117123
self.behavior_layout.addWidget(self.log_games, 7, 0, 1, 1)
118124

119125
self.auto_sync_cloud = QCheckBox(self.settings_group)
120-
self.auto_sync_cloud.setObjectName("auto_sync_cloud")
126+
self.auto_sync_cloud.setObjectName(u"auto_sync_cloud")
121127

122128
self.behavior_layout.addWidget(self.auto_sync_cloud, 4, 0, 1, 1)
123129

124130
self.save_size = QCheckBox(self.settings_group)
125-
self.save_size.setObjectName("save_size")
131+
self.save_size.setObjectName(u"save_size")
126132

127133
self.behavior_layout.addWidget(self.save_size, 6, 0, 1, 1)
128134

129135
self.auto_update = QCheckBox(self.settings_group)
130-
self.auto_update.setObjectName("auto_update")
136+
self.auto_update.setObjectName(u"auto_update")
131137

132138
self.behavior_layout.addWidget(self.auto_update, 2, 0, 1, 1)
133139

@@ -136,12 +142,12 @@ def setupUi(self, RareSettings):
136142
self.behavior_layout.addItem(self.settings_hspacer, 3, 1, 2, 1)
137143

138144
self.notification = QCheckBox(self.settings_group)
139-
self.notification.setObjectName("notification")
145+
self.notification.setObjectName(u"notification")
140146

141147
self.behavior_layout.addWidget(self.notification, 5, 0, 1, 1)
142148

143149
self.sys_tray_start = QCheckBox(self.settings_group)
144-
self.sys_tray_start.setObjectName("sys_tray_start")
150+
self.sys_tray_start.setObjectName(u"sys_tray_start")
145151

146152
self.behavior_layout.addWidget(self.sys_tray_start, 1, 0, 1, 1)
147153

@@ -156,29 +162,29 @@ def setupUi(self, RareSettings):
156162
self.main_layout.addLayout(self.left_layout)
157163

158164
self.right_layout = QVBoxLayout()
159-
self.right_layout.setObjectName("right_layout")
165+
self.right_layout.setObjectName(u"right_layout")
160166
self.log_dir_group = QGroupBox(RareSettings)
161-
self.log_dir_group.setObjectName("log_dir_group")
167+
self.log_dir_group.setObjectName(u"log_dir_group")
162168
self.log_dir_layout = QVBoxLayout(self.log_dir_group)
163-
self.log_dir_layout.setObjectName("log_dir_layout")
169+
self.log_dir_layout.setObjectName(u"log_dir_layout")
164170
self.log_dir_open_button = QPushButton(self.log_dir_group)
165-
self.log_dir_open_button.setObjectName("log_dir_open_button")
171+
self.log_dir_open_button.setObjectName(u"log_dir_open_button")
166172

167173
self.log_dir_layout.addWidget(self.log_dir_open_button)
168174

169175
self.log_dir_clean_button = QPushButton(self.log_dir_group)
170-
self.log_dir_clean_button.setObjectName("log_dir_clean_button")
176+
self.log_dir_clean_button.setObjectName(u"log_dir_clean_button")
171177

172178
self.log_dir_layout.addWidget(self.log_dir_clean_button)
173179

174180
self.log_dir_size_label = QLabel(self.log_dir_group)
175-
self.log_dir_size_label.setObjectName("log_dir_size_label")
181+
self.log_dir_size_label.setObjectName(u"log_dir_size_label")
176182
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Maximum)
177183
sizePolicy1.setHorizontalStretch(0)
178184
sizePolicy1.setVerticalStretch(0)
179185
sizePolicy1.setHeightForWidth(self.log_dir_size_label.sizePolicy().hasHeightForWidth())
180186
self.log_dir_size_label.setSizePolicy(sizePolicy1)
181-
self.log_dir_size_label.setText("")
187+
self.log_dir_size_label.setText(u"")
182188
self.log_dir_size_label.setWordWrap(True)
183189

184190
self.log_dir_layout.addWidget(self.log_dir_size_label)
@@ -187,16 +193,16 @@ def setupUi(self, RareSettings):
187193
self.right_layout.addWidget(self.log_dir_group)
188194

189195
self.groupBox = QGroupBox(RareSettings)
190-
self.groupBox.setObjectName("groupBox")
196+
self.groupBox.setObjectName(u"groupBox")
191197
self.shortcuts_layout = QVBoxLayout(self.groupBox)
192-
self.shortcuts_layout.setObjectName("shortcuts_layout")
198+
self.shortcuts_layout.setObjectName(u"shortcuts_layout")
193199
self.desktop_link_btn = QPushButton(self.groupBox)
194-
self.desktop_link_btn.setObjectName("desktop_link_btn")
200+
self.desktop_link_btn.setObjectName(u"desktop_link_btn")
195201

196202
self.shortcuts_layout.addWidget(self.desktop_link_btn)
197203

198204
self.startmenu_link_btn = QPushButton(self.groupBox)
199-
self.startmenu_link_btn.setObjectName("startmenu_link_btn")
205+
self.startmenu_link_btn.setObjectName(u"startmenu_link_btn")
200206

201207
self.shortcuts_layout.addWidget(self.startmenu_link_btn)
202208

@@ -212,29 +218,33 @@ def setupUi(self, RareSettings):
212218

213219

214220
self.retranslateUi(RareSettings)
221+
222+
QMetaObject.connectSlotsByName(RareSettings)
215223
# setupUi
216224

217225
def retranslateUi(self, RareSettings):
218-
self.interface_group.setTitle(QCoreApplication.translate("RareSettings", "Interface", None))
219-
self.lang_label.setText(QCoreApplication.translate("RareSettings", "Language", None))
220-
self.color_label.setText(QCoreApplication.translate("RareSettings", "Color scheme", None))
221-
self.style_label.setText(QCoreApplication.translate("RareSettings", "Style sheet", None))
222-
self.interface_info.setText(QCoreApplication.translate("RareSettings", "Restart Rare to apply changes.", None))
223-
self.view_label.setText(QCoreApplication.translate("RareSettings", "Library view", None))
224-
self.settings_group.setTitle(QCoreApplication.translate("RareSettings", "Behavior", None))
225-
self.confirm_start.setText(QCoreApplication.translate("RareSettings", "Confirm before launching games", None))
226-
self.sys_tray_close.setText(QCoreApplication.translate("RareSettings", "Close to system tray", None))
227-
self.log_games.setText(QCoreApplication.translate("RareSettings", "Show console window when launching games", None))
228-
self.auto_sync_cloud.setText(QCoreApplication.translate("RareSettings", "Automatically upload/download cloud saves", None))
229-
self.save_size.setText(QCoreApplication.translate("RareSettings", "Restore window size on application startup", None))
230-
self.auto_update.setText(QCoreApplication.translate("RareSettings", "Queue game updates on application startup", None))
231-
self.notification.setText(QCoreApplication.translate("RareSettings", "Show notifications when downloads complete", None))
232-
self.sys_tray_start.setText(QCoreApplication.translate("RareSettings", "Start minimized to the system tray", None))
233-
self.log_dir_group.setTitle(QCoreApplication.translate("RareSettings", "Logs", None))
234-
self.log_dir_open_button.setText(QCoreApplication.translate("RareSettings", "Open log folder", None))
235-
self.log_dir_clean_button.setText(QCoreApplication.translate("RareSettings", "Clean log folder", None))
236-
self.groupBox.setTitle(QCoreApplication.translate("RareSettings", "Shortcuts", None))
237-
self.desktop_link_btn.setText(QCoreApplication.translate("RareSettings", "Create on desktop", None))
238-
self.startmenu_link_btn.setText(QCoreApplication.translate("RareSettings", "Create in menu", None))
226+
self.interface_group.setTitle(QCoreApplication.translate("RareSettings", u"Interface", None))
227+
self.lang_label.setText(QCoreApplication.translate("RareSettings", u"Language", None))
228+
self.color_label.setText(QCoreApplication.translate("RareSettings", u"Color scheme", None))
229+
self.style_label.setText(QCoreApplication.translate("RareSettings", u"Style sheet", None))
230+
self.interface_info.setText(QCoreApplication.translate("RareSettings", u"Restart Rare to apply changes.", None))
231+
self.accent_label.setText(QCoreApplication.translate("RareSettings", u"Accent color", None))
232+
self.view_label.setText(QCoreApplication.translate("RareSettings", u"Library view", None))
233+
self.settings_group.setTitle(QCoreApplication.translate("RareSettings", u"Behavior", None))
234+
self.confirm_start.setText(QCoreApplication.translate("RareSettings", u"Confirm before launching games", None))
235+
self.sys_tray_close.setText(QCoreApplication.translate("RareSettings", u"Close to system tray", None))
236+
self.log_games.setText(QCoreApplication.translate("RareSettings", u"Show console window when launching games", None))
237+
self.auto_sync_cloud.setText(QCoreApplication.translate("RareSettings", u"Automatically upload/download cloud saves", None))
238+
self.save_size.setText(QCoreApplication.translate("RareSettings", u"Restore window size on application startup", None))
239+
self.auto_update.setText(QCoreApplication.translate("RareSettings", u"Queue game updates on application startup", None))
240+
self.notification.setText(QCoreApplication.translate("RareSettings", u"Show notifications when downloads complete", None))
241+
self.sys_tray_start.setText(QCoreApplication.translate("RareSettings", u"Start minimized to the system tray", None))
242+
self.log_dir_group.setTitle(QCoreApplication.translate("RareSettings", u"Logs", None))
243+
self.log_dir_open_button.setText(QCoreApplication.translate("RareSettings", u"Open log folder", None))
244+
self.log_dir_clean_button.setText(QCoreApplication.translate("RareSettings", u"Clean log folder", None))
245+
self.groupBox.setTitle(QCoreApplication.translate("RareSettings", u"Shortcuts", None))
246+
self.desktop_link_btn.setText(QCoreApplication.translate("RareSettings", u"Create on desktop", None))
247+
self.startmenu_link_btn.setText(QCoreApplication.translate("RareSettings", u"Create in menu", None))
248+
pass
239249
# retranslateUi
240250

0 commit comments

Comments
 (0)