From bfce7acfa777ae1e80f7fdd275459931a14bcdfd Mon Sep 17 00:00:00 2001 From: crschnick Date: Sun, 8 Mar 2026 21:22:52 +0000 Subject: [PATCH] Rework --- .../app/hub/comp/StoreCreationModel.java | 2 +- .../app/hub/comp/StoreEntryFilterCompBar.java | 39 +++++++---- .../hub/comp/StoreEntryListOverviewComp.java | 15 +---- .../app/hub/comp/StoreIconChoiceComp.java | 35 ++++------ .../app/hub/comp/StoreIconChoiceDialog.java | 2 +- .../xpipe/app/storage/DataStoreCategory.java | 42 +++++++++++- .../xpipe/app/resources/style/header-bars.css | 9 ++- .../img/connectionsCategory_icon-16-dark.png | Bin 0 -> 426 bytes .../img/connectionsCategory_icon-16.png | Bin 0 -> 437 bytes .../img/connectionsCategory_icon-24-dark.png | Bin 0 -> 501 bytes .../img/connectionsCategory_icon-24.png | Bin 0 -> 504 bytes .../img/connectionsCategory_icon-40-dark.png | Bin 0 -> 648 bytes .../img/connectionsCategory_icon-40.png | Bin 0 -> 646 bytes .../img/connectionsCategory_icon-80-dark.png | Bin 0 -> 1140 bytes .../img/connectionsCategory_icon-80.png | Bin 0 -> 1138 bytes .../img/identityCategory_icon-16-dark.png | Bin 0 -> 498 bytes .../img/identityCategory_icon-16.png | Bin 0 -> 503 bytes .../img/identityCategory_icon-24-dark.png | Bin 0 -> 731 bytes .../img/identityCategory_icon-24.png | Bin 0 -> 722 bytes .../img/identityCategory_icon-40-dark.png | Bin 0 -> 1207 bytes .../img/identityCategory_icon-40.png | Bin 0 -> 1207 bytes .../img/identityCategory_icon-80-dark.png | Bin 0 -> 2459 bytes .../img/identityCategory_icon-80.png | Bin 0 -> 2470 bytes ...rk.png => scriptCategory_icon-16-dark.png} | Bin ...icon-16.png => scriptCategory_icon-16.png} | Bin ...rk.png => scriptCategory_icon-24-dark.png} | Bin ...icon-24.png => scriptCategory_icon-24.png} | Bin ...rk.png => scriptCategory_icon-40-dark.png} | Bin ...icon-40.png => scriptCategory_icon-40.png} | Bin ...rk.png => scriptCategory_icon-80-dark.png} | Bin ...icon-80.png => scriptCategory_icon-80.png} | Bin img/base/connectionsCategory_icon-dark.svg | 62 ++++++++++++++++++ img/base/connectionsCategory_icon.svg | 62 ++++++++++++++++++ img/base/identityCategory_icon-dark.svg | 47 +++++++++++++ img/base/identityCategory_icon.svg | 47 +++++++++++++ ...-dark.svg => scriptCategory_icon-dark.svg} | 0 ...Group_icon.svg => scriptCategory_icon.svg} | 0 lang/strings/translations_en.properties | 5 -- 38 files changed, 308 insertions(+), 59 deletions(-) create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-16-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-16.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-24-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-24.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-40-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-40.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-80-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-80.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-16-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-16.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-24-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-24.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-40-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-40.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-80-dark.png create mode 100644 ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-80.png rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-16-dark.png => scriptCategory_icon-16-dark.png} (100%) rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-16.png => scriptCategory_icon-16.png} (100%) rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-24-dark.png => scriptCategory_icon-24-dark.png} (100%) rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-24.png => scriptCategory_icon-24.png} (100%) rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-40-dark.png => scriptCategory_icon-40-dark.png} (100%) rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-40.png => scriptCategory_icon-40.png} (100%) rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-80-dark.png => scriptCategory_icon-80-dark.png} (100%) rename ext/base/src/main/resources/io/xpipe/ext/base/resources/img/{scriptGroup_icon-80.png => scriptCategory_icon-80.png} (100%) create mode 100644 img/base/connectionsCategory_icon-dark.svg create mode 100644 img/base/connectionsCategory_icon.svg create mode 100644 img/base/identityCategory_icon-dark.svg create mode 100644 img/base/identityCategory_icon.svg rename img/base/{scriptGroup_icon-dark.svg => scriptCategory_icon-dark.svg} (100%) rename img/base/{scriptGroup_icon.svg => scriptCategory_icon.svg} (100%) diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationModel.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationModel.java index 41db7608b..9cffcb954 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationModel.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationModel.java @@ -311,7 +311,7 @@ public class StoreCreationModel { || p.getCreationCategory().getCategory().equals(DataStorage.ALL_CONNECTIONS_CATEGORY_UUID) ? "connection" : p.getCreationCategory().getCategory().equals(DataStorage.ALL_SCRIPTS_CATEGORY_UUID) - ? (p.getId().equals("scriptGroup") ? "scriptGroup" : "script") + ? "script" : p.getCreationCategory().getCategory().equals(DataStorage.ALL_IDENTITIES_CATEGORY_UUID) ? "identity" : "macro"; diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryFilterCompBar.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryFilterCompBar.java index 7874a5b08..bf398ea49 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryFilterCompBar.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryFilterCompBar.java @@ -7,6 +7,7 @@ import io.xpipe.app.comp.RegionBuilder; import io.xpipe.app.comp.SimpleRegionBuilder; import io.xpipe.app.comp.base.CountComp; import io.xpipe.app.comp.base.IconButtonComp; +import io.xpipe.app.comp.base.InputGroupComp; import io.xpipe.app.core.AppFontSizes; import io.xpipe.app.core.AppI18n; import io.xpipe.app.platform.BindingsHelper; @@ -28,6 +29,7 @@ import javafx.scene.layout.VBox; import javafx.scene.text.TextAlignment; import org.kordamp.ikonli.javafx.FontIcon; +import java.util.List; import java.util.function.Function; public class StoreEntryFilterCompBar extends SimpleRegionBuilder { @@ -38,23 +40,34 @@ public class StoreEntryFilterCompBar extends SimpleRegionBuilder { this.filterTrigger = filterTrigger; } - private Region createFilterBar() { - var filter = new StoreFilterComp().build(); - filterTrigger.subscribe(() -> { - filter.requestFocus(); + private BaseRegionBuilder createQuickConnectButton() { + var b = new IconButtonComp("mdi2a-animation-play", () -> { + // quickConnectTrigger.trigger(); }); - filter.setMinHeight(Region.USE_PREF_SIZE); - return filter; + b.describe(d -> d.nameKey("quickConnect")); + b.style("quick-connect-button"); + b.apply(struc -> { + struc.getStyleClass().remove(Styles.FLAT); + }); + return b; } @Override public Region createSimple() { - var filter = createFilterBar(); - HBox.setHgrow(filter, Priority.ALWAYS); - var bar = new HBox(filter); - bar.setFillHeight(true); - bar.getStyleClass().add("bar"); - bar.getStyleClass().add("store-filter-bar"); - return bar; + var filter = new StoreFilterComp(); + filter.minHeight(Region.USE_PREF_SIZE); + filter.apply(customTextField -> { + filterTrigger.subscribe(() -> { + customTextField.requestFocus(); + }); + }); + + var button = createQuickConnectButton(); + + var inputGroup = new InputGroupComp(List.of(filter, button)); + inputGroup.setMainReference(filter); + inputGroup.style("bar"); + inputGroup.style("store-filter-bar"); + return inputGroup.build(); } } diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryListOverviewComp.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryListOverviewComp.java index a285b34f0..149181514 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryListOverviewComp.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryListOverviewComp.java @@ -94,9 +94,8 @@ public class StoreEntryListOverviewComp extends SimpleRegionBuilder { private Region createAddBar() { var add = createAddButton(); - var quickConnect = createQuickConnectButton().build(); var batchMode = createBatchModeButton().build(); - var hbox = new HBox(add, new Spacer(Orientation.HORIZONTAL), quickConnect, batchMode); + var hbox = new HBox(add, new Spacer(Orientation.HORIZONTAL), batchMode); batchMode.minHeightProperty().bind(add.heightProperty()); batchMode.prefHeightProperty().bind(add.heightProperty()); @@ -127,18 +126,6 @@ public class StoreEntryListOverviewComp extends SimpleRegionBuilder { return menu; } - private BaseRegionBuilder createQuickConnectButton() { - var b = new IconButtonComp("mdi2a-animation-play", () -> { - quickConnectTrigger.trigger(); - }); - b.describe(d -> d.nameKey("quickConnect")); - b.style("quick-connect-button"); - b.apply(struc -> { - struc.getStyleClass().remove(Styles.FLAT); - }); - return b; - } - private BaseRegionBuilder createBatchModeButton() { var batchMode = StoreViewState.get().getBatchMode(); var b = new IconButtonComp("mdi2l-layers", () -> { diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceComp.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceComp.java index 45dc6a716..c1072b9ed 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceComp.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceComp.java @@ -102,26 +102,24 @@ public class StoreIconChoiceComp extends ModalOverlayContentComp { } private void initTable(TableView> table) { - if (!SystemIconManager.isCacheOutdated()) { - for (int i = 0; i < columns; i++) { - var col = new TableColumn, SystemIcon>("col" + i); - final int colIndex = i; - col.setCellValueFactory(cb -> { - var row = cb.getValue(); - var item = row.size() > colIndex ? row.get(colIndex) : null; - return new SimpleObjectProperty<>(item); - }); - col.setCellFactory(cb -> new IconCell()); - col.getStyleClass().add(Tweaks.ALIGN_CENTER); - table.getColumns().add(col); - } - } - table.setPlaceholder(new Region()); table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY_ALL_COLUMNS); table.getSelectionModel().setCellSelectionEnabled(true); table.getStyleClass().add("icon-browser"); table.disableProperty().bind(PlatformThread.sync(busy)); + + for (int i = 0; i < columns; i++) { + var col = new TableColumn, SystemIcon>("col" + i); + final int colIndex = i; + col.setCellValueFactory(cb -> { + var row = cb.getValue(); + var item = row.size() > colIndex ? row.get(colIndex) : null; + return new SimpleObjectProperty<>(item); + }); + col.setCellFactory(cb -> new IconCell()); + col.getStyleClass().add(Tweaks.ALIGN_CENTER); + table.getColumns().add(col); + } } private Region createLoadingPane() { @@ -138,7 +136,7 @@ public class StoreIconChoiceComp extends ModalOverlayContentComp { }); refreshButton.hide(Bindings.createBooleanBinding( () -> { - return SystemIconManager.hasLoadedAnyImages(); + return SystemIconManager.hasLoadedAnyImages() && !SystemIconManager.isCacheOutdated(); }, busy)); refreshButton.disable(busy); @@ -165,11 +163,6 @@ public class StoreIconChoiceComp extends ModalOverlayContentComp { } private void updateData(TableView> table, String filterString) { - if (SystemIconManager.isCacheOutdated()) { - table.getItems().clear(); - return; - } - var available = icons.stream() .filter(systemIcon -> AppImages.hasImage( "icons/" + systemIcon.getSource().getId() + "/" + systemIcon.getId() + "-40.png")) diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceDialog.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceDialog.java index 6a9d73a07..facb436b9 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceDialog.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreIconChoiceDialog.java @@ -47,7 +47,7 @@ public class StoreIconChoiceDialog { } public static void show(DataStoreCategory entry) { - var dialog = new StoreIconChoiceDialog(entry.getEffectiveIconFile(), s -> { + var dialog = new StoreIconChoiceDialog(entry.getDefaultIconFile(), s -> { entry.setIcon( s != null && s.getSource() != null ? s.getSource().getId() + "/" diff --git a/app/src/main/java/io/xpipe/app/storage/DataStoreCategory.java b/app/src/main/java/io/xpipe/app/storage/DataStoreCategory.java index cb44a276b..a9f28eeed 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStoreCategory.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStoreCategory.java @@ -166,9 +166,49 @@ public class DataStoreCategory extends StorageElement { } } + public String getDefaultIconFile() { + if (uuid.equals(DataStorage.ALL_CONNECTIONS_CATEGORY_UUID)) { + return "connectionsCategory_icon.svg"; + } + + if (uuid.equals(DataStorage.DEFAULT_CATEGORY_UUID)) { + return "connectionsCategory_icon.svg"; + } + + if (uuid.equals(DataStorage.ALL_IDENTITIES_CATEGORY_UUID)) { + return "identityCategory_icon.svg"; + } + + if (uuid.equals(DataStorage.LOCAL_IDENTITIES_CATEGORY_UUID)) { + return "localIdentity_icon.svg"; + } + + if (uuid.equals(DataStorage.SYNCED_IDENTITIES_CATEGORY_UUID)) { + return "syncedIdentity_icon.svg"; + } + + if (uuid.equals(DataStorage.ALL_SCRIPTS_CATEGORY_UUID)) { + return "scriptCategory_icon.svg"; + } + + if (uuid.equals(DataStorage.CUSTOM_SCRIPTS_CATEGORY_UUID)) { + return "scriptCategory_icon.svg"; + } + + if (uuid.equals(DataStorage.SCRIPT_SOURCES_CATEGORY_UUID)) { + return "scriptCollectionSource_icon.svg"; + } + + if (uuid.equals(DataStorage.PREDEFINED_SCRIPTS_CATEGORY_UUID)) { + return "defaultShell_icon.svg"; + } + + return "connectionsCategory_icon.svg"; + } + public String getEffectiveIconFile() { if (icon == null) { - return "base:localIdentity_icon.svg"; + return getDefaultIconFile(); } var found = SystemIconManager.getIcon(icon); diff --git a/app/src/main/resources/io/xpipe/app/resources/style/header-bars.css b/app/src/main/resources/io/xpipe/app/resources/style/header-bars.css index 468654885..2f7e2b9aa 100644 --- a/app/src/main/resources/io/xpipe/app/resources/style/header-bars.css +++ b/app/src/main/resources/io/xpipe/app/resources/style/header-bars.css @@ -1,14 +1,17 @@ +.quick-connect-button { + -fx-padding: 10; +} .store-header-bar { - -fx-padding: 0.8em 1.0em 0.8em 1.0em; + -fx-padding: 0.8em 0.9em 0.8em 0.9em; } .store-filter-bar { - -fx-padding: 0.5em 1.0em 0.5em 1.0em; + -fx-padding: 0.5em 0.9em 0.5em 0.9em; } .store-filter-comp { - -fx-padding: 0.3em 0.4em 0.3em 0.4em; + -fx-padding: 0.3em 0.5em 0.3em 0.5em; } .bar { diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-16-dark.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-16-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..722307bb0cfcb4b19d84b517a659ff36919e6878 GIT binary patch literal 426 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 RZUhzv44$rjF6*2UngEEd1*!l5 literal 0 HcmV?d00001 diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-80.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/connectionsCategory_icon-80.png new file mode 100644 index 0000000000000000000000000000000000000000..e5cdc879cb23fb64f57f1246290c4c9e118d062d GIT binary patch literal 1138 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)oCO|{#S9FrM?sj;(=Pl8P*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdvnyqL9pzoK%L)l+?VE%#zBJ z$#zZ*49rhGT^vIy=DeNjn-LQ#a{T}Q=@M-X%hE1BIG*mn$yDh)Zd-x&w-E3p|IqrgvVv{Bozhj-$?vlcIfSKXl`P@5qW0(tCpRDT8 zS)RE|NonpIwKUeM_wyMyuq3RTVdZ_8?d0}XUw^gUOStm;K=psNhV_Y`ei^DOJ>UCX zy}CKJ@!s!phMJb1kjHu)358{4-`?gqxIEZfFLogOg?@hb6Mu$(8Y@l&ChqT$VKBIw zzSjBE&Z@n2iF2OJD9+=oth}vMlv7pp>+;sETciKi?_KOJb6mLB?J>tmV}^IHBfDHu zI-ex330ti{`H#}%-MkM@s(9*&g};08XwGcqpR(_!aWLq+s_>@^yF8h3a<}uWWzs7B z>5o_c+J=o@J`03|R~%u{0y2*|3;#X%Ie6{t zx$bO{XD%#=`L*@ipQ{tDBs7}Ou4#JWmGMu*@u4<@9skL#%4;B6V7fW;l8>GAe#__2 zw_)1Ci)!_JXL-dcem=U)*$}+&=WbT(L&)|ZG%ZQ@+dcEz{JGbG_H7V&xh6+9E{^*o zuh@;OaygYJdoTP6Z0cFZ#37X79?{7elEgH1hJ&hF0FWtk=a^4f-rq|-?@s>PziUcQ zziVbeUdE$mkJ6YAe8+1eHy3e%D_&DF&sNHB65ho>{sv zZhOkk(BJ;#mS7l?jX>s#TM|s^j58%c8W+9zej#S+f$;77?|yz9_=W>HC|{~iXblgP zE6P)PqCV-Z_L@196qRmz9=op05MHIM^8B&IJdJg0iUf{-WI6fsp2W$s90#(}-iIu{ zXb}{X`EW7Xhp+^KY*lj#>1n&pP|;;_XkHJ_nm$GMW3|JbA))&wm`!&3C-Zd5X$K_I&@x(s0=| zEF$Ti@1!Tp3!aNkS2_8c;U3Eb=^gncf(*+qnY@kT|Nk$WwjcH$GoN!&`G3>q%|Z}=y_)A5tJU?l5?Im=#7|C`tTQCxU}di|rQf3tx_0fVQj KpUXO@geCyx{s_4M literal 0 HcmV?d00001 diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-16-dark.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-16-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..bedeb04293b2d8982ab669137fd6535511b84642 GIT binary patch literal 498 zcmVUStJS&%a27>Tu~aI33~V4G zoB4eHAngZ15CM4dJa1)SgIcYo0UQ+yh4-v|opTicZ@)}t?qOV07*qoM6N<$f;!jCzyJUM literal 0 HcmV?d00001 diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-16.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3448fef9a9f45696b9cedd4aa5f387330918b2 GIT binary patch literal 503 zcmVh63!cGuD0wM^h4N>z+wKpWC^o=nqQ6QJg&4*!F z1hDKl&Rwh3dW$kjDPP37r&6iKFbwO=yv59G!{P8&DYX&DCgQ|oGPw_+W{f!=-*m~$ z=K$8DY-|SrG&4894#t>QB3g|DV-2jebpR#L^XA4K>;ib4*r3ztTmeY=zTZ|#Jpec( zqRK=DTI&TVWeq?ZKuHKuCZa=Y?X~N=`6&PE5v{cq08hr4gKu(EDRoao7oO+k8;!=t ze+ zfGl&bMRp;@eoT_Z1Jk^7?>Teto%iOkSS${Co_8O>1ppZg1}myM*Jv~zxGnKp0A@(q zL8z;0j^v$mIt>@wZ$1+Q!OcO4w_&YSl9yZn8C9($Nvc#TM@SCWYPIEjKHuyWOEOZ` zj7caQT5G?E$nQ9gE1u_VSZnX8s?#sm?H91Lv~)~F<^hyRj*?s#kud;;D2fgPxUnw- z$8qke>Y6cT)c5_rt>sb_Ma!!Cu3RoZ4a2Z&i~F`nRZo+Ay+a%T;QRi2lADg>oa&XI zWCq%LI+=^AcI0+rFt4f;#bR-2=c2XtJb**3`E*6!8Hh;181vKfypPt}g5x;raU72W zcm&{iul^@BSTn}F0dNh#nK+Ky)TS}!MZf%>Evi0ipa}OT*o1ki~)Q~A`Spy82;+UB|5J6ga2Z%O41*+ zu&M?CR$Nt`BYE3ei$VVM0bD0J?KT>XLOPuW$&0Ewuxks+>3Y5X@E?4H`<2<|86f}w N002ovPDHLkV1lC=JqiE- literal 0 HcmV?d00001 diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-24.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-24.png new file mode 100644 index 0000000000000000000000000000000000000000..e34e14ec0f8da05a4d65ea7ed0c4b19248c7d00b GIT binary patch literal 722 zcmV;@0xkWCP)6`DgsP%QLf_HC$W z@zR{Uh)8Ks@E_=*ilCsyiyt?|C_?K=uqXwQq9EwOgBLG)up&Zf@S@U~O`*_Mu+XFk z2_nAn;8ub($<_wv_~!j)-ppHem;L?y9hFMunxqi`J!lUWB~7JLsq0=Oei6U~$wE8S zCG917d3ALaUUc$_QmJ&I9pdY-){5jw55H?E#u>_FGP@*oC6md8+1c42&GwS~EUCxD z6y9g8eeIn4Dydj5mshN{S4nPbHS4w7kWQ!fkenv@3BZ6c=8JP~5I`=SPVWS8eoF?% zm@5F5jWGkoV)1*l{LxywK=P@z_D-o(YFKfciVl-}R3{Dqn4h1224GFnp)Dm)ga(`g zupzgOmI z`F!317_3&SZ(A8e7?t#3BVxl#mh=}1ONa48FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H101k9T zSaeirbZlh+X=G(?bZK;X$zwi3000CkNkli8G||@0nQHL-dYC(4vfBLFW_4ENfFrtAR;Rb z$%0VTa!<*wk*c0ae$JaQ9SxSt7T+dd@-BNe%WsOrW3d@3}08(y$RfT-~$oa3G4?ZsISHY*4oYO z_R;nTMp5*%s%}jlclGu4Z5tREs5ai8JbCht*|TTwR@IFnvO5gJAF|o(;jRD{3Wb@f z`X+#?z7qt&mg_yaT<(&pZi=F4F0esWcLEQ#+E-gs+~42-FfagI24209Pejx?_Y&Yl zWK|r;OS%FmBFg|&^-vH5lQ;7&UApu%FbZ(>>eXdk0R++jB66`w|Ai#B{3oPcz+aL$ z*o;|KmjHO4_j9WqwL8U))wrryEM{)zwbni&BKH7)R;$(HT>%fEk|W?Jbwf zbEfi@N~HxN@?P?|KbOm0>Ixu$F=jJR1y*0Va^-LoMQc=5094hBqG-eza}@A_^PcCu z(pEq10w$w40!)g?a#cMPMbWu141bKG=z^*qpq@#7Rn@gaLqq4g3OG7C+Akt&`1fXi zCol}mzox8TM4q_OXYgNYE0e@=yv#ZG8THK?RXrmjUx5V~pAA`~E%=ao2kbg~H5qI{hrLLsjnsj#_IU3W6YP zw!fC9xL7PM5|NLAxxjax=jDCh|8OcefP6k*%Vx9hipUC}2rLwl&&S8d=TGJD7|`>) zx2aE=oi%ILNG6l{t(khh@1IiDwbVCwzgDYlpLW173|9af0B4NZxOnm6->3ECO)O9cz!PE>%62#GB^uhML-Ds?};=DwQe#e^)A%vmNk}N~KD*TJ1RS z*R%m9Nq$8qU=0lp4xVeJt&UE0-Oz2oPIViwQyJ=KTSTO()YA|!s?S+# z)4jv0%UYXGZdp;)Be(h$@VZ<761`Cp$MHJn+!kOZ$<09zG^wiJ8)M$`eg7MPe*o!b Vy5PzLJWv1t002ovPDHLkV1lsKG;ja_ literal 0 HcmV?d00001 diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-40.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-40.png new file mode 100644 index 0000000000000000000000000000000000000000..3c80323bfc6e201d67e85a31177405c496210703 GIT binary patch literal 1207 zcmV;o1W5adP)}1ONa48FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H101k9T zSaeirbZlh+X=G(?bZK;X$zwi3000CkNkl zcifSdK$%RlgdWtOg`^%LMChf$hl0q!heQyfGK5Houm>M{D1GRk5hXzgM*bOmY0VjC z?%jWBXwqzMU^}yOe?80{Em^nuV>>?heL3gc^ZT9OhkO3sb467F=asocnDZT zdvpajp{o0WAUFyjs*2}%yHs^go1kWss_L#F2;PvszP`=Im~Wzrf`}Xl!*H}6RK}P- zRecd~5#(mE)*b~m0{O14uGPcC!+*8|uBKEf)m<)^&j229)KDFBh{%WSh6BiEvr{5+ zAS$jkT%QmVZDN{D<59XOb}L#-BobYnot=-X>VvAf1h@zs@9F9JK9k9mTWPyxK+p4@ zi^t<{sp>KS5xG`ZEEav|+{?c2f8A{RrWH8n+?%R;5LgCW5|NL9y&`fL_=D$q4-`m@JPb?PO4{QbYJLi7#egF8p0H)LF4&ZG7 zRejI*{T(;jjE#*IMP!?`b^)+ORrdl9HyW#{E}op6d=y9kSK{&b>o>DgRSm=N6(AIm zb;)GX%?n@{hO46Nv1~RwHJ9zk$jB&g7NAn8teVSqHZ=t(BHaM0`g@%&mm|N1406ha6vazVLV-UyrrRv2S;-*P}}?HXVU5E^5)j*N^<*6Rx}K0bay zL|%%D+da=q%<0f5pfP4!l>I!P&!1@ouBJkv@ELFh=nTW~nY!ZE+qkL@Md>Haz||xo zhobBg_1M=1m`o-+f!?TistK-Z5|L9;I_Dl$oQcq9Mg%cK}6$6|EP}LVw zsZ@9Sn5s&pQr*!lE5M1{`U)7>bo*bT*M37-Yd49=4qz?NuCAT}egxj}eg8XvzX9el Vp>lKcZ@K^g002ovPDHLkV1l5ZG(G?T literal 0 HcmV?d00001 diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-80-dark.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/identityCategory_icon-80-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4ef713c44d479e1c2ecc7d2287b3a0c6afce1a77 GIT binary patch literal 2459 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 literal 0 HcmV?d00001 diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-16-dark.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-16-dark.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-16-dark.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-16-dark.png diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-16.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-16.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-16.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-16.png diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-24-dark.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-24-dark.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-24-dark.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-24-dark.png diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-24.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-24.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-24.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-24.png diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-40-dark.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-40-dark.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-40-dark.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-40-dark.png diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-40.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-40.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-40.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-40.png diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-80-dark.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-80-dark.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-80-dark.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-80-dark.png diff --git a/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-80.png b/ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-80.png similarity index 100% rename from ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptGroup_icon-80.png rename to ext/base/src/main/resources/io/xpipe/ext/base/resources/img/scriptCategory_icon-80.png diff --git a/img/base/connectionsCategory_icon-dark.svg b/img/base/connectionsCategory_icon-dark.svg new file mode 100644 index 000000000..dfcc5a1c3 --- /dev/null +++ b/img/base/connectionsCategory_icon-dark.svg @@ -0,0 +1,62 @@ + +identityidentity diff --git a/img/base/connectionsCategory_icon.svg b/img/base/connectionsCategory_icon.svg new file mode 100644 index 000000000..572352473 --- /dev/null +++ b/img/base/connectionsCategory_icon.svg @@ -0,0 +1,62 @@ + +identityidentity diff --git a/img/base/identityCategory_icon-dark.svg b/img/base/identityCategory_icon-dark.svg new file mode 100644 index 000000000..a7082c42e --- /dev/null +++ b/img/base/identityCategory_icon-dark.svg @@ -0,0 +1,47 @@ + +identityidentity diff --git a/img/base/identityCategory_icon.svg b/img/base/identityCategory_icon.svg new file mode 100644 index 000000000..1d77acb97 --- /dev/null +++ b/img/base/identityCategory_icon.svg @@ -0,0 +1,47 @@ + +identityidentity diff --git a/img/base/scriptGroup_icon-dark.svg b/img/base/scriptCategory_icon-dark.svg similarity index 100% rename from img/base/scriptGroup_icon-dark.svg rename to img/base/scriptCategory_icon-dark.svg diff --git a/img/base/scriptGroup_icon.svg b/img/base/scriptCategory_icon.svg similarity index 100% rename from img/base/scriptGroup_icon.svg rename to img/base/scriptCategory_icon.svg diff --git a/lang/strings/translations_en.properties b/lang/strings/translations_en.properties index 249b16a06..8e2c7a8cd 100644 --- a/lang/strings/translations_en.properties +++ b/lang/strings/translations_en.properties @@ -677,11 +677,6 @@ shouldElevate=Should elevate shouldElevateDescription=Whether to run this script with elevated permissions script.displayName=Shell script script.displayDescription=Create a reusable shell script -scriptGroup.displayName=Script group -scriptGroup.displayDescription=Group scripts together and organize them within -scriptGroup=Group -scriptGroupDescription=The group to assign this script to -scriptGroupGroupDescription=The optional parent group to assign this script group to openInNewTab=Open in new tab executeInBackground=in background executeInTerminal=in $TERM$