feat(mining): thread-count stepper, adaptive tiles, dropdown click-through fix, xmrig version state

Mining-tab UI improvements:
- Thread selector: a centered [-] N [+] stepper (top-aligned in the header) to pick an exact
  thread count — number centered, -/+ step by one (clamped to [1, cores]), still typeable
  (commits on Enter so it doesn't restart the miner mid-typing).
- Thread tiles now render at an adaptive step (1/2/4/8 by core count) plus 1 and the max, so a
  high-core CPU (e.g. a 192-thread EPYC) shows ~25 tiles instead of one-per-thread and no longer
  overflows the card. Unchanged for <=24-core machines.
- Fix: clicking the X (or a row) in an open saved-pools / payout-address dropdown no longer bleeds
  through to the thread tiles / Mine button — the custom drawlist hit-tests now gate on
  IsPopupOpen(AnyPopup).
- xmrig update button: shows "xmrig releases" when installed >= latest (numeric version compare),
  else "Update <latest>"; the "Current: <ver>" text and the button are subtle green when up to date
  and subtle orange when an update is available (neutral when either version is unknown).

New i18n keys back-filled across all 8 languages; CJK subset font rebuilt for the new glyphs.
Verified across full-node, lite, and Windows builds; the stepper layout confirmed via the UI sweep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-18 15:39:43 -05:00
parent 06afbee4f8
commit 0de44569b7
11 changed files with 165 additions and 15 deletions

Binary file not shown.

View File

@@ -949,6 +949,9 @@
"mining_syncing_tooltip": "Blockchain synchronisiert...",
"mining_tag": " · Mining",
"mining_threads": "Mining-Threads",
"mining_threads_input_tooltip": "Genaue Thread-Anzahl eingeben (Enter zum Übernehmen)",
"mining_threads_minus_tooltip": "Weniger Threads",
"mining_threads_plus_tooltip": "Mehr Threads",
"mining_to_save": "zum Speichern",
"mining_today": "Heute",
"mining_uptime": "Laufzeit",
@@ -1785,6 +1788,7 @@
"xmrig_loading_releases": "Releases werden geladen…",
"xmrig_none": "keiner",
"xmrig_reinstall": "Neu installieren",
"xmrig_releases": "xmrig-Releases",
"xmrig_stop_mining_first": "Stoppen Sie das Mining, bevor Sie den Miner aktualisieren.",
"xmrig_unavailable_body": "Für diese Plattform ist kein Miner-Build verfügbar.",
"xmrig_unavailable_title": "Miner-Updates nicht verfügbar",

View File

@@ -949,6 +949,9 @@
"mining_syncing_tooltip": "El blockchain está sincronizando...",
"mining_tag": " · Minería",
"mining_threads": "Hilos de Minería",
"mining_threads_input_tooltip": "Escribe un número exacto de hilos (pulsa Enter para aplicar)",
"mining_threads_minus_tooltip": "Menos hilos",
"mining_threads_plus_tooltip": "Más hilos",
"mining_to_save": "para guardar",
"mining_today": "Hoy",
"mining_uptime": "Tiempo activo",
@@ -1785,6 +1788,7 @@
"xmrig_loading_releases": "Cargando versiones…",
"xmrig_none": "ninguno",
"xmrig_reinstall": "Reinstalar",
"xmrig_releases": "versiones de xmrig",
"xmrig_stop_mining_first": "Detén la minería antes de actualizar el minero.",
"xmrig_unavailable_body": "No hay ninguna versión del minero disponible para esta plataforma.",
"xmrig_unavailable_title": "Actualizaciones del minero no disponibles",

View File

@@ -949,6 +949,9 @@
"mining_syncing_tooltip": "La blockchain se synchronise...",
"mining_tag": " · Minage",
"mining_threads": "Threads de minage",
"mining_threads_input_tooltip": "Saisissez un nombre exact de threads (Entrée pour appliquer)",
"mining_threads_minus_tooltip": "Moins de threads",
"mining_threads_plus_tooltip": "Plus de threads",
"mining_to_save": "pour enregistrer",
"mining_today": "Aujourd'hui",
"mining_uptime": "Temps de fonctionnement",
@@ -1785,6 +1788,7 @@
"xmrig_loading_releases": "Chargement des versions…",
"xmrig_none": "aucun",
"xmrig_reinstall": "Réinstaller",
"xmrig_releases": "versions de xmrig",
"xmrig_stop_mining_first": "Arrêtez le minage avant de mettre à jour le mineur.",
"xmrig_unavailable_body": "Aucune version du mineur n'est disponible pour cette plateforme.",
"xmrig_unavailable_title": "Mises à jour du mineur indisponibles",

View File

@@ -949,6 +949,9 @@
"mining_syncing_tooltip": "ブロックチェーン同期中...",
"mining_tag": " · マイニング",
"mining_threads": "マイニングスレッド",
"mining_threads_input_tooltip": "正確なスレッド数を入力Enter で適用)",
"mining_threads_minus_tooltip": "スレッドを減らす",
"mining_threads_plus_tooltip": "スレッドを増やす",
"mining_to_save": "保存する",
"mining_today": "今日",
"mining_uptime": "稼働時間",
@@ -1782,6 +1785,7 @@
"xmrig_loading_releases": "リリースを読み込み中…",
"xmrig_none": "なし",
"xmrig_reinstall": "再インストール",
"xmrig_releases": "xmrig リリース",
"xmrig_stop_mining_first": "マイナーを更新する前にマイニングを停止してください。",
"xmrig_unavailable_body": "このプラットフォーム向けのマイナービルドは利用できません。",
"xmrig_unavailable_title": "マイナーの更新は利用できません",

View File

@@ -948,6 +948,9 @@
"mining_syncing_tooltip": "블록체인 동기화 중...",
"mining_tag": " · 채굴",
"mining_threads": "채굴 스레드",
"mining_threads_input_tooltip": "정확한 스레드 수 입력 (Enter로 적용)",
"mining_threads_minus_tooltip": "스레드 줄이기",
"mining_threads_plus_tooltip": "스레드 늘리기",
"mining_to_save": "저장하려면",
"mining_today": "오늘",
"mining_uptime": "가동 시간",
@@ -1784,6 +1787,7 @@
"xmrig_loading_releases": "릴리스를 불러오는 중…",
"xmrig_none": "없음",
"xmrig_reinstall": "재설치",
"xmrig_releases": "xmrig 릴리스",
"xmrig_stop_mining_first": "채굴기를 업데이트하기 전에 채굴을 중지하세요.",
"xmrig_unavailable_body": "이 플랫폼에서 사용 가능한 채굴기 빌드가 없습니다.",
"xmrig_unavailable_title": "채굴기 업데이트를 사용할 수 없습니다",

View File

@@ -949,6 +949,9 @@
"mining_syncing_tooltip": "Blockchain está sincronizando...",
"mining_tag": " · Mineração",
"mining_threads": "Threads de Mineração",
"mining_threads_input_tooltip": "Digite um número exato de threads (Enter para aplicar)",
"mining_threads_minus_tooltip": "Menos threads",
"mining_threads_plus_tooltip": "Mais threads",
"mining_to_save": "para salvar",
"mining_today": "Hoje",
"mining_uptime": "Tempo Ativo",
@@ -1785,6 +1788,7 @@
"xmrig_loading_releases": "Carregando versões…",
"xmrig_none": "nenhum",
"xmrig_reinstall": "Reinstalar",
"xmrig_releases": "versões do xmrig",
"xmrig_stop_mining_first": "Pare a mineração antes de atualizar o minerador.",
"xmrig_unavailable_body": "Nenhuma versão do minerador está disponível para esta plataforma.",
"xmrig_unavailable_title": "Atualizações do minerador indisponíveis",

View File

@@ -949,6 +949,9 @@
"mining_syncing_tooltip": "Блокчейн синхронизируется...",
"mining_tag": " · Майнинг",
"mining_threads": "Потоки майнинга",
"mining_threads_input_tooltip": "Введите точное число потоков (Enter для применения)",
"mining_threads_minus_tooltip": "Меньше потоков",
"mining_threads_plus_tooltip": "Больше потоков",
"mining_to_save": "для сохранения",
"mining_today": "Сегодня",
"mining_uptime": "Время работы",
@@ -1785,6 +1788,7 @@
"xmrig_loading_releases": "Загрузка релизов…",
"xmrig_none": "нет",
"xmrig_reinstall": "Переустановить",
"xmrig_releases": "релизы xmrig",
"xmrig_stop_mining_first": "Остановите майнинг перед обновлением майнера.",
"xmrig_unavailable_body": "Для этой платформы нет доступной сборки майнера.",
"xmrig_unavailable_title": "Обновления майнера недоступны",

View File

@@ -948,6 +948,9 @@
"mining_syncing_tooltip": "区块链同步中...",
"mining_tag": " · 挖矿",
"mining_threads": "挖矿线程",
"mining_threads_input_tooltip": "输入精确的线程数(按 Enter 应用)",
"mining_threads_minus_tooltip": "减少线程",
"mining_threads_plus_tooltip": "增加线程",
"mining_to_save": "保存",
"mining_today": "今天",
"mining_uptime": "运行时间",
@@ -1783,6 +1786,7 @@
"xmrig_loading_releases": "正在加载发行版…",
"xmrig_none": "无",
"xmrig_reinstall": "重新安装",
"xmrig_releases": "xmrig 版本",
"xmrig_stop_mining_first": "更新矿工程序前请先停止挖矿。",
"xmrig_unavailable_body": "此平台没有可用的矿工构建版本。",
"xmrig_unavailable_title": "矿工更新不可用",