From a8bb0946050d88840a69e5a177f5628a811f75f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kyle=20=F0=9F=90=86?= Date: Sat, 18 Oct 2025 16:38:00 -0400 Subject: [PATCH] fix: refresh amounts instantly on hide toggle --- .../sparrow/control/TransactionDiagram.java | 4 ++++ .../com/sparrowwallet/sparrow/control/UtxosChart.java | 11 +++++++++++ .../sparrow/transaction/HeadersController.java | 6 ++++++ .../sparrow/transaction/InputController.java | 5 +++++ .../sparrow/transaction/InputsController.java | 5 +++++ .../sparrow/transaction/OutputController.java | 5 +++++ .../sparrow/transaction/OutputsController.java | 6 ++++++ .../sparrow/wallet/AddressesController.java | 6 ++++++ .../sparrowwallet/sparrow/wallet/UtxosController.java | 1 + 9 files changed, 49 insertions(+) diff --git a/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java b/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java index 5beb8aa8..a137d93c 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/TransactionDiagram.java @@ -284,6 +284,10 @@ public class TransactionDiagram extends GridPane { contextMenu.getItems().add(menuItem); setOnContextMenuRequested(contextMenuHandler); } + + if(getLabel() != null) { + getLabel().update(this); + } } private List> getDisplayedUtxoSets() { diff --git a/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java b/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java index 4f579d1f..5ced6687 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/UtxosChart.java @@ -133,4 +133,15 @@ public class UtxosChart extends BarChart { NumberAxis yaxis = (NumberAxis)getYAxis(); yaxis.setTickLabelFormatter(new CoinAxisFormatter(yaxis, format, unit)); } + + public void refreshAxisLabels() { + NumberAxis yaxis = (NumberAxis)getYAxis(); + // Force the axis to redraw by invalidating the upper and lower bounds + yaxis.setAutoRanging(false); + double lower = yaxis.getLowerBound(); + double upper = yaxis.getUpperBound(); + yaxis.setLowerBound(lower); + yaxis.setUpperBound(upper); + yaxis.setAutoRanging(true); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java index f2bb4078..4a8660ca 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java @@ -1781,6 +1781,12 @@ public class HeadersController extends TransactionFormController implements Init } } + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + transactionDiagram.update(); + fee.refresh(); + } + private static class WalletSignComparator implements Comparator { private static final List sourceOrder = List.of(KeystoreSource.SW_WATCH, KeystoreSource.HW_AIRGAPPED, KeystoreSource.HW_USB, KeystoreSource.SW_SEED); diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java index 122aa018..a38c4982 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/InputController.java @@ -578,4 +578,9 @@ public class InputController extends TransactionFormController implements Initia updateInputLegendFromWallet(inputForm.getTransactionInput(), null); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + spends.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java index 37c7ea9d..434715b5 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/InputsController.java @@ -184,4 +184,9 @@ public class InputsController extends TransactionFormController implements Initi updatePSBTInputs(inputsForm.getPsbt()); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + total.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java index 831ccc6c..40f55c52 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputController.java @@ -228,4 +228,9 @@ public class OutputController extends TransactionFormController implements Initi updateScriptPubKey(outputForm.getTransactionOutput()); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + value.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java index 24e2451a..56ece340 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/OutputsController.java @@ -6,6 +6,7 @@ import com.sparrowwallet.drongo.protocol.TransactionOutput; import com.sparrowwallet.sparrow.EventManager; import com.sparrowwallet.sparrow.control.CopyableCoinLabel; import com.sparrowwallet.sparrow.control.CopyableLabel; +import com.sparrowwallet.sparrow.event.HideAmountsStatusEvent; import com.sparrowwallet.sparrow.event.TransactionOutputsChangedEvent; import com.sparrowwallet.sparrow.event.UnitFormatChangedEvent; import javafx.fxml.FXML; @@ -68,4 +69,9 @@ public class OutputsController extends TransactionFormController implements Init updatePieData(outputsPie, outputsForm.getTransaction().getOutputs()); } } + + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + total.refresh(); + } } diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java b/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java index 5cef7655..fedbd402 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/AddressesController.java @@ -132,6 +132,12 @@ public class AddressesController extends WalletFormController implements Initial changeTable.showTransactionsCount(event.isShowCount()); } + @Subscribe + public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { + receiveTable.refresh(); + changeTable.refresh(); + } + public void exportReceiveAddresses(ActionEvent event) { exportAddresses(KeyPurpose.RECEIVE); } diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/UtxosController.java b/src/main/java/com/sparrowwallet/sparrow/wallet/UtxosController.java index 79505e54..ede0a590 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/UtxosController.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/UtxosController.java @@ -278,6 +278,7 @@ public class UtxosController extends WalletFormController implements Initializab public void hideAmountsStatusChanged(HideAmountsStatusEvent event) { utxosTable.refresh(); utxosChart.update(getWalletForm().getWalletUtxosEntry()); + utxosChart.refreshAxisLabels(); balance.refresh(); mempoolBalance.refresh(); updateButtons(Config.get().getUnitFormat(), Config.get().getBitcoinUnit());