Skip to content

Commit

Permalink
Various small fixes [stage]
Browse files Browse the repository at this point in the history
  • Loading branch information
crschnick committed Aug 19, 2024
1 parent 52eb584 commit c9a07dd
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public int getGidForGroup(String name) {

private void loadUsers() throws Exception {
var sc = model.getFileSystem().getShell().orElseThrow();
if (sc.getOsType() == OsType.WINDOWS) {
if (sc.getOsType() == OsType.WINDOWS || sc.getOsType() == OsType.MACOS) {
return;
}

Expand Down
5 changes: 2 additions & 3 deletions app/src/main/java/io/xpipe/app/comp/base/StoreToggleComp.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public static <T extends DataStore> StoreToggleComp simpleToggle(
}

public static <T extends DataStore> StoreToggleComp enableToggle(
String nameKey, StoreSection section, Function<T, Boolean> initial, BiConsumer<T, Boolean> setter) {
String nameKey, StoreSection section, BooleanProperty value, BiConsumer<T, Boolean> setter) {
var val = new SimpleBooleanProperty();
ObservableValue<LabelGraphic> g = val.map(aBoolean -> aBoolean
? new LabelGraphic.IconGraphic("mdi2c-circle-slice-8")
Expand All @@ -62,8 +62,7 @@ public static <T extends DataStore> StoreToggleComp enableToggle(
nameKey,
g,
section,
new SimpleBooleanProperty(
initial.apply(section.getWrapper().getEntry().getStore().asNeeded())),
value,
v -> {
setter.accept(section.getWrapper().getEntry().getStore().asNeeded(), v);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import javafx.beans.property.Property;
import javafx.beans.value.ObservableValue;
import javafx.css.PseudoClass;
import javafx.geometry.Pos;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Region;
Expand All @@ -32,6 +33,7 @@ protected Region createSimple() {
event.consume();
}
});
s.setAlignment(Pos.CENTER);
s.getStyleClass().add("toggle-switch-comp");
s.setSelected(selected.getValue());
s.selectedProperty().addListener((observable, oldValue, newValue) -> {
Expand Down
26 changes: 22 additions & 4 deletions app/src/main/java/io/xpipe/app/ext/EnabledParentStoreProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
import io.xpipe.app.fxcomps.util.BindingsHelper;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.util.ThreadHelper;
import io.xpipe.core.store.EnabledStoreState;
import io.xpipe.core.store.StatefulDataStore;
import javafx.beans.property.SimpleBooleanProperty;

public interface EnabledParentStoreProvider extends DataStoreProvider {

Expand All @@ -18,23 +20,39 @@ default StoreEntryComp customEntryComp(StoreSection sec, boolean preferLarge) {
return StoreEntryComp.create(sec, null, preferLarge);
}

var enabled = StoreToggleComp.<StatefulDataStore<EnabledStoreState>>enableToggle(
null, sec, s -> s.getState().isEnabled(), (s, aBoolean) -> {
EnabledStoreState initialState = sec.getWrapper().getEntry().getStorePersistentState();
var enabled = new SimpleBooleanProperty(initialState.isEnabled());
sec.getWrapper().getPersistentState().subscribe((newValue) -> {
EnabledStoreState s = sec.getWrapper().getEntry().getStorePersistentState();
enabled.set(s.isEnabled());
});

var toggle = StoreToggleComp.<StatefulDataStore<EnabledStoreState>>enableToggle(
null, sec, enabled, (s, aBoolean) -> {
var state = s.getState().toBuilder().enabled(aBoolean).build();
s.setState(state);

var children = DataStorage.get().getStoreChildren(sec.getWrapper().getEntry());
ThreadHelper.runFailableAsync(() -> {
for (DataStoreEntry child : children) {
if (child.getStorePersistentState() instanceof EnabledStoreState enabledStoreState) {
child.setStorePersistentState(enabledStoreState.toBuilder().enabled(aBoolean).build());
}
}
});
});

var e = sec.getWrapper().getEntry();
var parent = DataStorage.get().getDefaultDisplayParent(e);
if (parent.isPresent()) {
var parentWrapper = StoreViewState.get().getEntryWrapper(parent.get());
// Disable selection if parent is already made enabled
enabled.setCustomVisibility(BindingsHelper.map(parentWrapper.getPersistentState(), o -> {
toggle.setCustomVisibility(BindingsHelper.map(parentWrapper.getPersistentState(), o -> {
EnabledStoreState state = (EnabledStoreState) o;
return !state.isEnabled();
}));
}

return StoreEntryComp.create(sec, enabled, preferLarge);
return StoreEntryComp.create(sec, toggle, preferLarge);
}
}
25 changes: 0 additions & 25 deletions app/src/main/java/io/xpipe/app/ext/EnabledStoreProvider.java

This file was deleted.

8 changes: 5 additions & 3 deletions app/src/main/java/io/xpipe/app/fxcomps/util/LabelGraphic.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ public static class IconGraphic extends LabelGraphic {

@Override
public Node createGraphicNode() {
return new FontIcon(icon);
var fi = new FontIcon(icon);
fi.getStyleClass().add("graphic");
return fi;
}
}

Expand All @@ -44,7 +46,7 @@ public static class ImageGraphic extends LabelGraphic {

@Override
public Node createGraphicNode() {
return PrettyImageHelper.ofFixedSizeSquare(file, size).createRegion();
return PrettyImageHelper.ofFixedSizeSquare(file, size).styleClass("graphic").createRegion();
}
}

Expand All @@ -56,7 +58,7 @@ public static class CompGraphic extends LabelGraphic {

@Override
public Node createGraphicNode() {
return comp.createRegion();
return comp.styleClass("graphic").createRegion();
}
}
}
8 changes: 6 additions & 2 deletions app/src/main/resources/io/xpipe/app/resources/style/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,18 @@
-fx-border-radius: 0 6 0 0;
}

.toggle-switch:has-graphic .label {
.toggle-switch-comp:has-graphic .label {
-fx-font-size: 1.7em;
}

.toggle-switch:has-graphic {
.toggle-switch-comp:has-graphic {
-fx-font-size: 0.75em;
}

.toggle-switch-comp .label-container {
-fx-padding: -0.2em 0 0 0;
}

.store-layout .split-pane-divider {
-fx-background-color: transparent;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,15 @@
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.util.OptionsBuilder;
import io.xpipe.core.store.DataStore;

import javafx.beans.property.Property;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;

import lombok.SneakyThrows;

import java.util.List;

public class ScriptGroupStoreProvider implements EnabledStoreProvider, DataStoreProvider {
public class ScriptGroupStoreProvider implements EnabledParentStoreProvider, DataStoreProvider {

@Override
public DataStoreUsageCategory getUsageCategory() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import io.xpipe.core.store.DataStore;

import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.value.ObservableValue;

Expand All @@ -34,7 +35,7 @@ public StoreEntryComp customEntryComp(StoreSection sec, boolean preferLarge) {
}

private StoreToggleComp createToggleComp(StoreSection sec) {
var t = StoreToggleComp.<AbstractServiceGroupStore<?>>enableToggle(null, sec, g -> false, (g, aBoolean) -> {
var t = StoreToggleComp.<AbstractServiceGroupStore<?>>enableToggle(null, sec, new SimpleBooleanProperty(false), (g, aBoolean) -> {
var children = DataStorage.get().getStoreChildren(sec.getWrapper().getEntry());
ThreadHelper.runFailableAsync(() -> {
for (DataStoreEntry child : children) {
Expand Down
Binary file modified gradle/gradle_scripts/atlantafx-base-2.0.2.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
11.0-13
11.0-14

0 comments on commit c9a07dd

Please sign in to comment.