Add version label and native Wayland support
- Set QT_QPA_PLATFORM=wayland when WAYLAND_DISPLAY is present so the app runs natively instead of via XWayland - Show version string (v0.1.0-<git short hash>) in bottom-left corner
This commit is contained in:
@@ -2,15 +2,30 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import random
|
import random
|
||||||
|
import subprocess
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
# Run natively on Wayland if available, fall back to X11 otherwise
|
# Run natively on Wayland if available, fall back to X11 otherwise
|
||||||
if os.environ.get("WAYLAND_DISPLAY"):
|
if os.environ.get("WAYLAND_DISPLAY"):
|
||||||
os.environ.setdefault("QT_QPA_PLATFORM", "wayland")
|
os.environ.setdefault("QT_QPA_PLATFORM", "wayland")
|
||||||
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton, QLabel
|
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLabel
|
||||||
from PyQt6.QtCore import Qt, QThread, pyqtSignal
|
from PyQt6.QtCore import Qt, QThread, pyqtSignal
|
||||||
from PyQt6.QtGui import QPixmap, QFont
|
from PyQt6.QtGui import QPixmap, QFont
|
||||||
|
|
||||||
|
VERSION = "v0.1.0"
|
||||||
|
|
||||||
|
def _get_version():
|
||||||
|
try:
|
||||||
|
short = subprocess.check_output(
|
||||||
|
["git", "rev-parse", "--short", "HEAD"],
|
||||||
|
cwd=os.path.dirname(os.path.abspath(__file__)),
|
||||||
|
stderr=subprocess.DEVNULL,
|
||||||
|
).decode().strip()
|
||||||
|
return f"{VERSION}-{short}"
|
||||||
|
except Exception:
|
||||||
|
return VERSION
|
||||||
|
|
||||||
|
|
||||||
STEAM_API_KEY = "A2B1B59F6F16FA3CD3107378AE737C3D"
|
STEAM_API_KEY = "A2B1B59F6F16FA3CD3107378AE737C3D"
|
||||||
STEAM_ID = "76561198000382373"
|
STEAM_ID = "76561198000382373"
|
||||||
|
|
||||||
@@ -129,7 +144,20 @@ class SteamDice(QMainWindow):
|
|||||||
self.status_label.setStyleSheet("color: #8f98a0;")
|
self.status_label.setStyleSheet("color: #8f98a0;")
|
||||||
layout.addWidget(self.status_label)
|
layout.addWidget(self.status_label)
|
||||||
|
|
||||||
# Dice button
|
# Bottom row: version (left) | spacer | dice (center) | spacer (right)
|
||||||
|
bottom_row = QHBoxLayout()
|
||||||
|
bottom_row.setContentsMargins(0, 0, 0, 0)
|
||||||
|
|
||||||
|
version_label = QLabel(_get_version())
|
||||||
|
ver_font = QFont()
|
||||||
|
ver_font.setPointSize(8)
|
||||||
|
version_label.setFont(ver_font)
|
||||||
|
version_label.setStyleSheet("color: #4a5a6a;")
|
||||||
|
version_label.setFixedWidth(80)
|
||||||
|
bottom_row.addWidget(version_label, alignment=Qt.AlignmentFlag.AlignBottom)
|
||||||
|
|
||||||
|
bottom_row.addStretch()
|
||||||
|
|
||||||
self.dice_btn = QPushButton("⚄")
|
self.dice_btn = QPushButton("⚄")
|
||||||
dice_font = QFont()
|
dice_font = QFont()
|
||||||
dice_font.setPointSize(52)
|
dice_font.setPointSize(52)
|
||||||
@@ -139,7 +167,12 @@ class SteamDice(QMainWindow):
|
|||||||
self.dice_btn.setCursor(Qt.CursorShape.PointingHandCursor)
|
self.dice_btn.setCursor(Qt.CursorShape.PointingHandCursor)
|
||||||
self.dice_btn.setEnabled(False)
|
self.dice_btn.setEnabled(False)
|
||||||
self.dice_btn.clicked.connect(self.roll)
|
self.dice_btn.clicked.connect(self.roll)
|
||||||
layout.addWidget(self.dice_btn, alignment=Qt.AlignmentFlag.AlignHCenter)
|
bottom_row.addWidget(self.dice_btn)
|
||||||
|
|
||||||
|
bottom_row.addStretch()
|
||||||
|
bottom_row.addSpacing(80) # mirror version label width to keep dice centered
|
||||||
|
|
||||||
|
layout.addLayout(bottom_row)
|
||||||
|
|
||||||
self._fetch_library()
|
self._fetch_library()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user