]> Nutra Git (v2) - gamesguru/feather.git/commit
Implement Skip Sync and Data Saving features
authorgg <chown_tee@proton.me>
Wed, 7 Jan 2026 11:37:00 +0000 (06:37 -0500)
committergg <chown_tee@proton.me>
Wed, 7 Jan 2026 11:37:00 +0000 (06:37 -0500)
commit7c2d9ab271ca0053b38429d94c83736989adb561
treea3938aca41d33ac50f98c92218a364edf79a3bac
parent230158896c2ecaf17e99e3eddc696dde6f3ab17f
Implement Skip Sync and Data Saving features

Logic:
- Add 'Skip to Tip', 'Date Range', and 'Full Sync' engine to libwalletqt
- Implement 'Scan Transaction' functionality for specific TXIDs

UI:
- Add context menu actions to bottom bar for selective sync
- Display block-depth count in status bar, courtesy of @masflam

bounty claimed here (as "mr_overquald")
https://bounties.monero.social/posts/79/1-230m-add-a-skip-sync-feature-to-a-monero-wallet

bigger scan Tx window

fix transaction diaglogue sizing

tidy estimatedBytes

use simple QDialog for transaction Scan window

rename to syncPause

properly dispose of QThreadStorage disposal

$ ./build/bin/feather --version
FeatherWallet 2.8.1-79-g16eec531
QThreadStorage: entry 2 destroyed before end of thread 0x562e3e2b3b90
QThreadStorage: entry 1 destroyed before end of thread 0x562e3e2b3b90

improvements in status bar

better sync status

trying to get status always updated

put into helper method

refactor bool importTransaction()

fix p1: full sync bug & mutex

fix file close cache bug

more lint fixes; start blocks instead of time

simplify status bar to block count, not download size/time

fix sync 1000 block even when paused bug

hide all widgets on minimize; respect log level

show "[PAUSED] x Blocks to go" on Connecting Status, too

Fetch initial heights so UI can update even if paused

info log: m_walletImpl->refresh() with walletHeight

fix: calc daemon height if 0 to show wallet depth

update icon for paused state

muzzle WebSocket when in pause mode

track and emit network/pause status

log block/daemon/wallet updates for ref

QPointer<QAction> m_updateNetworkInfoAction;

no background sync when paused; allow autoReconnect() on non-onion nodes

abstract out blocksBehind() method

show m_lastSyncStatusUpdate in label and debug log

drop minimize delay from 500 ms to 350 ms

m_actionDisconnectNodeOnPause, m_actionDisconnectWebSocketOnPause

log and special status for pauseSync disc node

disable Network Update Info when node disconnected

place disconnectCurrentNode outside connectToNode

parse cmdline args BEFORE initing UI libs

only disconnect WebSocket on pause when also selected

disconnect node when user explicitly requests

parse args start index=1, not 0 (skip script/exec name)

fix bug in m_updateNetworkInfoAction

disable context menu conditioanlly; conceal sus $0.00 bal

rename to FeatherWallet

better balance (based on wallet status and sync pause status)

fix translucent mis-match

make old policy conditional on configuration

fix: m_updateNetworkInfoAction was active when sync Disabled

show full amount when zero in balance label

fix annoying WebSocket close warning:

    WindowManager: cleanup thread done 0x7cca7efdbec0
    ~Application
    ~WebsocketNotifier 0x7cca7efdbec0
    QObject::startTimer: Timers can only be used with threads started with QThread

handle Calc page logic better now with new flags

add dedicated SyncRangeDialog

better reconnect logic/less network & log spam

track time since: last sync and last fiat update

tooltip simplifications/methods
some more simplifications to status/label/fiat updates

move sync interval to node page; add more config keys
status/balance and HW backed wallet fixes

fix autoConnect() spam/fail bug
update last refresh/sync pause logic status

fix data race/logic bug with refresh interval

get last sync
connect after scan Tx
38 files changed:
src/MainWindow.cpp
src/MainWindow.h
src/SettingsDialog.cpp
src/SettingsDialog.ui
src/WindowManager.cpp
src/WindowManager.h
src/assets/feather.desktop
src/components.cpp
src/dialog/AboutDialog.cpp
src/dialog/AboutDialog.ui
src/dialog/DebugInfoDialog.cpp
src/dialog/PaymentRequestDialog.cpp
src/dialog/QrCodeDialog.cpp
src/dialog/SyncRangeDialog.cpp [new file with mode: 0644]
src/dialog/SyncRangeDialog.h [new file with mode: 0644]
src/dialog/TxImportDialog.cpp
src/libwalletqt/Wallet.cpp
src/libwalletqt/Wallet.h
src/main.cpp
src/model/AddressBookProxyModel.h
src/model/CoinsProxyModel.cpp
src/model/HistoryView.cpp
src/model/SubaddressProxyModel.h
src/model/TransactionHistoryProxyModel.h
src/plugins/crowdfunding/CCSProgressDelegate.cpp
src/plugins/tickers/TickersWidget.cpp
src/utils/Utils.cpp
src/utils/Utils.h
src/utils/WebsocketClient.cpp
src/utils/config.cpp
src/utils/config.h
src/utils/nodes.cpp
src/utils/nodes.h
src/utils/prices.cpp
src/utils/prices.h
src/widgets/NodeWidget.cpp
src/widgets/PayToEdit.h
src/widgets/TickerWidget.cpp