diff --git a/app/src/main/java/io/xpipe/app/action/QuickConnectProvider.java b/app/src/main/java/io/xpipe/app/action/QuickConnectProvider.java index a4186c19c..bbe15def4 100644 --- a/app/src/main/java/io/xpipe/app/action/QuickConnectProvider.java +++ b/app/src/main/java/io/xpipe/app/action/QuickConnectProvider.java @@ -17,10 +17,14 @@ public interface QuickConnectProvider extends ActionProvider { } static Optional find(String input) { - return ActionProvider.ALL.stream().filter(actionProvider -> actionProvider instanceof QuickConnectProvider qcp && - (input.length() <= qcp.getName().length() && input.toLowerCase().startsWith(qcp.getName().toLowerCase()) || - qcp.getName().toLowerCase().startsWith(input.toLowerCase()))) - .findFirst().map(qcp -> (QuickConnectProvider) qcp); + return ActionProvider.ALL.stream() + .filter(actionProvider -> actionProvider instanceof QuickConnectProvider qcp + && (input.length() <= qcp.getName().length() + && input.toLowerCase() + .startsWith(qcp.getName().toLowerCase()) + || qcp.getName().toLowerCase().startsWith(input.toLowerCase()))) + .findFirst() + .map(qcp -> (QuickConnectProvider) qcp); } String getName(); diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserFullSessionComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserFullSessionComp.java index e11b8cd54..b1c5652b9 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserFullSessionComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserFullSessionComp.java @@ -24,7 +24,6 @@ import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; import javafx.geometry.Insets; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; diff --git a/app/src/main/java/io/xpipe/app/browser/file/BrowserQuickAccessContextMenu.java b/app/src/main/java/io/xpipe/app/browser/file/BrowserQuickAccessContextMenu.java index 100d5fb2e..9d709f256 100644 --- a/app/src/main/java/io/xpipe/app/browser/file/BrowserQuickAccessContextMenu.java +++ b/app/src/main/java/io/xpipe/app/browser/file/BrowserQuickAccessContextMenu.java @@ -14,7 +14,6 @@ import io.xpipe.app.util.ThreadHelper; import javafx.application.Platform; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.ListChangeListener; -import javafx.event.EventType; import javafx.geometry.Side; import javafx.scene.Node; import javafx.scene.control.ContextMenu; @@ -293,7 +292,8 @@ public class BrowserQuickAccessContextMenu extends ContextMenu { } }); contextMenu.addEventFilter(MouseEvent.ANY, event -> { - var mouseEvent = event.getEventType() == MouseEvent.MOUSE_PRESSED || event.getEventType() == MouseEvent.MOUSE_MOVED; + var mouseEvent = event.getEventType() == MouseEvent.MOUSE_PRESSED + || event.getEventType() == MouseEvent.MOUSE_MOVED; keyBasedNavigation = keyBasedNavigation && !mouseEvent; if (keyBasedNavigation) { event.consume(); diff --git a/app/src/main/java/io/xpipe/app/comp/base/AppLayoutComp.java b/app/src/main/java/io/xpipe/app/comp/base/AppLayoutComp.java index f72170e81..d2d640394 100644 --- a/app/src/main/java/io/xpipe/app/comp/base/AppLayoutComp.java +++ b/app/src/main/java/io/xpipe/app/comp/base/AppLayoutComp.java @@ -5,8 +5,8 @@ import io.xpipe.app.comp.RegionStructure; import io.xpipe.app.comp.RegionStructureBuilder; import io.xpipe.app.core.AppLayoutModel; import io.xpipe.app.platform.PlatformThread; - import io.xpipe.app.terminal.TerminalDockHubManager; + import javafx.beans.binding.Bindings; import javafx.beans.value.ObservableValue; import javafx.scene.Node; diff --git a/app/src/main/java/io/xpipe/app/cred/SshIdentityStateManager.java b/app/src/main/java/io/xpipe/app/cred/SshIdentityStateManager.java index d0276ce1c..59bd94f86 100644 --- a/app/src/main/java/io/xpipe/app/cred/SshIdentityStateManager.java +++ b/app/src/main/java/io/xpipe/app/cred/SshIdentityStateManager.java @@ -4,7 +4,6 @@ import io.xpipe.app.issue.ErrorAction; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.ErrorEventFactory; import io.xpipe.app.process.*; -import io.xpipe.app.util.DataStoreFormatter; import io.xpipe.core.FilePath; import io.xpipe.core.OsType; @@ -113,13 +112,11 @@ public class SshIdentityStateManager { var r = c.readStdoutAndStderr(); if (c.getExitCode() != 0) { var posixMessage = sc.getOsType() != OsType.WINDOWS - ? authSock != null - ? " at the socket location " + authSock - : "" + ? authSock != null ? " at the socket location " + authSock : "" : ""; var joined = (!r[0].isEmpty() ? r[0] + "\n" : "") + r[1]; - var ex = new IllegalStateException("Unable to list agent identities via command ssh-add -l:\n" + joined + "\n\n" - + "Please check whether the agent is running correctly%s.".formatted(posixMessage)); + var ex = new IllegalStateException("Unable to list agent identities via command ssh-add -l:\n" + joined + + "\n\n" + "Please check whether the agent is running correctly%s.".formatted(posixMessage)); var eventBuilder = ErrorEventFactory.fromThrowable(ex).expected(); ErrorEventFactory.preconfigure(eventBuilder); throw ex; diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreChoicePopover.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreChoicePopover.java index 02794de3c..9469ae23a 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreChoicePopover.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreChoicePopover.java @@ -18,7 +18,6 @@ import javafx.beans.binding.Bindings; import javafx.beans.property.Property; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; import javafx.collections.ListChangeListener; import javafx.geometry.Insets; import javafx.scene.Node; @@ -145,7 +144,9 @@ public class StoreChoicePopover { explicitCategory == null, ignored -> true) .style(Styles.LEFT_PILL); - var filter = FilterComp.ofStoreFilter(storeFilter).style(Styles.CENTER_PILL).hgrow(); + var filter = FilterComp.ofStoreFilter(storeFilter) + .style(Styles.CENTER_PILL) + .hgrow(); var addButton = RegionBuilder.of(() -> { var m = MenuHelper.createMenuButton(); diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilter.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilter.java index c6e983368..b01f4d60d 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilter.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilter.java @@ -14,7 +14,10 @@ public class StoreFilter { } var split = s.split(","); - var l = Arrays.stream(split).map(sub -> sub.strip()).filter(sub -> !sub.isEmpty()).toList(); + var l = Arrays.stream(split) + .map(sub -> sub.strip()) + .filter(sub -> !sub.isEmpty()) + .toList(); return new StoreFilter(l); } diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterFieldComp.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterFieldComp.java index e5c1524bc..9c5532e0c 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterFieldComp.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterFieldComp.java @@ -17,11 +17,11 @@ import javafx.scene.Cursor; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.Region; -import lombok.val; import atlantafx.base.controls.CustomTextField; import atlantafx.base.controls.Popover; import atlantafx.base.theme.Styles; +import lombok.val; import java.util.List; import java.util.Objects; @@ -65,17 +65,19 @@ public class StoreFilterFieldComp extends SimpleRegionBuilder { clearButton.setCursor(Cursor.DEFAULT); AppFontSizes.sm(clearButton); var searchButton = new IconButtonComp("mdi2m-magnify", () -> { - if (state.onApply()) { - field.clear(); - } - }).build(); + if (state.onApply()) { + field.clear(); + } + }) + .build(); searchButton.setCursor(Cursor.DEFAULT); AppFontSizes.sm(searchButton); - var launchButton = new IconButtonComp("mdi2p-play", () -> { - if (state.onApply()) { - field.clear(); - } - }).build(); + var launchButton = new IconButtonComp("mdi2p-play", () -> { + if (state.onApply()) { + field.clear(); + } + }) + .build(); launchButton.setCursor(Cursor.DEFAULT); AppFontSizes.sm(launchButton); diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterState.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterState.java index 93d7657d3..a911501b8 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterState.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterState.java @@ -12,11 +12,10 @@ import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.beans.value.ObservableBooleanValue; -import javafx.beans.value.ObservableStringValue; +import javafx.beans.value.ObservableValue; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.type.TypeFactory; -import javafx.beans.value.ObservableValue; import lombok.Getter; import java.net.URI; @@ -61,15 +60,25 @@ public class StoreFilterState { private final BooleanProperty forceFilter = new SimpleBooleanProperty(); @Getter - private final ObservableBooleanValue isSearchString = Bindings.createBooleanBinding(() -> { - return rawText.getValue() != null && rawText.getValue().length() > 2 && - (forceFilter.getValue() || (!isUrlString.getValue() && !isQuickConnectString.getValue())); - }, rawText, isQuickConnectString, isUrlString, forceFilter); + private final ObservableBooleanValue isSearchString = Bindings.createBooleanBinding( + () -> { + return rawText.getValue() != null + && rawText.getValue().length() > 2 + && (forceFilter.getValue() || (!isUrlString.getValue() && !isQuickConnectString.getValue())); + }, + rawText, + isQuickConnectString, + isUrlString, + forceFilter); @Getter - private final ObservableValue effectiveFilter = Bindings.createObjectBinding(() -> { - return isSearchString.get() ? StoreFilter.of(rawText.getValue()) : null; - }, rawText, isSearchString, forceFilter); + private final ObservableValue effectiveFilter = Bindings.createObjectBinding( + () -> { + return isSearchString.get() ? StoreFilter.of(rawText.getValue()) : null; + }, + rawText, + isSearchString, + forceFilter); private static StoreFilterState INSTANCE; @@ -87,7 +96,7 @@ public class StoreFilterState { INSTANCE.recentQuickConnections.setContent(recentQuickConnections); INSTANCE.rawText.subscribe(ignored -> { - INSTANCE.forceFilter.set(false); + INSTANCE.forceFilter.set(false); }); } @@ -171,7 +180,7 @@ public class StoreFilterState { forceFilter.set(true); return false; } - + var provider = QuickConnectProvider.find(rawText.getValue()); if (provider.isEmpty()) { return false; diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterStateComp.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterStateComp.java index 3fe873dc7..537ad4a76 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterStateComp.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreFilterStateComp.java @@ -44,10 +44,14 @@ public class StoreFilterStateComp extends SimpleRegionBuilder { var searchesEmpty = Bindings.isEmpty(searches); var searchesList = new ListBoxViewComp<>(searches, searches, s -> createButton(s, s), false); - var searchesPlaceholders = FXCollections.observableList(List.of(AppI18n.get("recentSearchesDescriptionNames"), - AppI18n.get("recentSearchesDescriptionTags"), AppI18n.get("recentSearchesDescriptionTypes"), - AppI18n.get("recentSearchesDescriptionState"), AppI18n.get("recentSearchesDescriptionJoin"))); - var searchesEmptyList = new ListBoxViewComp<>(searchesPlaceholders, searchesPlaceholders, s -> createButton(s, null), false); + var searchesPlaceholders = FXCollections.observableList(List.of( + AppI18n.get("recentSearchesDescriptionNames"), + AppI18n.get("recentSearchesDescriptionTags"), + AppI18n.get("recentSearchesDescriptionTypes"), + AppI18n.get("recentSearchesDescriptionState"), + AppI18n.get("recentSearchesDescriptionJoin"))); + var searchesEmptyList = + new ListBoxViewComp<>(searchesPlaceholders, searchesPlaceholders, s -> createButton(s, null), false); var quickConnections = state.getRecentQuickConnections().getList(); var quickConnectionsEmpty = Bindings.isEmpty(quickConnections); diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreSection.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreSection.java index a77483cd0..18a07e7b8 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreSection.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreSection.java @@ -203,16 +203,14 @@ public class StoreSection { var isBatchSelected = selected.contains(section.getWrapper()); - var matchesFilter = filterString == null - || section.matchesFilter(filterString.getValue()) - || l.stream().anyMatch(p -> p.matchesFilter(filterString.getValue())); + var matchesFilter = filter == null + || section.matchesFilter(filter.getValue()) + || l.stream().anyMatch(p -> p.matchesFilter(filter.getValue())); if (!isBatchSelected && !matchesFilter) { return false; } - var hasFilter = filterString != null - && filterString.getValue() != null - && filterString.getValue().length() > 0; + var hasFilter = filter != null && filter.getValue() != null; if (!isBatchSelected && !hasFilter) { var showProvider = true; try { @@ -229,28 +227,21 @@ public class StoreSection { return false; } - var matchesFilter = filter == null - || section.matchesFilter(filter.getValue()) - || l.stream().anyMatch(p -> p.matchesFilter(filter.getValue())); - if (!isBatchSelected && !matchesFilter) { - return false; - } + // Prevent updates for children on category switching by checking depth + var showCategory = showInCategory(category.getValue(), section.getWrapper()) || depth > 0; + if (!showCategory) { + return false; + } - var hasFilter = filter != null - && filter.getValue() != null; - if (!isBatchSelected && !hasFilter) { - var showProvider = true; - try { - showProvider = section.getWrapper() - .getEntry() - .getProvider() - .shouldShow(section.getWrapper()); - } catch (Exception ignored) { - } - if (!showProvider) { - return false; - } - } + // If this entry is already shown as root due to a different category than parent, don't + // show it + // again here + var notRoot = !DataStorage.get() + .isRootEntry( + section.getWrapper().getEntry(), category.getValue().getCategory()); + if (!notRoot) { + return false; + } return true; }; diff --git a/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java b/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java index 1e8d76f88..9426d5e23 100644 --- a/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java +++ b/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java @@ -19,10 +19,10 @@ import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; import javafx.collections.ListChangeListener; - import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; + import lombok.Getter; import org.kordamp.ikonli.javafx.FontIcon; import org.kordamp.ikonli.materialdesign2.MaterialDesignC; @@ -119,7 +119,8 @@ public class TerminalDockHubManager { : new Rect(rect.getX(), rect.getY() - topAdjust, rect.getW(), rect.getH() + topAdjust); }); private final AppLayoutModel.QueueEntry queueEntry = new AppLayoutModel.QueueEntry( - AppI18n.observable("toggleTerminalDock", new KeyCodeCombination(KeyCode.T, KeyCombination.SHORTCUT_DOWN).toString()), + AppI18n.observable( + "toggleTerminalDock", new KeyCodeCombination(KeyCode.T, KeyCombination.SHORTCUT_DOWN).toString()), new LabelGraphic.NodeGraphic(() -> { var inner = new FontIcon(); inner.iconCodeProperty() @@ -322,7 +323,7 @@ public class TerminalDockHubManager { if (showing.get()) { hideDock(); - } else { + } else { showDock(); } } diff --git a/lang/strings/translations_da.properties b/lang/strings/translations_da.properties index 0328484c6..e8921e13b 100644 --- a/lang/strings/translations_da.properties +++ b/lang/strings/translations_da.properties @@ -2009,6 +2009,8 @@ recentSearchesDescription=Filter for forbindelsesattributter recentSearchesDescriptionNames=, f.eks. "Lokal maskine" recentSearchesDescriptionTags=, f.eks. "my-custom-tag" recentSearchesDescriptionTypes=, f.eks. "Docker-container" +recentSearchesDescriptionState=, f.eks. "Kører" +recentSearchesDescriptionJoin=, kombineres med kommaer recentQuickConnections=Seneste hurtige forbindelser recentQuickConnectionsDescription=Hurtig forbindelse via streng recentUrls=Seneste URL'er diff --git a/lang/strings/translations_de.properties b/lang/strings/translations_de.properties index 099882713..674587538 100644 --- a/lang/strings/translations_de.properties +++ b/lang/strings/translations_de.properties @@ -2004,6 +2004,8 @@ recentSearchesDescription=Filter für Verbindungsattribute recentSearchesDescriptionNames=, z.B. "Lokaler Rechner" recentSearchesDescriptionTags=, z.B. "mein-benutzerdefinierter-Tag" recentSearchesDescriptionTypes=, z.B. "Docker Container" +recentSearchesDescriptionState=, z.B. "Läuft" +recentSearchesDescriptionJoin=, mit Kommas kombinieren recentQuickConnections=Neueste Schnellverbindungen recentQuickConnectionsDescription=Schnellverbindung über String recentUrls=Neueste URLs diff --git a/lang/strings/translations_es.properties b/lang/strings/translations_es.properties index f75592982..3f578fa9a 100644 --- a/lang/strings/translations_es.properties +++ b/lang/strings/translations_es.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Filtro de atributos de conexión recentSearchesDescriptionNames=, por ejemplo "Máquina local" recentSearchesDescriptionTags=, por ejemplo "mi-etiqueta-personalizada" recentSearchesDescriptionTypes=, por ejemplo "contenedor Docker". +recentSearchesDescriptionState=, por ejemplo "En ejecución" +recentSearchesDescriptionJoin=, se combinan con comas recentQuickConnections=Conexiones rápidas recientes recentQuickConnectionsDescription=Conexión rápida mediante cadena recentUrls=URL recientes diff --git a/lang/strings/translations_fr.properties b/lang/strings/translations_fr.properties index 842b2aed9..561133aeb 100644 --- a/lang/strings/translations_fr.properties +++ b/lang/strings/translations_fr.properties @@ -2008,6 +2008,8 @@ recentSearchesDescription=Filtre pour les attributs de connexion recentSearchesDescriptionNames=, par exemple "Machine locale" recentSearchesDescriptionTags=, par exemple "my-custom-tag" (mon étiquette personnalisée) recentSearchesDescriptionTypes=, par exemple "conteneur Docker" +recentSearchesDescriptionState=<état>, par exemple "en cours d'exécution" +recentSearchesDescriptionJoin=, se combinent avec des virgules recentQuickConnections=Connexions rapides récentes recentQuickConnectionsDescription=Connexion rapide via une chaîne de caractères recentUrls=URL récents diff --git a/lang/strings/translations_id.properties b/lang/strings/translations_id.properties index 7b9281767..562cc2255 100644 --- a/lang/strings/translations_id.properties +++ b/lang/strings/translations_id.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Menyaring atribut koneksi recentSearchesDescriptionNames=, misalnya "Mesin Lokal" recentSearchesDescriptionTags=, misalnya "tag-khusus saya" recentSearchesDescriptionTypes=, misalnya "Kontainer Docker" +recentSearchesDescriptionState=, misalnya "Berjalan" +recentSearchesDescriptionJoin=, digabungkan dengan koma recentQuickConnections=Sambungan cepat terbaru recentQuickConnectionsDescription=Sambungan cepat melalui string recentUrls=URL terbaru diff --git a/lang/strings/translations_it.properties b/lang/strings/translations_it.properties index 62ea66b68..bf14f0b1b 100644 --- a/lang/strings/translations_it.properties +++ b/lang/strings/translations_it.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Filtro per gli attributi della connessione recentSearchesDescriptionNames=, ad esempio "Macchina locale". recentSearchesDescriptionTags=, ad esempio "my-custom-tag". recentSearchesDescriptionTypes=, ad esempio "contenitore Docker". +recentSearchesDescriptionState=, ad esempio "In esecuzione". +recentSearchesDescriptionJoin=, combinati con le virgole recentQuickConnections=Connessioni rapide recenti recentQuickConnectionsDescription=Connessione rapida tramite stringa recentUrls=URL recenti diff --git a/lang/strings/translations_ja.properties b/lang/strings/translations_ja.properties index 1e0d0dc01..6ff15a01b 100644 --- a/lang/strings/translations_ja.properties +++ b/lang/strings/translations_ja.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=接続属性のフィルター recentSearchesDescriptionNames=<名前>、例:"ローカルマシン" recentSearchesDescriptionTags=<タグ>、例:"my-custom-tag" recentSearchesDescriptionTypes=<例:"Dockerコンテナ" +recentSearchesDescriptionState=<状態>(例:"実行中" +recentSearchesDescriptionJoin=, はカンマで結合する。 recentQuickConnections=最近のクイック接続 recentQuickConnectionsDescription=文字列によるクイック接続 recentUrls=最近のURL diff --git a/lang/strings/translations_ko.properties b/lang/strings/translations_ko.properties index b50ca7c40..b2e43d12f 100644 --- a/lang/strings/translations_ko.properties +++ b/lang/strings/translations_ko.properties @@ -2021,6 +2021,8 @@ recentSearchesDescription=연결 속성에 대한 필터 recentSearchesDescriptionNames=<이름>(예: "로컬 컴퓨터") recentSearchesDescriptionTags=<태그>(예: "내 사용자 지정 태그") recentSearchesDescriptionTypes=<유형>(예: "도커 컨테이너") +recentSearchesDescriptionState=<상태>, 예: "실행 중" +recentSearchesDescriptionJoin=<에스1>, <에스2>는 쉼표와 결합합니다 recentQuickConnections=최근 빠른 연결 recentQuickConnectionsDescription=문자열을 통한 빠른 연결 recentUrls=최근 URL diff --git a/lang/strings/translations_nl.properties b/lang/strings/translations_nl.properties index 336990827..1c17010f7 100644 --- a/lang/strings/translations_nl.properties +++ b/lang/strings/translations_nl.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Filter voor verbindingsattributen recentSearchesDescriptionNames=, bijvoorbeeld "Lokale machine". recentSearchesDescriptionTags=, bijvoorbeeld "my-custom-tag". recentSearchesDescriptionTypes=, bijvoorbeeld "Docker container". +recentSearchesDescriptionState=, bijvoorbeeld "Running". +recentSearchesDescriptionJoin=, combineren met komma's recentQuickConnections=Recente snelle verbindingen recentQuickConnectionsDescription=Snel verbinding maken via een string recentUrls=Recente URL's diff --git a/lang/strings/translations_pl.properties b/lang/strings/translations_pl.properties index d30791195..5ba1b91ff 100644 --- a/lang/strings/translations_pl.properties +++ b/lang/strings/translations_pl.properties @@ -1969,6 +1969,8 @@ recentSearchesDescription=Filtr atrybutów połączenia recentSearchesDescriptionNames=, np. "Maszyna lokalna" recentSearchesDescriptionTags=, np. "my-custom-tag". recentSearchesDescriptionTypes=, np. "kontener Docker". +recentSearchesDescriptionState=, np. "Uruchomiony" +recentSearchesDescriptionJoin=, połącz przecinkami recentQuickConnections=Ostatnie szybkie połączenia recentQuickConnectionsDescription=Szybkie połączenie przez ciąg znaków recentUrls=Najnowsze adresy URL diff --git a/lang/strings/translations_pt.properties b/lang/strings/translations_pt.properties index 0d0ee41b6..1f464fdf6 100644 --- a/lang/strings/translations_pt.properties +++ b/lang/strings/translations_pt.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Filtro para atributos de ligação recentSearchesDescriptionNames=, por exemplo, "Máquina local" recentSearchesDescriptionTags=, por exemplo, "my-custom-tag" recentSearchesDescriptionTypes=, por exemplo, "contentor Docker" +recentSearchesDescriptionState=, por exemplo, "A funcionar" +recentSearchesDescriptionJoin=, combina com vírgulas recentQuickConnections=Ligações rápidas recentes recentQuickConnectionsDescription=Ligação rápida através de uma cadeia de caracteres recentUrls=URLs recentes diff --git a/lang/strings/translations_ru.properties b/lang/strings/translations_ru.properties index 19e452120..df278df7c 100644 --- a/lang/strings/translations_ru.properties +++ b/lang/strings/translations_ru.properties @@ -2080,6 +2080,8 @@ recentSearchesDescription=Фильтр для атрибутов соедине recentSearchesDescriptionNames=<Имя>, например, "Локальная машина". recentSearchesDescriptionTags=<Тэг>, например "my-custom-tag". recentSearchesDescriptionTypes=<Тип>, например "контейнер Docker". +recentSearchesDescriptionState=<Состояние>, например, "Работает". +recentSearchesDescriptionJoin=, объединяются запятыми recentQuickConnections=Последние быстрые подключения recentQuickConnectionsDescription=Быстрое подключение через строку recentUrls=Последние URL-адреса diff --git a/lang/strings/translations_sv.properties b/lang/strings/translations_sv.properties index a29b1b73f..6379003fd 100644 --- a/lang/strings/translations_sv.properties +++ b/lang/strings/translations_sv.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Filter för anslutningsattribut recentSearchesDescriptionNames=, t.ex. "Lokal maskin" recentSearchesDescriptionTags=, t.ex. "min-anpassade-tagg" recentSearchesDescriptionTypes=, t.ex. "Docker-container" +recentSearchesDescriptionState=, t.ex. "Körs" +recentSearchesDescriptionJoin=, kombineras med kommatecken recentQuickConnections=Nya snabba anslutningar recentQuickConnectionsDescription=Snabbanslutning via sträng recentUrls=Senaste webbadresserna diff --git a/lang/strings/translations_tr.properties b/lang/strings/translations_tr.properties index c3dd0fd67..a544822d7 100644 --- a/lang/strings/translations_tr.properties +++ b/lang/strings/translations_tr.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Bağlantı öznitelikleri için filtre recentSearchesDescriptionNames=, örneğin "Yerel Makine" recentSearchesDescriptionTags=, örneğin "my-custom-tag" recentSearchesDescriptionTypes=, örneğin "Docker konteyner" +recentSearchesDescriptionState=, örneğin "Çalışıyor" +recentSearchesDescriptionJoin=, virgül ile birleştirilir recentQuickConnections=Son hızlı bağlantılar recentQuickConnectionsDescription=İp üzerinden hızlı bağlantı recentUrls=Son URL'ler diff --git a/lang/strings/translations_vi.properties b/lang/strings/translations_vi.properties index 8300f1eed..db9f145d4 100644 --- a/lang/strings/translations_vi.properties +++ b/lang/strings/translations_vi.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=Bộ lọc các thuộc tính kết nối recentSearchesDescriptionNames=<tên>, ví dụ: "Máy cục bộ" recentSearchesDescriptionTags=<tag>, ví dụ: "my-custom-tag" recentSearchesDescriptionTypes=<loại>, ví dụ: "Docker container" +recentSearchesDescriptionState=<trạng thái>, ví dụ: "Đang chạy" +recentSearchesDescriptionJoin=<s1>, <s2> kết hợp bằng dấu phẩy recentQuickConnections=Các kết nối nhanh gần đây recentQuickConnectionsDescription=Kết nối nhanh qua chuỗi recentUrls=Các URL gần đây diff --git a/lang/strings/translations_zh-Hans.properties b/lang/strings/translations_zh-Hans.properties index a46a7ed9d..4cfd9970a 100644 --- a/lang/strings/translations_zh-Hans.properties +++ b/lang/strings/translations_zh-Hans.properties @@ -2592,6 +2592,8 @@ recentSearchesDescription=连接属性过滤器 recentSearchesDescriptionNames=<名称>,例如 "本地机器"。 recentSearchesDescriptionTags=<标签>,例如 "我的自定义标签 recentSearchesDescriptionTypes=<类型>,如 "Docker 容器"。 +recentSearchesDescriptionState=<状态>,例如 "运行中"。 +recentSearchesDescriptionJoin= 用逗号组合 recentQuickConnections=最近的快速连接 recentQuickConnectionsDescription=通过字符串快速连接 recentUrls=最近的 URL diff --git a/lang/strings/translations_zh-Hant.properties b/lang/strings/translations_zh-Hant.properties index d87923bf9..691d0eab7 100644 --- a/lang/strings/translations_zh-Hant.properties +++ b/lang/strings/translations_zh-Hant.properties @@ -1968,6 +1968,8 @@ recentSearchesDescription=連線屬性篩選器 recentSearchesDescriptionNames=<名稱>,例如 「本機」。 recentSearchesDescriptionTags=, 例如 "my-custom-tag" recentSearchesDescriptionTypes=<類型>,例如 「Docker 容器」。 +recentSearchesDescriptionState=<狀態>,例如 「執行中」 +recentSearchesDescriptionJoin= 與逗號結合 recentQuickConnections=最近的快速連線 recentQuickConnectionsDescription=透過字串快速連線 recentUrls=最近的網址