mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-09-26 18:35:43 +00:00
Icon chooser fixes
This commit is contained in:
@@ -60,12 +60,16 @@ public abstract class DialogComp extends Comp<CompStructure<Region>> {
|
||||
.addAll(customButtons().stream()
|
||||
.map(buttonComp -> buttonComp.createRegion())
|
||||
.toList());
|
||||
var nextButton = new ButtonComp(AppI18n.observable(finishKey()), null, this::finish)
|
||||
var nextButton = finishButton();
|
||||
buttons.getChildren().add(nextButton.createRegion());
|
||||
return buttons;
|
||||
}
|
||||
|
||||
protected Comp<?> finishButton() {
|
||||
return new ButtonComp(AppI18n.observable(finishKey()), null, this::finish)
|
||||
.apply(struc -> struc.get().setDefaultButton(true))
|
||||
.styleClass(Styles.ACCENT)
|
||||
.styleClass("next");
|
||||
buttons.getChildren().add(nextButton.createRegion());
|
||||
return buttons;
|
||||
}
|
||||
|
||||
protected String finishKey() {
|
||||
|
||||
@@ -1,35 +1,41 @@
|
||||
package io.xpipe.app.comp.store;
|
||||
|
||||
import io.xpipe.app.comp.base.ButtonComp;
|
||||
import io.xpipe.app.comp.base.DialogComp;
|
||||
import io.xpipe.app.core.AppI18n;
|
||||
import io.xpipe.app.core.window.AppWindowHelper;
|
||||
import io.xpipe.app.fxcomps.Comp;
|
||||
import io.xpipe.app.fxcomps.SimpleComp;
|
||||
import io.xpipe.app.fxcomps.impl.FilterComp;
|
||||
import io.xpipe.app.fxcomps.impl.HorizontalComp;
|
||||
import io.xpipe.app.resources.SystemIcon;
|
||||
import io.xpipe.app.resources.SystemIcons;
|
||||
import io.xpipe.app.storage.DataStoreEntry;
|
||||
import javafx.beans.property.Property;
|
||||
import io.xpipe.app.util.Hyperlinks;
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.scene.layout.Region;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
import org.kordamp.ikonli.javafx.FontIcon;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class StoreIconChoiceDialogComp extends SimpleComp {
|
||||
|
||||
public static void show(DataStoreEntry entry) {
|
||||
SystemIcons.load();
|
||||
var icon = new SimpleObjectProperty<>(SystemIcons.getForId(entry.getIcon()).orElse(null));
|
||||
var window = AppWindowHelper.sideWindow(AppI18n.get("chooseCustomIcon"), stage -> new StoreIconChoiceDialogComp(icon, entry,stage),true,null);
|
||||
var window = AppWindowHelper.sideWindow(AppI18n.get("chooseCustomIcon"), stage -> new StoreIconChoiceDialogComp(entry,stage),true,null);
|
||||
window.initModality(Modality.APPLICATION_MODAL);
|
||||
window.show();
|
||||
}
|
||||
|
||||
private final Property<SystemIcon> selected;
|
||||
private final ObjectProperty<SystemIcon> selected = new SimpleObjectProperty<>();
|
||||
private final DataStoreEntry entry;
|
||||
private final Stage dialogStage;
|
||||
|
||||
public StoreIconChoiceDialogComp(Property<SystemIcon> selected, DataStoreEntry entry, Stage dialogStage) {
|
||||
this.selected = selected;
|
||||
public StoreIconChoiceDialogComp(DataStoreEntry entry, Stage dialogStage) {
|
||||
this.entry = entry;
|
||||
this.dialogStage = dialogStage;
|
||||
}
|
||||
@@ -43,11 +49,13 @@ public class StoreIconChoiceDialogComp extends SimpleComp {
|
||||
event.consume();
|
||||
});
|
||||
});
|
||||
var github = new ButtonComp(null, new FontIcon("mdi2g-github"), () -> {
|
||||
Hyperlinks.open(Hyperlinks.SELFHST_ICONS);
|
||||
}).grow(false, true);
|
||||
var dialog = new DialogComp() {
|
||||
@Override
|
||||
protected void finish() {
|
||||
var icon = selected.getValue().getIconName();
|
||||
entry.setIcon(icon);
|
||||
entry.setIcon(selected.get() != null ? selected.getValue().getIconName() : null);
|
||||
dialogStage.close();
|
||||
}
|
||||
|
||||
@@ -60,7 +68,16 @@ public class StoreIconChoiceDialogComp extends SimpleComp {
|
||||
|
||||
@Override
|
||||
public Comp<?> bottom() {
|
||||
return filter;
|
||||
var clear = new ButtonComp(AppI18n.observable("clear"),() -> {
|
||||
selected.setValue(null);
|
||||
finish();
|
||||
}).grow(false, true);
|
||||
return new HorizontalComp(List.of(github, filter.hgrow(), clear)).spacing(10);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Comp<?> finishButton() {
|
||||
return super.finishButton().disable(selected.isNull());
|
||||
}
|
||||
};
|
||||
dialog.prefWidth(600);
|
||||
|
||||
@@ -12,6 +12,7 @@ public class Hyperlinks {
|
||||
public static final String SECURITY = "https://docs.xpipe.io/security";
|
||||
public static final String TRANSLATE = "https://github.com/xpipe-io/xpipe/tree/master/lang";
|
||||
public static final String DISCORD = "https://discord.gg/8y89vS8cRb";
|
||||
public static final String SELFHST_ICONS = "https://github.com/selfhst/icons";
|
||||
public static final String SLACK =
|
||||
"https://join.slack.com/t/XPipe/shared_invite/zt-1awjq0t5j-5i4UjNJfNe1VN4b_auu6Cg";
|
||||
|
||||
|
||||
@@ -511,3 +511,5 @@ confirmVaultUnencryptHeader=Vil du virkelig deaktivere avanceret vault-krypterin
|
||||
confirmVaultUnencryptContent=Dette fjerner den ekstra kryptering for lagrede data og overskriver eksisterende data.
|
||||
enableHttpApi=Aktiver HTTP API
|
||||
enableHttpApiDescription=Aktiverer API'en, så eksterne programmer kan kalde XPipe-dæmonen for at udføre handlinger med dine administrerede forbindelser.
|
||||
chooseCustomIcon=Vælg et brugerdefineret ikon
|
||||
clear=Rydde
|
||||
|
||||
@@ -505,3 +505,5 @@ confirmVaultUnencryptHeader=Willst du die erweiterte Tresorverschlüsselung wirk
|
||||
confirmVaultUnencryptContent=Dadurch wird die zusätzliche Verschlüsselung für gespeicherte Daten entfernt und die vorhandenen Daten werden überschrieben.
|
||||
enableHttpApi=HTTP-API aktivieren
|
||||
enableHttpApiDescription=Aktiviert die API, damit externe Programme den XPipe-Daemon aufrufen können, um Aktionen mit deinen verwalteten Verbindungen durchzuführen.
|
||||
chooseCustomIcon=Benutzerdefiniertes Symbol auswählen
|
||||
clear=Löschen
|
||||
|
||||
@@ -509,4 +509,6 @@ confirmVaultUnencryptHeader=Do you really want to disable advanced vault encrypt
|
||||
confirmVaultUnencryptContent=This will remove the additional encryption for stored data and will overwrite existing data.
|
||||
enableHttpApi=Enable HTTP API
|
||||
enableHttpApiDescription=Enables the API, allowing external programs to call the XPipe daemon to perform actions with your managed connections.
|
||||
chooseCustomIcon=Choose custom icon
|
||||
chooseCustomIcon=Choose custom icon
|
||||
#context: verb, to delete
|
||||
clear=Clear
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=¿Realmente quieres desactivar la encriptación avan
|
||||
confirmVaultUnencryptContent=Esto eliminará la encriptación adicional para los datos almacenados y sobrescribirá los datos existentes.
|
||||
enableHttpApi=Activar la API HTTP
|
||||
enableHttpApiDescription=Habilita la API, permitiendo que programas externos llamen al demonio XPipe para realizar acciones con tus conexiones gestionadas.
|
||||
chooseCustomIcon=Elegir icono personalizado
|
||||
clear=Borrar
|
||||
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=Veux-tu vraiment désactiver le cryptage avancé de
|
||||
confirmVaultUnencryptContent=Cela supprimera le cryptage supplémentaire pour les données stockées et écrasera les données existantes.
|
||||
enableHttpApi=Activer l'API HTTP
|
||||
enableHttpApiDescription=Active l'API, ce qui permet aux programmes externes d'appeler le démon XPipe pour effectuer des actions avec tes connexions gérées.
|
||||
chooseCustomIcon=Choisis une icône personnalisée
|
||||
clear=Effacer
|
||||
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=Vuoi davvero disabilitare la crittografia avanzata d
|
||||
confirmVaultUnencryptContent=Questo rimuoverà la crittografia aggiuntiva per i dati memorizzati e sovrascriverà i dati esistenti.
|
||||
enableHttpApi=Abilita l'API HTTP
|
||||
enableHttpApiDescription=Abilita l'API, consentendo ai programmi esterni di chiamare il demone XPipe per eseguire azioni con le connessioni gestite.
|
||||
chooseCustomIcon=Scegli un'icona personalizzata
|
||||
clear=Cancellare
|
||||
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=本当に高度なデータ保管庫の暗号化を
|
||||
confirmVaultUnencryptContent=これにより、保存データの暗号化が解除され、既存のデータが上書きされる。
|
||||
enableHttpApi=HTTP APIを有効にする
|
||||
enableHttpApiDescription=APIを有効にし、外部プログラムからXPipeデーモンを呼び出して、管理されている接続に対してアクションを実行できるようにする。
|
||||
chooseCustomIcon=カスタムアイコンを選ぶ
|
||||
clear=消去する
|
||||
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=Wil je echt geavanceerde kluisversleuteling uitschak
|
||||
confirmVaultUnencryptContent=Hierdoor wordt de extra codering voor opgeslagen gegevens verwijderd en worden bestaande gegevens overschreven.
|
||||
enableHttpApi=HTTP API inschakelen
|
||||
enableHttpApiDescription=Schakelt de API in, waardoor externe programma's de XPipe daemon kunnen aanroepen om acties uit te voeren met je beheerde verbindingen.
|
||||
chooseCustomIcon=Aangepast pictogram kiezen
|
||||
clear=Wis
|
||||
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=Queres mesmo desativar a encriptação avançada da
|
||||
confirmVaultUnencryptContent=Isto irá remover a encriptação adicional dos dados armazenados e irá substituir os dados existentes.
|
||||
enableHttpApi=Ativar a API HTTP
|
||||
enableHttpApiDescription=Habilita a API, permitindo que programas externos chamem o daemon XPipe para executar ações com suas conexões gerenciadas.
|
||||
chooseCustomIcon=Escolhe um ícone personalizado
|
||||
clear=Limpar
|
||||
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=Ты действительно хочешь отк
|
||||
confirmVaultUnencryptContent=Это уберет дополнительное шифрование для сохраненных данных и перезапишет существующие.
|
||||
enableHttpApi=Включить HTTP API
|
||||
enableHttpApiDescription=Включает API, позволяя внешним программам вызывать демона XPipe для выполнения действий с твоими управляемыми соединениями.
|
||||
chooseCustomIcon=Выберите пользовательскую иконку
|
||||
clear=Очистить
|
||||
|
||||
@@ -493,3 +493,5 @@ confirmVaultUnencryptHeader=Gelişmiş kasa şifrelemesini gerçekten devre dı
|
||||
confirmVaultUnencryptContent=Bu, depolanan veriler için ek şifrelemeyi kaldıracak ve mevcut verilerin üzerine yazacaktır.
|
||||
enableHttpApi=HTTP API'yi Etkinleştir
|
||||
enableHttpApiDescription=API'yi etkinleştirerek harici programların yönetilen bağlantılarınızla eylemler gerçekleştirmek için XPipe arka plan programını çağırmasına izin verir.
|
||||
chooseCustomIcon=Özel simge seçin
|
||||
clear=Temiz
|
||||
|
||||
@@ -492,3 +492,5 @@ confirmVaultUnencryptHeader=您真的想禁用高级保险库加密吗?
|
||||
confirmVaultUnencryptContent=这将取消对存储数据的额外加密,并覆盖现有数据。
|
||||
enableHttpApi=启用 HTTP API
|
||||
enableHttpApiDescription=启用 API,允许外部程序调用 XPipe 守护进程,对管理连接执行操作。
|
||||
chooseCustomIcon=选择自定义图标
|
||||
clear=清除
|
||||
|
||||
Reference in New Issue
Block a user