improve context menu item text fill on dark theme for default split menu buttons

This commit is contained in:
Craig Raw
2026-02-09 13:56:36 +02:00
parent e4fa0c9356
commit 146e6cbdc4
7 changed files with 25 additions and 8 deletions
@@ -97,7 +97,7 @@ public class CodexKeystoreImportPane extends TitledDescriptionPane {
importButton = new SplitMenuButton();
importButton.setAlignment(Pos.CENTER_RIGHT);
importButton.setText("Import Keystore");
importButton.getStyleClass().add("default-button");
setDefaultButton(importButton);
importButton.setOnAction(event -> {
importButton.setDisable(true);
importKeystore(getDefaultDerivation());
@@ -519,7 +519,7 @@ public class DevicePane extends TitledDescriptionPane {
SplitMenuButton sendPassphraseButton = new SplitMenuButton();
sendPassphraseButton.setText("Send Passphrase");
sendPassphraseButton.getStyleClass().add("default-button");
setDefaultButton(sendPassphraseButton);
sendPassphraseButton.setOnAction(event -> {
setExpanded(false);
setDescription("Confirm passphrase on device...");
@@ -1124,7 +1124,7 @@ public class DevicePane extends TitledDescriptionPane {
private void showOperationButton() {
if(deviceOperation.equals(DeviceOperation.IMPORT)) {
if(defaultDevice) {
importButton.getStyleClass().add("default-button");
setDefaultButton(importButton);
}
importButton.setVisible(true);
showHideLink.setText("Show derivation...");
@@ -1148,7 +1148,7 @@ public class DevicePane extends TitledDescriptionPane {
showHideLink.setVisible(false);
} else if(deviceOperation.equals(DeviceOperation.GET_PRIVATE_KEY)) {
if(defaultDevice) {
getPrivateKeyButton.getStyleClass().add("default-button");
setDefaultButton(getPrivateKeyButton);
}
getPrivateKeyButton.setVisible(true);
showHideLink.setVisible(false);
@@ -58,7 +58,7 @@ public class MnemonicKeystoreImportPane extends MnemonicKeystorePane {
importButton = new SplitMenuButton();
importButton.setAlignment(Pos.CENTER_RIGHT);
importButton.setText("Import Keystore");
importButton.getStyleClass().add("default-button");
setDefaultButton(importButton);
importButton.setOnAction(event -> {
importButton.setDisable(true);
importKeystore(getDefaultDerivation(), false);
@@ -196,7 +196,7 @@ public class MnemonicShareKeystoreImportPane extends MnemonicKeystorePane {
importButton = new SplitMenuButton();
importButton.setAlignment(Pos.CENTER_RIGHT);
importButton.setText("Import Keystore");
importButton.getStyleClass().add("default-button");
setDefaultButton(importButton);
importButton.setOnAction(event -> {
importButton.setDisable(true);
importKeystore(getDefaultDerivation(), false);
@@ -5,6 +5,7 @@ import com.sparrowwallet.drongo.wallet.Wallet;
import com.sparrowwallet.drongo.wallet.WalletModel;
import com.sparrowwallet.sparrow.AppServices;
import javafx.application.Platform;
import javafx.collections.ListChangeListener;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
@@ -182,6 +183,22 @@ public class TitledDescriptionPane extends TitledPane {
});
}
protected static void setDefaultButton(ButtonBase button) {
button.getStyleClass().add("default-button");
if(button instanceof SplitMenuButton splitMenuButton) {
for(MenuItem item : splitMenuButton.getItems()) {
item.getStyleClass().add("default-button");
}
splitMenuButton.getItems().addListener((ListChangeListener<MenuItem>) c -> {
while(c.next()) {
for(MenuItem item : c.getAddedSubList()) {
item.getStyleClass().add("default-button");
}
}
});
}
}
protected static int getAccount(Wallet wallet, KeyDerivation requiredDerivation) {
if(wallet == null || requiredDerivation == null) {
return 0;
@@ -79,7 +79,7 @@ public class XprvKeystoreImportPane extends TitledDescriptionPane {
importButton = new SplitMenuButton();
importButton.setAlignment(Pos.CENTER_RIGHT);
importButton.setText("Import Keystore");
importButton.getStyleClass().add("default-button");
setDefaultButton(importButton);
importButton.setOnAction(event -> {
importButton.setDisable(true);
importKeystore(getDefaultDerivation());
@@ -38,7 +38,7 @@
-fx-base: -fx-default-button;
}
.split-menu-button.default-button > .label {
.split-menu-button.default-button > .label, .menu-item.default-button > .label {
-fx-text-fill: white;
}