From 76a616615bcb45d5a2786c65c0153246ee0df1bc Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Fri, 3 Mar 2023 14:16:04 +0200 Subject: [PATCH] Resources: Move some more stylesheets into the static CSS --- rare/resources/static_css/__init__.py | Bin 3869 -> 4095 bytes rare/resources/static_css/stylesheet.py | 26 +++++++++++++++++- rare/resources/static_css/stylesheet.qss | 8 ++++++ .../tabs/games/game_info/game_dlc_widget.py | 3 +- .../tabs/games/game_info/game_dlc_widget.ui | 3 -- .../tabs/games/game_info/game_info.py | 6 ++-- .../tabs/games/game_info/game_info.ui | 12 ++++---- rare/utils/extra_widgets.py | 10 +------ rare/utils/misc.py | 5 ++-- 9 files changed, 46 insertions(+), 27 deletions(-) diff --git a/rare/resources/static_css/__init__.py b/rare/resources/static_css/__init__.py index 985508efaa183959f87b868ff9bf4b233e23af04..54f20323f37a3e34f5bcc38d119d534627101480 100644 GIT binary patch literal 4095 zcmcJSOK;m&5Jva<6>PGoT_lD`y{MpB6e&=2Q#3&ziz*2CxJ*>ok}J`!^6z`jh;r;E zMUh1WTu_{u`_1EiGgo??J^kis)@`gudcVd zK6}}}*zVG3^jH68Hw5~ot@TJ`MDr`TYZ7U)=cDNc@N2CCM}8J6r^qAmG8Mb@fkSAo1^mAp?uYDJle zP$TI;&_}{|lVh6ZNqM zha!n!uGV=9iahYN&>ZH-TdY0z2~R7&1i@1j*)zin2noxmB$-4EST@KSPZ7%!e}yt) zGWUx2xz%)E9SHajE1s2AGe>qLV(~<+$r!W=GP7BTjBHK}RGb*(m;9R{H5+*`=iT%7 zWM`}#YwMJQGR5BWDbZ6i5X`qC!YP*1A%D3TOyb=t+Y=M?)?n;+G8x`M$g#Gzp1*zB z5Q{!?maK|wuxW_HSjauN)A57>BIui4c39%Oj2#cM2?#Uf>g7gGJhDpG+rw?}p+TCE z1}BJN!4509)E`zpjZOcagFP&p^hm!FLxCoG5TpsKC1U-?>0!B$+3qAu5yq@Q02R+5 z7+uNEf?cgS4ly}#YS8q*1j!j;{l_eO!|sCRAn4y}R`}45Y;iW}+q~!UfNW&HT_|5X zQRhb$y=mR2YCLQFSr<9!ZaE?MoEz4}b8@nH@)bIIgczKtM(M7lk%JU7i+3Y-hS~WY z?>?=QT(BOKm{Cp)nJd0C`81dG6Z3(m-E3bvWz5J4;Jl!xhyk4FGr4B}Rpc*&Jy9zx zlY%Sm0Bs4HvWWdSC)sJ$n7a}E7;R)lOm@0;kaZOqdcx7^=#nu<3^5x(vEM6WV3*Z3 z9&2wE$Dk~bFR<|jSXx;YI^%W-8>f{$Hdbbc>=}VGRq8PT2UE;eD{W#pf#S{2+=y9?a$~W-enp0L!6}3hDk3Q zL6}op=kb{3{Bs@`L(X%oWSLV&uGYNEU3ubNx}1n$^zuzBC#$t~2F!>dfo`8nsEfSy zK9i?DgBOv7ED}#2&PVw+BOZD`W_Qdgbl%%@cFKb|H;`ZfF*Nux+L#9*$R_8KJgwQ` zDQZL2;s%VVPiCGtw*v?TR&w5(-PvS+$URwPwd8+ER^Dl?@qwsJPB2$N2o`~2S2^Kw zo<{B&$tE-Ow9Q~@OzxyU_GlM%u&&NxdEf+-2X<5-Aa{Oy3)aSGMj%_S!dRm(jB0@; zc)>}2V+Dh9k&s(ednM*5DBd)3Rvz55iO6Egi!`a;rJih;5p*~9YBZT1led*^EhwT0zw_xXj?(2meF~`fJfLDUY7>F}xLNn7 zKezj{^CR*pzgOw)df%tr$>4kbQ=Z+6|H&s}d?<6OJe2sq^n7ss;xbj6o9h$&NB)1^ M?7mzC|4x1M5A;b-K>z>% literal 3869 zcmcJSOK%fN6h`;{6%8y%Mi6zk-F6!d3zU&YY|wz_vA_uRqZ&MN>|l2?=HJgbC|``zz8JARZr{po4atlIhV!?Wb3@1B;P3_8_z%G%hsZza7D&MXnx+&>=lUGUYaEgO-C@a6Uz{R)bY!oXZE< zj{OjXZX$wykM|lSS`88-wUN&7Btx@grFzRsdDqJ*(}*y_rp#oXE6IBaN{&fj-_m=m5NWwD~nOyI;g%e>{;f?~}Xu?*A(?VR(@xbU9gb;~)N z;h=PiO?jA;4lT1)pYk}U| zPTAX^)`zHey0ga26ID1EG1-=A>Hio$BebkurD|5-&Wy*rAn#1E3aKm*I!;m;+N0*; z&=XFQ+6Z#4&*mh9msMu2th7<=?xAeZv|E*O$`}_T7S!O(xsiinwHddFXf$IaOKuAh zkQ6&+Qai?jr_;`^vtE3T*gHG4j5l~;#fso+kV@U-qZthHVQ;ON%^VqHqQ`P2HXsZ+ zIoPr$WNS55Xc%3)S!sLGiq^wJhY>>&^j#FZnV{u7sELVHTVcyyk&m@G6j}CW6J$IB zfjP7LHlQW86U~^!uIHJdY3G}RXdesS+s9NG2u9MHFst@NfsM{+fh;d8%5O-n1y+nO z_f8xl3xbSeEn+*)D>UsWd&S&X=|)yh?XX}S=*`YE5X_ceI4j2p`dzX&{6;w=oLSav zoWgMN+Yw{LIk^Er53CxQ2kbVoCWB63^Y3)2jU4Y*mQ&w2q};RQz=^Emlta@QX$FmO zj2?SyHiNxW-)gqn^^k7cBaG0n=AD05Rh+|U4LSFF=B&`ZF{`lOS{GJetZFCuNZV@i z9^;Pv4qGLtevSM_PUM7~^<#Zxytna-GlY@SexqXTgRgBntC20z%J|=bR;&#pY}YZ7 z@j~_!wCJp=_-z~keUzkE5SPM=#v!ccO_6zjW?-G=pMzFHEe zxASFxc6%Ow=iK_kW%q03;?tiyk+buQ&Glm5pFO^KeEx1Q?-G8d9MpeK-WE@i@=21u zdp1b;TQ|+|@_CZQv(uk7yK=+q{X=SS5Eh&8Euj4Sfbzkh4G?{~ocD*Hew(xN9rD4y zH{rv4(}(pz;1_;zot^N1@(qr6&zvfEPyE$(zBhik2-WiD`T&2={vXTrk7Mw)>w|v* DU62M^ diff --git a/rare/resources/static_css/stylesheet.py b/rare/resources/static_css/stylesheet.py index 7c2b2f81..f8cc898c 100644 --- a/rare/resources/static_css/stylesheet.py +++ b/rare/resources/static_css/stylesheet.py @@ -1,10 +1,14 @@ import os import sys +from typing import Union, Type import qstylizer.style -from PyQt5.QtCore import QDir +from PyQt5.QtCore import QDir, QObject from PyQt5.QtGui import QColor from PyQt5.pyrcc import RCCResourceLibrary, CONSTANT_COMPRESSLEVEL_DEFAULT, CONSTANT_COMPRESSTHRESHOLD_DEFAULT +from PyQt5.sip import wrappertype + +from rare.utils.misc import widget_object_name verbose = True compressLevel = 6 @@ -53,6 +57,10 @@ def processResourceFile(filenamesIn, filenameOut, listFiles): return library.output(filenameOut) +def css_name(widget: Union[wrappertype,QObject,Type]): + return f"#{widget_object_name(widget, '')}" + + css = qstylizer.style.StyleSheet() @@ -168,6 +176,22 @@ css.QLabel[list_name("VersionLabel")].color.setValue(list_info_label_color) css.QLabel[list_name("SizeLabel")].color.setValue(list_info_label_color) +# WaitingSpinner +from rare.utils.extra_widgets import WaitingSpinner +css.QLabel[css_name(WaitingSpinner)].setValues( + marginLeft="auto", + marginRight="auto", +) + + +# SelectViewWidget +from rare.utils.extra_widgets import SelectViewWidget +css.QPushButton[f"{css_name(SelectViewWidget)}Button"].setValues( + border="none", + backgroundColor="transparent", +) + + 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 42019f17..80895846 100644 --- a/rare/resources/static_css/stylesheet.qss +++ b/rare/resources/static_css/stylesheet.qss @@ -101,3 +101,11 @@ QLabel#ListWidgetVersionLabel { QLabel#ListWidgetSizeLabel { color: #999; } +QLabel#WaitingSpinner { + margin-left: auto; + margin-right: auto; +} +QPushButton#SelectViewWidgetButton { + border: none; + background-color: transparent; +} diff --git a/rare/ui/components/tabs/games/game_info/game_dlc_widget.py b/rare/ui/components/tabs/games/game_info/game_dlc_widget.py index dad466e1..799c7361 100644 --- a/rare/ui/components/tabs/games/game_info/game_dlc_widget.py +++ b/rare/ui/components/tabs/games/game_info/game_dlc_widget.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'rare/ui/components/tabs/games/game_info/game_dlc_widget.ui' # -# Created by: PyQt5 UI code generator 5.15.7 +# Created by: PyQt5 UI code generator 5.15.9 # # 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. @@ -96,7 +96,6 @@ class Ui_GameDlcWidget(object): sizePolicy.setHeightForWidth(self.action_button.sizePolicy().hasHeightForWidth()) self.action_button.setSizePolicy(sizePolicy) self.action_button.setMinimumSize(QtCore.QSize(160, 0)) - self.action_button.setStyleSheet("") self.action_button.setText("Action") self.action_button.setObjectName("action_button") self.dlc_layout.addWidget(self.action_button, 0, QtCore.Qt.AlignBottom) diff --git a/rare/ui/components/tabs/games/game_info/game_dlc_widget.ui b/rare/ui/components/tabs/games/game_info/game_dlc_widget.ui index 267f533e..4ab95570 100644 --- a/rare/ui/components/tabs/games/game_info/game_dlc_widget.ui +++ b/rare/ui/components/tabs/games/game_info/game_dlc_widget.ui @@ -191,9 +191,6 @@ 0 - - - Action diff --git a/rare/ui/components/tabs/games/game_info/game_info.py b/rare/ui/components/tabs/games/game_info/game_info.py index 6b21b9aa..0ff0fb56 100644 --- a/rare/ui/components/tabs/games/game_info/game_info.py +++ b/rare/ui/components/tabs/games/game_info/game_info.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'rare/ui/components/tabs/games/game_info/game_info.ui' # -# Created by: PyQt5 UI code generator 5.15.7 +# Created by: PyQt5 UI code generator 5.15.9 # # 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. @@ -163,7 +163,6 @@ class Ui_GameInfo(object): self.move_stack.addWidget(self.move_progress_page) self.installed_layout.addWidget(self.move_stack) self.uninstall_button = QtWidgets.QPushButton(self.installed_page) - self.uninstall_button.setStyleSheet("") self.uninstall_button.setObjectName("uninstall_button") self.installed_layout.addWidget(self.uninstall_button) self.game_actions_stack.addWidget(self.installed_page) @@ -172,10 +171,9 @@ class Ui_GameInfo(object): self.uninstalled_layout = QtWidgets.QVBoxLayout(self.uninstalled_page) self.uninstalled_layout.setContentsMargins(0, 0, 0, 0) self.uninstalled_layout.setObjectName("uninstalled_layout") - spacerItem2 = QtWidgets.QSpacerItem(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + spacerItem2 = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.uninstalled_layout.addItem(spacerItem2) self.install_button = QtWidgets.QPushButton(self.uninstalled_page) - self.install_button.setStyleSheet("") self.install_button.setObjectName("install_button") self.uninstalled_layout.addWidget(self.install_button) self.import_button = QtWidgets.QPushButton(self.uninstalled_page) diff --git a/rare/ui/components/tabs/games/game_info/game_info.ui b/rare/ui/components/tabs/games/game_info/game_info.ui index f2792b93..51d19420 100644 --- a/rare/ui/components/tabs/games/game_info/game_info.ui +++ b/rare/ui/components/tabs/games/game_info/game_info.ui @@ -353,9 +353,6 @@ - - - Uninstall Game @@ -382,13 +379,16 @@ Qt::Vertical + + + 0 + 0 + + - - - Install Game diff --git a/rare/utils/extra_widgets.py b/rare/utils/extra_widgets.py index 38b0a2a7..6d94f63d 100644 --- a/rare/utils/extra_widgets.py +++ b/rare/utils/extra_widgets.py @@ -27,9 +27,6 @@ class WaitingSpinner(QLabel): def __init__(self, parent=None): super(WaitingSpinner, self).__init__(parent=parent) self.setObjectName(type(self).__name__) - self.setStyleSheet( - f"QLabel#{self.objectName()} {{margin - left: auto; margin-right: auto;}}" - ) self.movie = QMovie(":/images/loader.gif") self.setMovie(self.movie) self.movie.start() @@ -43,14 +40,9 @@ class SelectViewWidget(QWidget): self.icon_view = icon_view self.icon_button = QPushButton(self) self.icon_button.setObjectName(f"{type(self).__name__}Button") - self.icon_button.setStyleSheet( - f"QPushButton#{self.icon_button.objectName()} {{border: none; background-color: transparent}}" - ) self.list_button = QPushButton(self) self.list_button.setObjectName(f"{type(self).__name__}Button") - self.list_button.setStyleSheet( - f"QPushButton#{self.list_button.objectName()} {{border: none; background-color: transparent}}" - ) + if icon_view: self.icon_button.setIcon(qta_icon("mdi.view-grid-outline", "ei.th-large", color="orange")) self.list_button.setIcon(qta_icon("fa5s.list", "ei.th-list")) diff --git a/rare/utils/misc.py b/rare/utils/misc.py index 24177c3b..67b97987 100644 --- a/rare/utils/misc.py +++ b/rare/utils/misc.py @@ -209,10 +209,11 @@ def icon(icn_str: str, fallback: str = None, **kwargs): def widget_object_name(widget: Union[wrappertype,QObject,Type], suffix: str) -> str: + suffix = f"_{suffix}" if suffix else "" if isinstance(widget, QObject): - return f"{type(widget).__name__}_{suffix}" + return f"{type(widget).__name__}{suffix}" elif isinstance(widget, wrappertype): - return f"{widget.__name__}_{suffix}" + return f"{widget.__name__}{suffix}" else: raise RuntimeError(f"Argument {widget} not a QObject or type of QObject")