181 lines
5.1 KiB
Python
181 lines
5.1 KiB
Python
|
import os
|
||
|
import sys
|
||
|
|
||
|
import qstylizer.style
|
||
|
from PyQt5.QtCore import QDir
|
||
|
from PyQt5.QtGui import QColor
|
||
|
from PyQt5.pyrcc import RCCResourceLibrary, CONSTANT_COMPRESSLEVEL_DEFAULT, CONSTANT_COMPRESSTHRESHOLD_DEFAULT
|
||
|
|
||
|
verbose = True
|
||
|
compressLevel = 6
|
||
|
compressThreshold = CONSTANT_COMPRESSTHRESHOLD_DEFAULT
|
||
|
resourceRoot = ''
|
||
|
|
||
|
|
||
|
def processResourceFile(filenamesIn, filenameOut, listFiles):
|
||
|
if verbose:
|
||
|
sys.stderr.write("PyQt5 resource compiler\n")
|
||
|
|
||
|
# Setup.
|
||
|
library = RCCResourceLibrary()
|
||
|
library.setInputFiles(filenamesIn)
|
||
|
library.setVerbose(verbose)
|
||
|
library.setCompressLevel(compressLevel)
|
||
|
library.setCompressThreshold(compressThreshold)
|
||
|
library.setResourceRoot(resourceRoot)
|
||
|
|
||
|
if not library.readFiles():
|
||
|
return False
|
||
|
|
||
|
if filenameOut == '-':
|
||
|
filenameOut = ''
|
||
|
|
||
|
if listFiles:
|
||
|
# Open the output file or use stdout if not specified.
|
||
|
if filenameOut:
|
||
|
try:
|
||
|
out_fd = open(filenameOut, 'w')
|
||
|
except Exception:
|
||
|
sys.stderr.write(
|
||
|
"Unable to open %s for writing\n" % filenameOut)
|
||
|
return False
|
||
|
else:
|
||
|
out_fd = sys.stdout
|
||
|
|
||
|
for df in library.dataFiles():
|
||
|
out_fd.write("%s\n" % QDir.cleanPath(df))
|
||
|
|
||
|
if out_fd is not sys.stdout:
|
||
|
out_fd.close()
|
||
|
|
||
|
return True
|
||
|
|
||
|
return library.output(filenameOut)
|
||
|
|
||
|
|
||
|
css = qstylizer.style.StyleSheet()
|
||
|
|
||
|
|
||
|
# [Un]InstallButton
|
||
|
css.QPushButton["#InstallButton"].setValues(
|
||
|
borderColor=QColor(0, 180, 0).name(),
|
||
|
backgroundColor=QColor(0, 120, 0).name()
|
||
|
)
|
||
|
css.QPushButton["#InstallButton"].hover.setValues(
|
||
|
borderColor=QColor(0, 135, 0).name(),
|
||
|
backgroundColor=QColor(0, 90, 0).name()
|
||
|
)
|
||
|
css.QPushButton["#InstallButton"].disabled.setValues(
|
||
|
borderColor=QColor(0, 60, 0).name(),
|
||
|
backgroundColor=QColor(0, 40, 0).name()
|
||
|
)
|
||
|
css.QPushButton["#UninstallButton"].setValues(
|
||
|
borderColor=QColor(180, 0, 0).name(),
|
||
|
backgroundColor=QColor(120, 0, 0).name()
|
||
|
)
|
||
|
css.QPushButton["#UninstallButton"].hover.setValues(
|
||
|
borderColor=QColor(135, 0, 0).name(),
|
||
|
backgroundColor=QColor(90, 0, 0).name()
|
||
|
)
|
||
|
css.QPushButton["#UninstallButton"].disabled.setValues(
|
||
|
borderColor=QColor(60, 0, 0).name(),
|
||
|
backgroundColor=QColor(40, 0, 0).name()
|
||
|
)
|
||
|
|
||
|
|
||
|
# QueueWorkerLabel
|
||
|
css.QLabel["#QueueWorkerLabel"].setValues(
|
||
|
borderWidth="1px",
|
||
|
borderStyle="solid",
|
||
|
borderRadius="3px",
|
||
|
)
|
||
|
verify_color = QColor("#d6af57")
|
||
|
css.QLabel["#QueueWorkerLabel"]['[workerType="Verify"]'].setValues(
|
||
|
borderColor=verify_color.darker(200).name(),
|
||
|
backgroundColor=verify_color.darker(400).name()
|
||
|
)
|
||
|
move_color = QColor("#41cad9")
|
||
|
css.QLabel["#QueueWorkerLabel"]['[workerType="Move"]'].setValues(
|
||
|
borderColor=move_color.darker(200).name(),
|
||
|
backgroundColor=move_color.darker(400).name()
|
||
|
)
|
||
|
|
||
|
|
||
|
# IconGameWidget
|
||
|
icon_name = lambda x: f"#IconWidget{x}"
|
||
|
icon_background_props = {
|
||
|
"backgroundColor":"rgba(0, 0, 0, 65%)",
|
||
|
}
|
||
|
css.QLabel[icon_name("StatusLabel")].setValues(
|
||
|
fontWeight="bold",
|
||
|
color="white",
|
||
|
**icon_background_props,
|
||
|
borderRadius="5%",
|
||
|
borderTopLeftRadius="11%",
|
||
|
borderTopRightRadius="11%",
|
||
|
)
|
||
|
css.QWidget[icon_name("MiniWidget")].setValues(
|
||
|
color="rgb(238, 238, 238)",
|
||
|
**icon_background_props,
|
||
|
borderRadius="5%",
|
||
|
borderBottomLeftRadius="9%",
|
||
|
borderBottomRightRadius="9%",
|
||
|
)
|
||
|
icon_bottom_label_props = {
|
||
|
"color": "white",
|
||
|
"backgroundColor": "rgba(0, 0, 0, 0%)",
|
||
|
}
|
||
|
css.QLabel[icon_name("TitleLabel")].setValues(
|
||
|
fontWeight="bold",
|
||
|
**icon_bottom_label_props,
|
||
|
)
|
||
|
css.QLabel[icon_name("TooltipLabel")].setValues(
|
||
|
**icon_bottom_label_props,
|
||
|
)
|
||
|
icon_square_button_props = {
|
||
|
"border": "1px solid black",
|
||
|
"borderRadius": "10%",
|
||
|
}
|
||
|
icon_square_button_props.update(icon_background_props)
|
||
|
css.QPushButton[icon_name("LaunchButton")].setValues(
|
||
|
**icon_square_button_props
|
||
|
)
|
||
|
css.QPushButton[icon_name("LaunchButton")].hover.borderColor.setValue("gray")
|
||
|
css.QPushButton[icon_name("InstallButton")].setValues(
|
||
|
**icon_square_button_props
|
||
|
)
|
||
|
css.QPushButton[icon_name("InstallButton")].hover.borderColor.setValue("gray")
|
||
|
|
||
|
|
||
|
# ListGameWidget
|
||
|
list_name = lambda x: f"#ListWidget{x}"
|
||
|
css.QLabel[list_name("TitleLabel")].fontWeight.setValue("bold")
|
||
|
list_status_label_props = {
|
||
|
"backgroundColor": "rgba(0, 0, 0, 75%)",
|
||
|
"border": "1px solid black",
|
||
|
"borderRadius": "5px",
|
||
|
}
|
||
|
css.QLabel[list_name("StatusLabel")].setValues(
|
||
|
fontWeight="bold",
|
||
|
**list_status_label_props,
|
||
|
)
|
||
|
css.QLabel[list_name("TooltipLabel")].setValues(
|
||
|
**list_status_label_props,
|
||
|
)
|
||
|
list_info_label_color = "#999"
|
||
|
css.QLabel[list_name("DeveloperLabel")].color.setValue(list_info_label_color)
|
||
|
css.QLabel[list_name("VersionLabel")].color.setValue(list_info_label_color)
|
||
|
css.QLabel[list_name("SizeLabel")].color.setValue(list_info_label_color)
|
||
|
|
||
|
|
||
|
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')
|
||
|
qss.write(css.toString())
|
||
|
|
||
|
if not processResourceFile(["stylesheet.qrc"], "__init__.py", False):
|
||
|
print("Error while creating compiled resources")
|
||
|
sys.exit(1)
|
||
|
|
||
|
sys.exit(0)
|