Fix icon theme number calculation

Must account for light/dark icon variants.
This commit is contained in:
Kovid Goyal 2024-07-18 09:35:30 +05:30
parent 3562a9ff1f
commit 931b428850
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -122,8 +122,9 @@ class Theme:
class Report:
def __init__(self, path, name_map, extra, missing, theme):
def __init__(self, path, name_map, extra, missing, theme, number):
self.path, self.name_map, self.extra, self.missing, self.theme = path, name_map, extra, missing, theme
self.number = number
self.bad = {}
@property
@ -146,6 +147,7 @@ def read_theme_from_folder(path):
extra = names - current_names
missing = current_names - names
missing.discard('blank.png')
number = len(names - extra)
try:
with open(os.path.join(path, THEME_METADATA), 'rb') as f:
metadata = json.load(f)
@ -167,7 +169,7 @@ def read_theme_from_folder(path):
return metadata.get(x, defval)
theme = Theme(g('title'), g('author'), safe_int(g('version', -1)), g('description'), g('license', 'Unknown'), g('url', None))
ans = Report(path, name_map, extra, missing, theme)
ans = Report(path, name_map, extra, missing, theme, number)
try:
with open(os.path.join(path, THEME_COVER), 'rb') as f:
theme.cover = f.read()
@ -310,7 +312,7 @@ class ThemeCreateDialog(Dialog):
'color_palette': self.color_palette.currentData(),
'version': self.version.value(),
'description': self.description.toPlainText().strip(),
'number': len(self.report.name_map) - len(self.report.extra),
'number': self.report.number,
'date': utcnow().date().isoformat(),
'name': self.report.name,
'license': self.license.text().strip() or 'Unknown',
@ -1006,8 +1008,8 @@ def install_icon_theme(theme, f, rcc_path, for_theme):
if __name__ == '__main__':
from calibre.gui2 import Application
app = Application([])
# create_theme(sys.argv[-1])
d = ChooseTheme()
if d.exec() == QDialog.DialogCode.Accepted and d.commit_changes is not None:
d.commit_changes()
create_theme(sys.argv[-1])
# d = ChooseTheme()
# if d.exec() == QDialog.DialogCode.Accepted and d.commit_changes is not None:
# d.commit_changes()
del app