From aa91e263caed699a3f5fc4e35babb459f10c0b95 Mon Sep 17 00:00:00 2001 From: crschnick Date: Thu, 27 Jun 2024 15:15:43 +0000 Subject: [PATCH] Various fixes --- .../io/xpipe/app/browser/BrowserTransferComp.java | 11 +++++++++-- .../io/xpipe/app/browser/BrowserTransferModel.java | 6 ++++-- .../io/xpipe/app/browser/fs/OpenFileSystemModel.java | 5 ++++- .../io/xpipe/app/comp/store/StoreEntryListComp.java | 2 +- .../java/io/xpipe/app/core/mode/OperationMode.java | 3 +++ .../java/io/xpipe/app/core/mode/PlatformMode.java | 3 --- .../java/io/xpipe/app/fxcomps/impl/ScrollComp.java | 1 + lang/app/strings/translations_da.properties | 1 + lang/app/strings/translations_de.properties | 1 + lang/app/strings/translations_en.properties | 3 ++- lang/app/strings/translations_es.properties | 1 + lang/app/strings/translations_fr.properties | 1 + lang/app/strings/translations_it.properties | 1 + lang/app/strings/translations_ja.properties | 1 + lang/app/strings/translations_nl.properties | 1 + lang/app/strings/translations_pt.properties | 1 + lang/app/strings/translations_ru.properties | 1 + lang/app/strings/translations_tr.properties | 1 + lang/app/strings/translations_zh.properties | 1 + 19 files changed, 35 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java index 822e8032b..eb8c72892 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java @@ -12,6 +12,8 @@ import io.xpipe.app.fxcomps.impl.*; import io.xpipe.app.fxcomps.util.DerivedObservableList; import io.xpipe.app.fxcomps.util.PlatformThread; +import io.xpipe.app.util.ThreadHelper; +import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.collections.FXCollections; import javafx.geometry.Insets; @@ -89,7 +91,8 @@ public class BrowserTransferComp extends SimpleComp { var clearButton = new IconButtonComp("mdi2c-close", () -> { model.clear(); }) - .hide(Bindings.isEmpty(syncItems)); + .hide(Bindings.isEmpty(syncItems)) + .tooltipKey("clearTransferDescription"); var bottom = new HorizontalComp(List.of(Comp.hspacer(), dragNotice, Comp.hspacer(), downloadButton, Comp.hspacer(4), clearButton)); @@ -190,7 +193,11 @@ public class BrowserTransferComp extends SimpleComp { return; } - model.clear(); + Platform.runLater(() -> { + ThreadHelper.runAsync(() -> { + model.clear(); + }); + }); event.consume(); }); }), diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java index 60c763cc1..2ba7572da 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java @@ -63,8 +63,10 @@ public class BrowserTransferModel { } public void clear() { - cleanDirectory(); - items.clear(); + executor.submit(() -> { + cleanDirectory(); + items.clear(); + }); } public void drop(OpenFileSystemModel model, List entries) { diff --git a/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemModel.java b/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemModel.java index e3bd9efd3..7067f8e98 100644 --- a/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemModel.java +++ b/app/src/main/java/io/xpipe/app/browser/fs/OpenFileSystemModel.java @@ -85,11 +85,14 @@ public final class OpenFileSystemModel extends BrowserSessionTab { browserModel.closeAsync(this); }); } - fs.open(); this.fileSystem = fs; this.cache = new OpenFileSystemCache(this); diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListComp.java index 4718088d4..b0e641713 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreEntryListComp.java @@ -50,7 +50,6 @@ public class StoreEntryListComp extends SimpleComp { StoreViewState.get().getAllEntries().getList(), StoreViewState.get().getActiveCategory()); var map = new LinkedHashMap, ObservableValue>(); - map.put(new StoreIntroComp(), showIntro); map.put( new StoreNotFoundComp(), Bindings.and( @@ -66,6 +65,7 @@ public class StoreEntryListComp extends SimpleComp { .getCurrentTopLevelSection() .getShownChildren() .getList()))); + map.put(new StoreIntroComp(), showIntro); return new MultiContentComp(map).createRegion(); } diff --git a/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java b/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java index 0eb66c640..874a45420 100644 --- a/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java +++ b/app/src/main/java/io/xpipe/app/core/mode/OperationMode.java @@ -5,6 +5,7 @@ import io.xpipe.app.core.*; import io.xpipe.app.core.check.AppDebugModeCheck; import io.xpipe.app.core.check.AppTempCheck; import io.xpipe.app.core.check.AppUserDirectoryCheck; +import io.xpipe.app.core.window.ModifiedStage; import io.xpipe.app.issue.*; import io.xpipe.app.launcher.LauncherCommand; import io.xpipe.app.prefs.AppPrefs; @@ -114,6 +115,8 @@ public abstract class OperationMode { AppExtensionManager.init(true); AppI18n.init(); AppPrefs.initLocal(); + // Register stage theming early to make it apply for any potential early popups + ModifiedStage.init(); AppBeaconServer.setupPort(); TrackEvent.info("Finished initial setup"); } catch (Throwable ex) { diff --git a/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java b/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java index 3680586c9..0e77b66e1 100644 --- a/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java +++ b/app/src/main/java/io/xpipe/app/core/mode/PlatformMode.java @@ -3,13 +3,11 @@ package io.xpipe.app.core.mode; import io.xpipe.app.comp.store.StoreViewState; import io.xpipe.app.core.*; import io.xpipe.app.core.check.AppFontLoadingCheck; -import io.xpipe.app.core.window.ModifiedStage; import io.xpipe.app.issue.TrackEvent; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.update.UpdateAvailableAlert; import io.xpipe.app.util.PlatformState; import io.xpipe.app.util.ThreadHelper; - import javafx.application.Application; public abstract class PlatformMode extends OperationMode { @@ -35,7 +33,6 @@ public abstract class PlatformMode extends OperationMode { AppStyle.init(); AppImages.init(); AppLayoutModel.init(); - ModifiedStage.init(); TrackEvent.info("Finished essential component initialization before platform"); TrackEvent.info("Launching application ..."); diff --git a/app/src/main/java/io/xpipe/app/fxcomps/impl/ScrollComp.java b/app/src/main/java/io/xpipe/app/fxcomps/impl/ScrollComp.java index 535ed53c9..40f5ee2ee 100644 --- a/app/src/main/java/io/xpipe/app/fxcomps/impl/ScrollComp.java +++ b/app/src/main/java/io/xpipe/app/fxcomps/impl/ScrollComp.java @@ -27,6 +27,7 @@ public class ScrollComp extends Comp> { sp.setFitToWidth(true); sp.getStyleClass().add("scroll-comp"); sp.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS); + sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); sp.setSkin(new ScrollPaneSkin(sp)); ScrollBar bar = (ScrollBar) sp.lookup(".scroll-bar:vertical"); diff --git a/lang/app/strings/translations_da.properties b/lang/app/strings/translations_da.properties index 6234b103e..d2c3dddbe 100644 --- a/lang/app/strings/translations_da.properties +++ b/lang/app/strings/translations_da.properties @@ -481,3 +481,4 @@ enableGitStoragePtbDisabled=Git-synkronisering er deaktiveret for offentlige tes copyId=Kopi ID requireDoubleClickForConnections=Kræver dobbeltklik for forbindelser requireDoubleClickForConnectionsDescription=Hvis den er aktiveret, skal du dobbeltklikke på forbindelser for at starte dem. Det er nyttigt, hvis man er vant til at dobbeltklikke på ting. +clearTransferDescription=Ryd valg diff --git a/lang/app/strings/translations_de.properties b/lang/app/strings/translations_de.properties index 4beb7991f..5ac80370b 100644 --- a/lang/app/strings/translations_de.properties +++ b/lang/app/strings/translations_de.properties @@ -475,3 +475,4 @@ enableGitStoragePtbDisabled=Die Git-Synchronisierung ist für öffentliche Test- copyId=ID kopieren requireDoubleClickForConnections=Doppelklick für Verbindungen erforderlich requireDoubleClickForConnectionsDescription=Wenn diese Funktion aktiviert ist, musst du auf die Verbindungen doppelklicken, um sie zu starten. Das ist nützlich, wenn du es gewohnt bist, auf Dinge doppelt zu klicken. +clearTransferDescription=Auswahl löschen diff --git a/lang/app/strings/translations_en.properties b/lang/app/strings/translations_en.properties index dad38eef3..e953bb8d9 100644 --- a/lang/app/strings/translations_en.properties +++ b/lang/app/strings/translations_en.properties @@ -478,4 +478,5 @@ enabled=Enabled enableGitStoragePtbDisabled=Git synchronization is disabled for public test builds to prevent usage with regular release git repositories and to discourage using a PTB build as your daily driver. copyId=Copy ID requireDoubleClickForConnections=Require double click for connections -requireDoubleClickForConnectionsDescription=If enabled, you have to double-click connections to launch them. This is useful if you're used to double-clicking things. \ No newline at end of file +requireDoubleClickForConnectionsDescription=If enabled, you have to double-click connections to launch them. This is useful if you're used to double-clicking things. +clearTransferDescription=Clear selection diff --git a/lang/app/strings/translations_es.properties b/lang/app/strings/translations_es.properties index 44894fc42..5ee556745 100644 --- a/lang/app/strings/translations_es.properties +++ b/lang/app/strings/translations_es.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=La sincronización Git está desactivada para las co copyId=ID de copia requireDoubleClickForConnections=Requiere doble clic para las conexiones requireDoubleClickForConnectionsDescription=Si está activado, tienes que hacer doble clic en las conexiones para iniciarlas. Esto es útil si estás acostumbrado a hacer doble clic en las cosas. +clearTransferDescription=Borrar selección diff --git a/lang/app/strings/translations_fr.properties b/lang/app/strings/translations_fr.properties index 930bbe8d6..3bca4cd0c 100644 --- a/lang/app/strings/translations_fr.properties +++ b/lang/app/strings/translations_fr.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=La synchronisation Git est désactivée pour les ver copyId=ID de copie requireDoubleClickForConnections=Nécessite un double clic pour les connexions requireDoubleClickForConnectionsDescription=Si cette option est activée, tu dois double-cliquer sur les connexions pour les lancer. C'est utile si tu as l'habitude de double-cliquer sur les choses. +clearTransferDescription=Effacer la sélection diff --git a/lang/app/strings/translations_it.properties b/lang/app/strings/translations_it.properties index 194b25cb8..89665b4f6 100644 --- a/lang/app/strings/translations_it.properties +++ b/lang/app/strings/translations_it.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=La sincronizzazione Git è disabilitata per le build copyId=Copia ID requireDoubleClickForConnections=Richiede un doppio clic per le connessioni requireDoubleClickForConnectionsDescription=Se abilitato, devi fare doppio clic sulle connessioni per avviarle. Questo è utile se sei abituato a fare doppio clic. +clearTransferDescription=Cancella la selezione diff --git a/lang/app/strings/translations_ja.properties b/lang/app/strings/translations_ja.properties index abb923649..ab284f0de 100644 --- a/lang/app/strings/translations_ja.properties +++ b/lang/app/strings/translations_ja.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=Gitの同期をパブリックテストビルドで copyId=コピーID requireDoubleClickForConnections=接続にはダブルクリックが必要 requireDoubleClickForConnectionsDescription=有効にすると、接続をダブルクリックしないと起動しなくなる。ダブルクリックに慣れている人には便利な機能だ。 +clearTransferDescription=選択範囲をクリアする diff --git a/lang/app/strings/translations_nl.properties b/lang/app/strings/translations_nl.properties index d3ae68b05..75fa9d3d0 100644 --- a/lang/app/strings/translations_nl.properties +++ b/lang/app/strings/translations_nl.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=Git synchronisatie is uitgeschakeld voor publieke te copyId=ID kopiëren requireDoubleClickForConnections=Dubbelklikken vereist voor verbindingen requireDoubleClickForConnectionsDescription=Als dit is ingeschakeld, moet je dubbelklikken op verbindingen om ze te starten. Dit is handig als je gewend bent om op dingen te dubbelklikken. +clearTransferDescription=Selectie wissen diff --git a/lang/app/strings/translations_pt.properties b/lang/app/strings/translations_pt.properties index b1ab5b11c..b1e3bdb00 100644 --- a/lang/app/strings/translations_pt.properties +++ b/lang/app/strings/translations_pt.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=A sincronização do Git está desactivada para comp copyId=ID de cópia requireDoubleClickForConnections=Exige duplo clique para ligações requireDoubleClickForConnectionsDescription=Se estiver ativado, tens de fazer duplo clique nas ligações para as iniciar. Isto é útil se estiveres habituado a fazer duplo clique em coisas. +clearTransferDescription=Limpar seleção diff --git a/lang/app/strings/translations_ru.properties b/lang/app/strings/translations_ru.properties index 8f1aea2ea..bb396d21d 100644 --- a/lang/app/strings/translations_ru.properties +++ b/lang/app/strings/translations_ru.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=Git-синхронизация отключена д copyId=Идентификатор копии requireDoubleClickForConnections=Требуется двойной щелчок для подключения requireDoubleClickForConnectionsDescription=Если эта опция включена, тебе придется дважды щелкнуть по соединениям, чтобы запустить их. Это полезно, если ты привык все запускать двойным щелчком. +clearTransferDescription=Четкий выбор diff --git a/lang/app/strings/translations_tr.properties b/lang/app/strings/translations_tr.properties index 3075daa81..8f26bf3ea 100644 --- a/lang/app/strings/translations_tr.properties +++ b/lang/app/strings/translations_tr.properties @@ -463,3 +463,4 @@ enableGitStoragePtbDisabled=Git senkronizasyonu, normal sürüm git depoları il copyId=Kopya Kimliği requireDoubleClickForConnections=Bağlantılar için çift tıklama gerektir requireDoubleClickForConnectionsDescription=Etkinleştirilirse, bağlantıları başlatmak için çift tıklamanız gerekir. Bu, bir şeyleri çift tıklamaya alışkınsanız kullanışlıdır. +clearTransferDescription=Seçimi temizle diff --git a/lang/app/strings/translations_zh.properties b/lang/app/strings/translations_zh.properties index 7c6dddb44..3a797a7f6 100644 --- a/lang/app/strings/translations_zh.properties +++ b/lang/app/strings/translations_zh.properties @@ -462,3 +462,4 @@ enableGitStoragePtbDisabled=公共测试版已禁用 Git 同步功能,以防 copyId=复制 ID requireDoubleClickForConnections=要求双击连接 requireDoubleClickForConnectionsDescription=如果启用,则必须双击连接才能启动。如果您习惯双击事物,这将非常有用。 +clearTransferDescription=清除选择