mirror of
https://github.com/yusufipk/deste-hearthstone-linux-tracker.git
synced 2026-09-11 10:46:12 +00:00
Hearthstone deck tracker for Linux, first public version
Reads the game's own Power.log: no screen capture, no image recognition, no memory reading. - deck tracking (remaining cards, draw chance, played cards fade in place) - opponent panel (revealed cards, hand and deck counts) - decks read from the game's offline cache, matched to the match - card art in rows, full card on hover - overlay and window modes, adjustable transparency, tray icon - English and Turkish interface - consistency tests over a real log corpus, cross-checked against Zone.log
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
"""assets/deste.svg dosyasından PNG ikon boyutlarını üretir.
|
||||
|
||||
Plasma'nın tepsisi ve uygulama menüsü ikonu isimle çözüyor ve bazı yollarda
|
||||
SVG yerine hazır PNG bekliyor. install.sh bunları hicolor temasına kopyalar.
|
||||
|
||||
Kullanım: python -m tools.make_icons
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
||||
|
||||
SIZES = (16, 22, 24, 32, 48, 64, 96, 128, 256)
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
SVG_PATH = ROOT / "assets" / "deste.svg"
|
||||
OUT_DIR = ROOT / "assets" / "icons"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
from PyQt6.QtCore import QSize, Qt
|
||||
from PyQt6.QtGui import QIcon
|
||||
from PyQt6.QtWidgets import QApplication
|
||||
|
||||
if not SVG_PATH.exists():
|
||||
print(f"SVG yok: {SVG_PATH}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
# Referans tutulmazsa QApplication hemen toplanıyor ve ilk QPixmap
|
||||
# çağrısında Qt "önce QGuiApplication kur" diyip abort ediyor.
|
||||
app = QApplication(sys.argv) # noqa: F841
|
||||
OUT_DIR.mkdir(parents=True, exist_ok=True)
|
||||
icon = QIcon(str(SVG_PATH))
|
||||
for size in SIZES:
|
||||
pixmap = icon.pixmap(QSize(size, size))
|
||||
if pixmap.isNull():
|
||||
print(f"{size}px üretilemedi", file=sys.stderr)
|
||||
continue
|
||||
# Yüksek DPI ölçeklemesi devrede olabilir, istenen boyuta indir.
|
||||
# Not: enum yerine düz sayı geçilirse PyQt6 sessizce abort ediyor.
|
||||
if pixmap.width() != size:
|
||||
pixmap = pixmap.scaled(
|
||||
size,
|
||||
size,
|
||||
Qt.AspectRatioMode.KeepAspectRatio,
|
||||
Qt.TransformationMode.SmoothTransformation,
|
||||
)
|
||||
target = OUT_DIR / f"deste-{size}.png"
|
||||
pixmap.save(str(target))
|
||||
print(f" {target.name} {pixmap.width()}x{pixmap.height()}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user