Add mine-when-idle, default banlist, and console parsing improvements

Mine-when-idle:
- Auto-start/stop mining based on system idle time detection
- Platform::getSystemIdleSeconds() via XScreenSaver (Linux) / GetLastInputInfo (Win)
- Settings: mine_when_idle toggle + configurable delay (30s–10m)
- Settings page UI with checkbox and delay combo

Console tab:
- Shell-like argument parsing with quote and JSON bracket support
- Pass JSON objects/arrays directly as RPC params
- Fix selection indices when lines are evicted from buffer

Connection & status bar:
- Reduce RPC connect timeout to 1s for localhost fast-fail
- Fast retry timer on daemon startup and external daemon detection
- Show pool mining hashrate in status bar; sidebar badge reflects pool state

UI polish:
- Add logo to About card in settings; expose logo dimensions on App
- Header title offset-y support; adjust content-area margins
- Fix banned peers row cursor position (rawRowPosB.x)

Branding:
- Update copyright to "DragonX Developers" in RC and About section
- Replace logo/icon assets with updated versions

Misc:
- setup.sh: checkout dragonx branch before pulling
- Remove stale prebuilt-binaries/xmrig/.gitkeep
This commit is contained in:
dan_s
2026-03-07 13:42:31 -06:00
parent 653a90de62
commit cc617dd5be
22 changed files with 431 additions and 41 deletions

View File

@@ -31,11 +31,11 @@ BEGIN
BEGIN
BLOCK "040904B0" // US-English, Unicode
BEGIN
VALUE "CompanyName", "The Hush Developers\0"
VALUE "CompanyName", "DragonX Developers\0"
VALUE "FileDescription", "ObsidianDragon Wallet\0"
VALUE "FileVersion", "@DRAGONX_VERSION@\0"
VALUE "InternalName", "ObsidianDragon\0"
VALUE "LegalCopyright", "Copyright 2024-2026 The Hush Developers. GPLv3.\0"
VALUE "LegalCopyright", "Copyright 2024-2026 DragonX Developers. GPLv3.\0"
VALUE "OriginalFilename", "ObsidianDragon.exe\0"
VALUE "ProductName", "ObsidianDragon\0"
VALUE "ProductVersion", "@DRAGONX_VERSION@\0"

13
res/default_banlist.txt Normal file
View File

@@ -0,0 +1,13 @@
# Default Ban List — DragonX Wallet
# IPs listed here are banned automatically when the wallet connects.
# One IP or subnet per line. Comments start with #. Blank lines are ignored.
#
# Examples:
# 192.168.1.100
# 10.0.0.0/8
# 203.0.113.42
#
# Rebuild the wallet after editing this file.
185.159.129.12
185.228.233.222

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -779,6 +779,8 @@ pool-url-input = { width = 300.0, height = 28.0 }
pool-worker-input = { width = 200.0, height = 28.0 }
log-panel-height = { size = 120.0 }
log-panel-min = { size = 60.0 }
idle-row-height = { size = 28.0 }
idle-combo-width = { size = 64.0 }
[tabs.peers]
refresh-button = { size = 110.0 }
@@ -1249,8 +1251,8 @@ inset-shadow-fade-ratio = { size = 5.0 }
[components.content-area]
padding-x = 0.0
padding-y = 0.0
margin-top = { size = 4.0 }
margin-bottom = { size = -40.0 }
margin-top = { size = 6.0 }
margin-bottom = { size = -39.0 }
edge-fade-zone = { size = 0.0 }
[components.content-area.window]
@@ -1262,10 +1264,10 @@ page-fade-speed = { size = 8.0 }
collapse-hysteresis = { size = 60.0 }
header-icon = { icon-dark = "logos/logo_ObsidianDragon_dark.png", icon-light = "logos/logo_ObsidianDragon_light.png" }
coin-icon = { icon = "logos/logo_dragonx_128.png" }
header-title = { font = "subtitle1", size = 14.0, pad-x = 16.0, pad-y = 12.0, logo-gap = 8.0, opacity = 0.7 }
header-title = { font = "subtitle1", size = 14.0, pad-x = 22.0, pad-y = 6.0, logo-gap = 4.0, opacity = 0.7, offset-y = 4.0 }
[components.main-window.window]
padding = [12, 38]
padding = [12, 36]
[components.shutdown]
content-height = { height = 120.0 }
@@ -1309,6 +1311,8 @@ rpc-label-width = { size = 85.0 }
security-combo-width = { size = 120.0 }
port-input-min-width = { size = 60.0 }
port-input-width-ratio = { size = 0.4 }
idle-combo-width = { size = 64.0 }
about-logo-size = { size = 64.0 }
[components.main-layout]
app-bar-height = { size = 64.0 }