diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java index 3b6bae5ef..a3fa7314f 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreEntryComp.java @@ -475,6 +475,7 @@ public abstract class StoreEntryComp extends SimpleComp { event.consume(); }); order.getItems().add(index); + order.getItems().add(new SeparatorMenuItem()); var noOrder = new MenuItem(AppI18n.get("none"), new FontIcon("mdi2r-reorder-horizontal")); @@ -486,7 +487,25 @@ public abstract class StoreEntryComp extends SimpleComp { order.getItems().add(noOrder); } - var top = new MenuItem(AppI18n.get("stickToTop"), new FontIcon("mdi2o-order-bool-descending")); + var first = new MenuItem(AppI18n.get("moveToTop"), new FontIcon("mdi2o-order-bool-descending")); + first.setOnAction(event -> { + DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MIN_VALUE); + event.consume(); + }); + first.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MIN_VALUE); + order.getItems().add(first); + + var last = new MenuItem(AppI18n.get("moveToBottom"), new FontIcon("mdi2o-order-bool-ascending")); + last.setOnAction(event -> { + DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MAX_VALUE); + event.consume(); + }); + last.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MAX_VALUE); + order.getItems().add(last); + + order.getItems().add(new SeparatorMenuItem()); + + var top = new MenuItem(AppI18n.get("stickToTop"), new FontIcon("mdi2o-order-bool-descending-variant")); top.setOnAction(event -> { DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MIN_VALUE); event.consume(); @@ -494,13 +513,16 @@ public abstract class StoreEntryComp extends SimpleComp { top.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MIN_VALUE); order.getItems().add(top); - var bottom = new MenuItem(AppI18n.get("stickToBottom"), new FontIcon("mdi2o-order-bool-ascending")); + var bottom = new MenuItem(AppI18n.get("stickToBottom"), new FontIcon("mdi2o-order-bool-ascending-variant")); bottom.setOnAction(event -> { DataStorage.get().setOrderIndex(getWrapper().getEntry(), Integer.MAX_VALUE); event.consume(); }); bottom.setDisable(getWrapper().getEntry().getOrderIndex() == Integer.MAX_VALUE); order.getItems().add(bottom); + + order.getItems().add(new SeparatorMenuItem()); + items.add(order); } } diff --git a/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css b/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css index 1db88bf79..729b61bca 100644 --- a/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css +++ b/app/src/main/resources/io/xpipe/app/resources/style/choice-comp.css @@ -16,6 +16,11 @@ .combo-box-popup .list-cell:hover, .combo-box-popup .list-cell:focused { -fx-background-color: -color-context-menu; + -fx-text-fill: -color-fg-default; +} + +.combo-box-popup .list-cell:hover .graphic, .combo-box-popup .list-cell .graphic { + -fx-icon-color: -color-fg-default; } .choice-comp-content > .top { diff --git a/core/src/main/java/io/xpipe/core/process/ShellDialects.java b/core/src/main/java/io/xpipe/core/process/ShellDialects.java index c5b85ccda..09909cc16 100644 --- a/core/src/main/java/io/xpipe/core/process/ShellDialects.java +++ b/core/src/main/java/io/xpipe/core/process/ShellDialects.java @@ -22,6 +22,7 @@ public class ShellDialects { public static ShellDialect ZSH; public static ShellDialect CSH; public static ShellDialect FISH; + public static ShellDialect NUSHELL; public static ShellDialect NO_INTERACTION; public static ShellDialect CISCO; @@ -89,6 +90,7 @@ public class ShellDialects { CSH = byId("csh"); ASH = byId("ash"); SH = byId("sh"); + NUSHELL = byId("nushell"); NO_INTERACTION = byId("noInteraction"); CISCO = byId("cisco"); MIKROTIK = byId("mikrotik"); diff --git a/img/proc/nushell_icon-dark.svg b/img/proc/nushell_icon-dark.svg new file mode 100644 index 000000000..5deb148fa --- /dev/null +++ b/img/proc/nushell_icon-dark.svg @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/img/proc/nushell_icon.svg b/img/proc/nushell_icon.svg new file mode 100644 index 000000000..21819f1f7 --- /dev/null +++ b/img/proc/nushell_icon.svg @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/lang/strings/translations_en.properties b/lang/strings/translations_en.properties index 14413c63a..e555c9fda 100644 --- a/lang/strings/translations_en.properties +++ b/lang/strings/translations_en.properties @@ -1522,3 +1522,5 @@ appleContainers=Apple containers changeOrderIndexTitle=Change order index orderIndex=Index orderIndexDescription=Explicit index to order this entry relative to others. Lowest indices are shown on top, highest on the bottom +moveToBottom=Move to bottom +moveToTop=Move to top