mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-04-22 15:40:31 -04:00
Ad ability to move categories
This commit is contained in:
@@ -24,6 +24,7 @@ import javafx.css.PseudoClass;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.control.ContextMenu;
|
||||
import javafx.scene.control.Menu;
|
||||
import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.control.SeparatorMenuItem;
|
||||
import javafx.scene.input.KeyCode;
|
||||
@@ -240,6 +241,27 @@ public class StoreCategoryComp extends SimpleComp {
|
||||
|
||||
contextMenu.getItems().add(new SeparatorMenuItem());
|
||||
|
||||
var move = new Menu(AppI18n.get("moveTo"), new FontIcon("mdi2f-folder-move-outline"));
|
||||
StoreViewState.get()
|
||||
.getSortedCategories(getCategory().getRoot())
|
||||
.getList()
|
||||
.forEach(storeCategoryWrapper -> {
|
||||
MenuItem m = new MenuItem();
|
||||
m.textProperty()
|
||||
.setValue(" ".repeat(storeCategoryWrapper.getDepth())
|
||||
+ storeCategoryWrapper.getName().getValue());
|
||||
m.setOnAction(event -> {
|
||||
category.moveToParent(storeCategoryWrapper.getCategory());
|
||||
event.consume();
|
||||
});
|
||||
if (storeCategoryWrapper.getParent() == null) {
|
||||
m.setDisable(true);
|
||||
}
|
||||
|
||||
move.getItems().add(m);
|
||||
});
|
||||
contextMenu.getItems().add(move);
|
||||
|
||||
var del = new MenuItem(AppI18n.get("remove"), new FontIcon("mdal-delete_outline"));
|
||||
del.setOnAction(event -> {
|
||||
category.delete();
|
||||
|
||||
@@ -99,6 +99,10 @@ public class StoreCategoryWrapper {
|
||||
});
|
||||
}
|
||||
|
||||
public void moveToParent(DataStoreCategory newParent) {
|
||||
DataStorage.get().moveCategoryToParent(category, newParent);
|
||||
}
|
||||
|
||||
public void delete() {
|
||||
for (var c : children.getList()) {
|
||||
c.delete();
|
||||
|
||||
@@ -542,6 +542,22 @@ public abstract class DataStorage {
|
||||
saveAsync();
|
||||
}
|
||||
|
||||
|
||||
public void moveCategoryToParent(DataStoreCategory cat, DataStoreCategory newParent) {
|
||||
if (newParent.getUuid().equals(cat.getUuid())) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (cat.getParentCategory() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
cat.setParentCategory(newParent.getUuid());
|
||||
listeners.forEach(storageListener -> storageListener.onEntryCategoryChange());
|
||||
listeners.forEach(storageListener -> storageListener.onStoreListUpdate());
|
||||
saveAsync();
|
||||
}
|
||||
|
||||
public void setOrderIndex(DataStoreEntry entry, int index) {
|
||||
entry.setOrderIndex(index);
|
||||
listeners.forEach(storageListener -> storageListener.onStoreListUpdate());
|
||||
|
||||
@@ -198,12 +198,11 @@ public interface KittyTerminalType extends ExternalTerminalType, TrackableTermin
|
||||
return false;
|
||||
}
|
||||
|
||||
var time = System.currentTimeMillis();
|
||||
sc.command(CommandBuilder.of()
|
||||
.add("open", "-n", "-a", "kitty.app", "--args")
|
||||
.add("-o", "allow_remote_control=socket-only", "--listen-on", "unix:" + getSocket()))
|
||||
.execute();
|
||||
|
||||
|
||||
for (int i = 0; i < 50; i++) {
|
||||
ThreadHelper.sleep(100);
|
||||
try (SocketChannel channel = SocketChannel.open(StandardProtocolFamily.UNIX)) {
|
||||
|
||||
Reference in New Issue
Block a user