diff --git a/app/src/main/java/io/xpipe/app/util/RemoteDesktopDockComp.java b/app/src/main/java/io/xpipe/app/util/RemoteDesktopDockComp.java index 782daafbc..735bdaf8a 100644 --- a/app/src/main/java/io/xpipe/app/util/RemoteDesktopDockComp.java +++ b/app/src/main/java/io/xpipe/app/util/RemoteDesktopDockComp.java @@ -11,6 +11,7 @@ import io.xpipe.app.platform.LabelGraphic; import io.xpipe.app.platform.PlatformThread; import javafx.application.Platform; +import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ObservableBooleanValue; import javafx.collections.ListChangeListener; @@ -149,11 +150,17 @@ public class RemoteDesktopDockComp extends SimpleRegionBuilder { buttons.setSpacing(6); bar.getItems().add(buttons); - var restartButton = - new ButtonComp(AppI18n.observable("reloadSizes"), new LabelGraphic.IconGraphic("mdi2r-restart"), () -> { - w.reconnectResize(); - }); - restartButton.visible(requiresRestart); + var restartName = Bindings.createStringBinding(() -> { + return requiresRestart.get() ? AppI18n.get("reloadSizes") : AppI18n.get("reconnect"); + }, requiresRestart, AppI18n.activeLanguage()); + var restartButton = new ButtonComp(restartName, new LabelGraphic.IconGraphic("mdi2r-restart"), () -> { + if (requiresRestart.get()) { + w.reconnectResize(); + } else { + w.reconnect(); + } + }); + restartButton.visible(w.getSelected().isNotNull()); buttons.getChildren().add(restartButton.build()); } diff --git a/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java b/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java index 6d0cee8e9..9ea6843e6 100644 --- a/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java +++ b/app/src/main/java/io/xpipe/app/util/RemoteDesktopWindow.java @@ -197,6 +197,18 @@ public class RemoteDesktopWindow { } } + public void reconnect() { + var toRestart = getSelected().getValue(); + if (toRestart == null) { + return; + } + + ThreadHelper.runFailableAsync(() -> { + close(toRestart, false); + toRestart.getEntry().getProvider().launch(toRestart.getEntry()).run(); + }); + } + public void reconnectResize() { var rect = getDockBounds(); var toRestart = getProcesses().stream() diff --git a/lang/strings/translations_da.properties b/lang/strings/translations_da.properties index 39434e923..fe29b7724 100644 --- a/lang/strings/translations_da.properties +++ b/lang/strings/translations_da.properties @@ -2047,6 +2047,7 @@ unsyncedIdentityContent=Denne forbindelse er markeret til synkronisering på tv rdpDock=Dock-vindue rdpDockDescription=Hvis denne funktion er aktiveret, vil ethvert åbnet RDP-vindue blive fastgjort til det indbyggede fjernskrivebordsvindue med faner. reloadSizes=Opret forbindelse igen for at ændre størrelsen +reconnect=Genopret forbindelse certificateFile=Certifikatfil checkValidity=Kontroller gyldigheden certificatePublicKey=Certifikatets offentlige nøgle diff --git a/lang/strings/translations_de.properties b/lang/strings/translations_de.properties index 1b90edf28..16c1846a1 100644 --- a/lang/strings/translations_de.properties +++ b/lang/strings/translations_de.properties @@ -2043,6 +2043,7 @@ unsyncedIdentityContent=Diese Verbindung ist für die Synchronisierung über meh rdpDock=Fenster andocken rdpDockDescription=Wenn diese Option aktiviert ist, wird jedes geöffnete RDP-Fenster an das integrierte Remote-Desktop-Fenster mit Registerkarten angeheftet. reloadSizes=Erneut verbinden, um die Größe anzupassen +reconnect=Erneut verbinden certificateFile=Zertifikatsdatei checkValidity=Gültigkeit prüfen certificatePublicKey=Öffentlicher Schlüssel eines Zertifikats diff --git a/lang/strings/translations_en.properties b/lang/strings/translations_en.properties index bc59b5a14..01a4b83be 100644 --- a/lang/strings/translations_en.properties +++ b/lang/strings/translations_en.properties @@ -2092,6 +2092,7 @@ unsyncedIdentityContent=This connection is marked to sync across multiple system rdpDock=Dock window rdpDockDescription=If enabled, any opened RDP window will be docked to the built-in tabbed remote desktop window. reloadSizes=Reconnect to resize +reconnect=Reconnect certificateFile=Certificate file checkValidity=Check validity certificatePublicKey=Certificate public key diff --git a/lang/strings/translations_es.properties b/lang/strings/translations_es.properties index 03068350a..112787451 100644 --- a/lang/strings/translations_es.properties +++ b/lang/strings/translations_es.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Esta conexión está configurada para sincronizarse entr rdpDock=Ajustar ventana rdpDockDescription=Si está activada esta opción, cualquier ventana RDP que abras se acoplará a la ventana integrada de escritorio remoto con pestañas. reloadSizes=Vuelve a conectar para cambiar el tamaño +reconnect=Volver a conectarse certificateFile=Archivo de certificado checkValidity=Comprueba la validez certificatePublicKey=Clave pública del certificado diff --git a/lang/strings/translations_fr.properties b/lang/strings/translations_fr.properties index 908929eb0..9c149b2df 100644 --- a/lang/strings/translations_fr.properties +++ b/lang/strings/translations_fr.properties @@ -2046,6 +2046,7 @@ unsyncedIdentityContent=Cette connexion est configurée pour être synchronisée rdpDock=Ancrer une fenêtre rdpDockDescription=Si cette option est activée, toute fenêtre RDP ouverte sera ancrée à la fenêtre intégrée du bureau à distance à onglets. reloadSizes=Se reconnecter pour redimensionner +reconnect=Se reconnecter certificateFile=Fichier de certificat checkValidity=Vérifier la validité certificatePublicKey=Clé publique de certificat diff --git a/lang/strings/translations_id.properties b/lang/strings/translations_id.properties index 15020fd41..9cbd421ec 100644 --- a/lang/strings/translations_id.properties +++ b/lang/strings/translations_id.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Koneksi ini ditandai untuk disinkronkan di beberapa sist rdpDock=Jendela dock rdpDockDescription=Jika diaktifkan, setiap jendela RDP yang dibuka akan ditambatkan ke jendela desktop jarak jauh bertab bawaan. reloadSizes=Hubungkan kembali untuk mengubah ukuran +reconnect=Sambungkan kembali certificateFile=Berkas sertifikat checkValidity=Periksa keabsahan certificatePublicKey=Kunci publik sertifikat diff --git a/lang/strings/translations_it.properties b/lang/strings/translations_it.properties index 4992921c6..688d7c141 100644 --- a/lang/strings/translations_it.properties +++ b/lang/strings/translations_it.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Questa connessione è contrassegnata per la sincronizzaz rdpDock=Ancorare la finestra rdpDockDescription=Se abilitata, qualsiasi finestra RDP aperta verrà agganciata alla finestra integrata del desktop remoto a schede. reloadSizes=Riconnetiti per ridimensionare +reconnect=Riconnetti certificateFile=File di certificato checkValidity=Verifica la validità certificatePublicKey=Chiave pubblica del certificato diff --git a/lang/strings/translations_ja.properties b/lang/strings/translations_ja.properties index fbf4d1b28..5e9ed0524 100644 --- a/lang/strings/translations_ja.properties +++ b/lang/strings/translations_ja.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=この接続は複数のシステム間で同期され rdpDock=ウィンドウをドックする rdpDockDescription=この機能を有効にすると、開かれたRDPウィンドウはすべて、組み込みのタブ付きリモートデスクトップウィンドウにドッキングされる。 reloadSizes=サイズ変更するには再接続する +reconnect=再接続 certificateFile=証明書ファイル checkValidity=有効性を確認する certificatePublicKey=証明書の公開鍵 diff --git a/lang/strings/translations_ko.properties b/lang/strings/translations_ko.properties index 2a5b17d73..d402370ae 100644 --- a/lang/strings/translations_ko.properties +++ b/lang/strings/translations_ko.properties @@ -2056,6 +2056,7 @@ unsyncedIdentityContent=이 연결은 여러 시스템 간에 동기화되도록 rdpDock=창 고정 rdpDockDescription=이 기능을 활성화하면, 열린 모든 RDP 창이 기본 제공되는 탭 형식의 원격 데스크톱 창에 도킹됩니다. reloadSizes=크기 조정을 위해 다시 연결 +reconnect=다시 연결 certificateFile=인증서 파일 checkValidity=유효성 확인 certificatePublicKey=인증서의 공개 키 diff --git a/lang/strings/translations_nl.properties b/lang/strings/translations_nl.properties index 26b353758..7d104d035 100644 --- a/lang/strings/translations_nl.properties +++ b/lang/strings/translations_nl.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Deze verbinding is gemarkeerd om tussen meerdere systeme rdpDock=Venster vastzetten rdpDockDescription=Als deze optie is ingeschakeld, wordt elk geopend RDP-venster gekoppeld aan het ingebouwde venster met tabbladen voor het externe bureaublad. reloadSizes=Maak opnieuw verbinding om het formaat aan te passen +reconnect=Opnieuw verbinden certificateFile=Certificaatbestand checkValidity=Controleer of het klopt certificatePublicKey=Openbare sleutel van een certificaat diff --git a/lang/strings/translations_pl.properties b/lang/strings/translations_pl.properties index 2b6ad778c..4ecae8dcf 100644 --- a/lang/strings/translations_pl.properties +++ b/lang/strings/translations_pl.properties @@ -2010,6 +2010,7 @@ unsyncedIdentityContent=To połączenie jest oznaczone do synchronizacji między rdpDock=Dokuj okno rdpDockDescription=Jeśli ta opcja jest włączona, każde otwarte okno RDP zostanie zadokowane do wbudowanego okna pulpitu zdalnego z zakładkami. reloadSizes=Połącz się ponownie, żeby zmienić rozmiar +reconnect=Ponowne połączenie certificateFile=Plik certyfikatu checkValidity=Sprawdź poprawność certificatePublicKey=Klucz publiczny certyfikatu diff --git a/lang/strings/translations_pt.properties b/lang/strings/translations_pt.properties index ff7abc9b8..3bd0c596b 100644 --- a/lang/strings/translations_pt.properties +++ b/lang/strings/translations_pt.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Esta ligação está marcada para sincronização entre rdpDock=Anexar janela rdpDockDescription=Se estiver ativada, qualquer janela RDP aberta será acoplada à janela integrada da área de trabalho remota com separadores. reloadSizes=Reconecta para ajustar o tamanho +reconnect=Reconectar certificateFile=Ficheiro de certificado checkValidity=Verificar a validade certificatePublicKey=Chave pública do certificado diff --git a/lang/strings/translations_ru.properties b/lang/strings/translations_ru.properties index 0bcd38366..0f5035b62 100644 --- a/lang/strings/translations_ru.properties +++ b/lang/strings/translations_ru.properties @@ -2111,6 +2111,7 @@ unsyncedIdentityContent=Это соединение помечено для си rdpDock=Закрепить окно rdpDockDescription=Если эта опция включена, любое открытое окно RDP будет прикреплено к встроенному окну удалённого рабочего стола с вкладками. reloadSizes=Переподключись, чтобы изменить размер +reconnect=Повторное подключение certificateFile=Файл сертификата checkValidity=Проверить правильность certificatePublicKey=Открытый ключ сертификата diff --git a/lang/strings/translations_sv.properties b/lang/strings/translations_sv.properties index 06c644b51..57d8f54a1 100644 --- a/lang/strings/translations_sv.properties +++ b/lang/strings/translations_sv.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Denna anslutning är markerad för synkronisering mellan rdpDock=Dockningsfönster rdpDockDescription=Om denna funktion är aktiverad kommer alla öppnade RDP-fönster att dockas till det inbyggda fjärrskrivbordsfönstret med flikar. reloadSizes=Anslut på nytt för att ändra storlek +reconnect=Återanslut certificateFile=Certifikatfil checkValidity=Kontrollera giltigheten certificatePublicKey=Certifikatets publika nyckel diff --git a/lang/strings/translations_tr.properties b/lang/strings/translations_tr.properties index 289c3dd71..c40604b03 100644 --- a/lang/strings/translations_tr.properties +++ b/lang/strings/translations_tr.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Bu bağlantı, birden fazla sistem arasında senkronize rdpDock=Pencereyi sabitlemek rdpDockDescription=Bu özellik etkinleştirildiğinde, açılan tüm RDP pencereleri yerleşik sekmeli uzak masaüstü penceresine sabitlenecektir. reloadSizes=Yeniden bağlanarak boyutunu değiştirin +reconnect=Yeniden bağlan certificateFile=Sertifika dosyası checkValidity=Geçerliliği kontrol et certificatePublicKey=Sertifikanın açık anahtarı diff --git a/lang/strings/translations_vi.properties b/lang/strings/translations_vi.properties index d4bd2b35c..5ba694364 100644 --- a/lang/strings/translations_vi.properties +++ b/lang/strings/translations_vi.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=Kết nối này được đánh dấu để đồng b rdpDock=Ghim cửa sổ rdpDockDescription=Nếu bật tính năng này, bất kỳ cửa sổ RDP nào đang mở sẽ được gắn vào cửa sổ máy tính từ xa có tab tích hợp sẵn. reloadSizes=Kết nối lại để thay đổi kích thước +reconnect=Kết nối lại certificateFile=Tệp chứng chỉ checkValidity=Kiểm tra tính hợp lệ certificatePublicKey=Khóa công khai của chứng chỉ diff --git a/lang/strings/translations_zh-Hans.properties b/lang/strings/translations_zh-Hans.properties index 8fb130198..3ff24df2a 100644 --- a/lang/strings/translations_zh-Hans.properties +++ b/lang/strings/translations_zh-Hans.properties @@ -2568,6 +2568,7 @@ unsyncedIdentityContent=此连接已标记为在多个系统间进行同步, rdpDock=窗口停靠 rdpDockDescription=如果启用此功能,任何已打开的 RDP 窗口都将停靠在内置的标签式远程桌面窗口中。 reloadSizes=重新连接以调整大小 +reconnect=重新连接 certificateFile=证书文件 checkValidity=检查有效性 certificatePublicKey=证书公钥 diff --git a/lang/strings/translations_zh-Hant.properties b/lang/strings/translations_zh-Hant.properties index 22621ea24..9ded34ac7 100644 --- a/lang/strings/translations_zh-Hant.properties +++ b/lang/strings/translations_zh-Hant.properties @@ -2009,6 +2009,7 @@ unsyncedIdentityContent=此連線已標記為需在多個系統間同步,但 rdpDock=停靠視窗 rdpDockDescription=若啟用此功能,任何開啟的 RDP 視窗都會停靠至內建的分頁式遠端桌面視窗中。 reloadSizes=重新連線以調整大小 +reconnect=重新連線 certificateFile=憑證檔案 checkValidity=檢查有效性 certificatePublicKey=憑證公鑰