mirror of
https://github.com/xpipe-io/xpipe.git
synced 2024-06-30 20:10:57 +12:00
Reformat
This commit is contained in:
parent
a7c046520c
commit
7821d0e779
|
@ -94,7 +94,8 @@ final class BrowserBookmarkComp extends SimpleComp {
|
||||||
event.consume();
|
event.consume();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}, true);
|
},
|
||||||
|
true);
|
||||||
var category = new DataStoreCategoryChoiceComp(
|
var category = new DataStoreCategoryChoiceComp(
|
||||||
StoreViewState.get().getAllConnectionsCategory(),
|
StoreViewState.get().getAllConnectionsCategory(),
|
||||||
StoreViewState.get().getActiveCategory(),
|
StoreViewState.get().getActiveCategory(),
|
||||||
|
|
|
@ -124,7 +124,11 @@ public class BrowserTransferModel {
|
||||||
try {
|
try {
|
||||||
try (var b = new BooleanScope(downloading).start()) {
|
try (var b = new BooleanScope(downloading).start()) {
|
||||||
FileSystemHelper.dropFilesInto(
|
FileSystemHelper.dropFilesInto(
|
||||||
FileSystemHelper.getLocal(TEMP), List.of(item.getFileEntry()), true, false, progress -> {
|
FileSystemHelper.getLocal(TEMP),
|
||||||
|
List.of(item.getFileEntry()),
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
progress -> {
|
||||||
item.getProgress().setValue(progress);
|
item.getProgress().setValue(progress);
|
||||||
item.getOpenFileSystemModel().getProgress().setValue(progress);
|
item.getOpenFileSystemModel().getProgress().setValue(progress);
|
||||||
});
|
});
|
||||||
|
@ -158,7 +162,8 @@ public class BrowserTransferModel {
|
||||||
public ObservableBooleanValue downloadFinished() {
|
public ObservableBooleanValue downloadFinished() {
|
||||||
return Bindings.createBooleanBinding(
|
return Bindings.createBooleanBinding(
|
||||||
() -> {
|
() -> {
|
||||||
return progress.getValue() != null && progress.getValue().done();
|
return progress.getValue() != null
|
||||||
|
&& progress.getValue().done();
|
||||||
},
|
},
|
||||||
progress);
|
progress);
|
||||||
}
|
}
|
||||||
|
|
|
@ -123,8 +123,7 @@ public class FileSystemHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!model.getFileSystem().directoryExists(path)) {
|
if (!model.getFileSystem().directoryExists(path)) {
|
||||||
throw ErrorEvent.expected(
|
throw ErrorEvent.expected(new IllegalArgumentException(String.format("Directory %s does not exist", path)));
|
||||||
new IllegalArgumentException(String.format("Directory %s does not exist", path)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -153,7 +152,11 @@ public class FileSystemHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void dropLocalFilesInto(
|
public static void dropLocalFilesInto(
|
||||||
FileSystem.FileEntry entry, List<Path> files, Consumer<BrowserTransferProgress> progress, boolean checkConflicts) throws Exception {
|
FileSystem.FileEntry entry,
|
||||||
|
List<Path> files,
|
||||||
|
Consumer<BrowserTransferProgress> progress,
|
||||||
|
boolean checkConflicts)
|
||||||
|
throws Exception {
|
||||||
var entries = files.stream()
|
var entries = files.stream()
|
||||||
.map(path -> {
|
.map(path -> {
|
||||||
try {
|
try {
|
||||||
|
@ -202,7 +205,8 @@ public class FileSystemHelper {
|
||||||
AtomicReference<BrowserAlerts.FileConflictChoice> lastConflictChoice = new AtomicReference<>();
|
AtomicReference<BrowserAlerts.FileConflictChoice> lastConflictChoice = new AtomicReference<>();
|
||||||
for (var file : files) {
|
for (var file : files) {
|
||||||
if (file.getFileSystem().equals(target.getFileSystem())) {
|
if (file.getFileSystem().equals(target.getFileSystem())) {
|
||||||
dropFileAcrossSameFileSystem(target, file, explicitCopy, lastConflictChoice, files.size() > 1, checkConflicts);
|
dropFileAcrossSameFileSystem(
|
||||||
|
target, file, explicitCopy, lastConflictChoice, files.size() > 1, checkConflicts);
|
||||||
progress.accept(BrowserTransferProgress.finished(file.getName(), file.getSize()));
|
progress.accept(BrowserTransferProgress.finished(file.getName(), file.getSize()));
|
||||||
} else {
|
} else {
|
||||||
dropFileAcrossFileSystems(target, file, progress, lastConflictChoice, files.size() > 1, checkConflicts);
|
dropFileAcrossFileSystems(target, file, progress, lastConflictChoice, files.size() > 1, checkConflicts);
|
||||||
|
@ -297,8 +301,12 @@ public class FileSystemHelper {
|
||||||
if (sourceFile.getKind() == FileKind.DIRECTORY) {
|
if (sourceFile.getKind() == FileKind.DIRECTORY) {
|
||||||
target.getFileSystem().mkdirs(targetFile);
|
target.getFileSystem().mkdirs(targetFile);
|
||||||
} else if (sourceFile.getKind() == FileKind.FILE) {
|
} else if (sourceFile.getKind() == FileKind.FILE) {
|
||||||
if (checkConflicts && !handleChoice(
|
if (checkConflicts
|
||||||
lastConflictChoice, target.getFileSystem(), targetFile, multiple || flatFiles.size() > 1)) {
|
&& !handleChoice(
|
||||||
|
lastConflictChoice,
|
||||||
|
target.getFileSystem(),
|
||||||
|
targetFile,
|
||||||
|
multiple || flatFiles.size() > 1)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,13 +79,12 @@ public class SystemStateComp extends SimpleComp {
|
||||||
public static ObservableValue<State> shellState(StoreEntryWrapper w) {
|
public static ObservableValue<State> shellState(StoreEntryWrapper w) {
|
||||||
return BindingsHelper.map(w.getPersistentState(), o -> {
|
return BindingsHelper.map(w.getPersistentState(), o -> {
|
||||||
if (o instanceof ShellStoreState s) {
|
if (o instanceof ShellStoreState s) {
|
||||||
if (s.getShellDialect() != null && !s.getShellDialect().getDumbMode().supportsAnyPossibleInteraction()) {
|
if (s.getShellDialect() != null
|
||||||
|
&& !s.getShellDialect().getDumbMode().supportsAnyPossibleInteraction()) {
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
return s.getRunning() != null
|
return s.getRunning() != null ? s.getRunning() ? SUCCESS : FAILURE : OTHER;
|
||||||
? s.getRunning() ? SUCCESS : FAILURE
|
|
||||||
: OTHER;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return OTHER;
|
return OTHER;
|
||||||
|
|
|
@ -216,7 +216,9 @@ public class StoreEntryWrapper {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.getValidity().isUsable() && entry.getProvider().getSearchableTerms(entry.getStore()).stream().anyMatch(s -> s.toLowerCase().contains(filter.toLowerCase()))) {
|
if (entry.getValidity().isUsable()
|
||||||
|
&& entry.getProvider().getSearchableTerms(entry.getStore()).stream()
|
||||||
|
.anyMatch(s -> s.toLowerCase().contains(filter.toLowerCase()))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,8 @@ public class StoreSectionComp extends Comp<CompStructure<VBox>> {
|
||||||
.apply(struc -> struc.get().setFillHeight(true))
|
.apply(struc -> struc.get().setFillHeight(true))
|
||||||
.hide(BindingsHelper.persist(Bindings.or(
|
.hide(BindingsHelper.persist(Bindings.or(
|
||||||
Bindings.not(section.getWrapper().getExpanded()),
|
Bindings.not(section.getWrapper().getExpanded()),
|
||||||
Bindings.size(section.getShownChildren()).isEqualTo(0))))))
|
Bindings.size(section.getShownChildren())
|
||||||
|
.isEqualTo(0))))))
|
||||||
.styleClass("store-entry-section-comp")
|
.styleClass("store-entry-section-comp")
|
||||||
.apply(struc -> {
|
.apply(struc -> {
|
||||||
struc.get().setFillWidth(true);
|
struc.get().setFillWidth(true);
|
||||||
|
|
|
@ -33,18 +33,21 @@ public class StoreSectionMiniComp extends Comp<CompStructure<VBox>> {
|
||||||
private static final PseudoClass TOP = PseudoClass.getPseudoClass("top");
|
private static final PseudoClass TOP = PseudoClass.getPseudoClass("top");
|
||||||
private static final PseudoClass SUB = PseudoClass.getPseudoClass("sub");
|
private static final PseudoClass SUB = PseudoClass.getPseudoClass("sub");
|
||||||
|
|
||||||
|
|
||||||
private final StoreSection section;
|
private final StoreSection section;
|
||||||
private final BiConsumer<StoreSection, Comp<CompStructure<Button>>> augment;
|
private final BiConsumer<StoreSection, Comp<CompStructure<Button>>> augment;
|
||||||
private final boolean condensedStyle;
|
private final boolean condensedStyle;
|
||||||
|
|
||||||
public StoreSectionMiniComp(StoreSection section, BiConsumer<StoreSection, Comp<CompStructure<Button>>> augment, boolean condensedStyle) {
|
public StoreSectionMiniComp(
|
||||||
|
StoreSection section,
|
||||||
|
BiConsumer<StoreSection, Comp<CompStructure<Button>>> augment,
|
||||||
|
boolean condensedStyle) {
|
||||||
this.section = section;
|
this.section = section;
|
||||||
this.augment = augment;
|
this.augment = augment;
|
||||||
this.condensedStyle = condensedStyle;
|
this.condensedStyle = condensedStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Comp<?> createList(StoreSection top, BiConsumer<StoreSection, Comp<CompStructure<Button>>> augment, boolean condensedStyle) {
|
public static Comp<?> createList(
|
||||||
|
StoreSection top, BiConsumer<StoreSection, Comp<CompStructure<Button>>> augment, boolean condensedStyle) {
|
||||||
return new StoreSectionMiniComp(top, augment, condensedStyle);
|
return new StoreSectionMiniComp(top, augment, condensedStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,8 +131,7 @@ public class StoreSectionMiniComp extends Comp<CompStructure<VBox>> {
|
||||||
if (condensedStyle) {
|
if (condensedStyle) {
|
||||||
vert.styleClass("condensed");
|
vert.styleClass("condensed");
|
||||||
}
|
}
|
||||||
return vert
|
return vert.styleClass("store-section-mini-comp")
|
||||||
.styleClass("store-section-mini-comp")
|
|
||||||
.apply(struc -> {
|
.apply(struc -> {
|
||||||
struc.get().setFillWidth(true);
|
struc.get().setFillWidth(true);
|
||||||
SimpleChangeListener.apply(expanded, val -> {
|
SimpleChangeListener.apply(expanded, val -> {
|
||||||
|
|
|
@ -52,7 +52,11 @@ public class AppFileWatcher {
|
||||||
try {
|
try {
|
||||||
watchService = FileSystems.getDefault().newWatchService();
|
watchService = FileSystems.getDefault().newWatchService();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
ErrorEvent.fromThrowable("Unable to initialize file watcher. Watching and updating files in the file browser will be unavailable.", e).expected().handle();
|
ErrorEvent.fromThrowable(
|
||||||
|
"Unable to initialize file watcher. Watching and updating files in the file browser will be unavailable.",
|
||||||
|
e)
|
||||||
|
.expected()
|
||||||
|
.handle();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,10 @@ import java.util.Optional;
|
||||||
@Value
|
@Value
|
||||||
public class AppVersion implements Comparable<AppVersion> {
|
public class AppVersion implements Comparable<AppVersion> {
|
||||||
|
|
||||||
|
int major;
|
||||||
|
int minor;
|
||||||
|
int patch;
|
||||||
|
|
||||||
public static Optional<AppVersion> parse(String version) {
|
public static Optional<AppVersion> parse(String version) {
|
||||||
try {
|
try {
|
||||||
var releaseSplit = version.split("-");
|
var releaseSplit = version.split("-");
|
||||||
|
@ -23,10 +27,6 @@ public class AppVersion implements Comparable<AppVersion> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int major;
|
|
||||||
int minor;
|
|
||||||
int patch;
|
|
||||||
|
|
||||||
public boolean greaterThan(AppVersion other) {
|
public boolean greaterThan(AppVersion other) {
|
||||||
return compareTo(other) > 0;
|
return compareTo(other) > 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,8 @@ public abstract class ScanProvider {
|
||||||
FailableRunnable<Exception> scanner;
|
FailableRunnable<Exception> scanner;
|
||||||
String licenseFeatureId;
|
String licenseFeatureId;
|
||||||
|
|
||||||
public ScanOperation(String nameKey, boolean disabled, boolean defaultSelected, FailableRunnable<Exception> scanner) {
|
public ScanOperation(
|
||||||
|
String nameKey, boolean disabled, boolean defaultSelected, FailableRunnable<Exception> scanner) {
|
||||||
this.nameKey = nameKey;
|
this.nameKey = nameKey;
|
||||||
this.disabled = disabled;
|
this.disabled = disabled;
|
||||||
this.defaultSelected = defaultSelected;
|
this.defaultSelected = defaultSelected;
|
||||||
|
|
|
@ -100,7 +100,8 @@ public class DataStoreChoiceComp<T extends DataStore> extends SimpleComp {
|
||||||
if (!applicable.test(s.getWrapper())) {
|
if (!applicable.test(s.getWrapper())) {
|
||||||
comp.disable(new SimpleBooleanProperty(true));
|
comp.disable(new SimpleBooleanProperty(true));
|
||||||
}
|
}
|
||||||
}, false);
|
},
|
||||||
|
false);
|
||||||
var category = new DataStoreCategoryChoiceComp(
|
var category = new DataStoreCategoryChoiceComp(
|
||||||
initialCategory != null ? initialCategory.getRoot() : null,
|
initialCategory != null ? initialCategory.getRoot() : null,
|
||||||
StoreViewState.get().getActiveCategory(),
|
StoreViewState.get().getActiveCategory(),
|
||||||
|
|
|
@ -60,8 +60,8 @@ public class AppPrefs {
|
||||||
map(new SimpleBooleanProperty(false), "disableCertutilUse", Boolean.class);
|
map(new SimpleBooleanProperty(false), "disableCertutilUse", Boolean.class);
|
||||||
public final BooleanProperty useLocalFallbackShell =
|
public final BooleanProperty useLocalFallbackShell =
|
||||||
map(new SimpleBooleanProperty(false), "useLocalFallbackShell", Boolean.class);
|
map(new SimpleBooleanProperty(false), "useLocalFallbackShell", Boolean.class);
|
||||||
public final BooleanProperty disableTerminalRemotePasswordPreparation =
|
public final BooleanProperty disableTerminalRemotePasswordPreparation = mapVaultSpecific(
|
||||||
mapVaultSpecific(new SimpleBooleanProperty(false), "disableTerminalRemotePasswordPreparation", Boolean.class);
|
new SimpleBooleanProperty(false), "disableTerminalRemotePasswordPreparation", Boolean.class);
|
||||||
public final Property<Boolean> alwaysConfirmElevation =
|
public final Property<Boolean> alwaysConfirmElevation =
|
||||||
mapVaultSpecific(new SimpleObjectProperty<>(false), "alwaysConfirmElevation", Boolean.class);
|
mapVaultSpecific(new SimpleObjectProperty<>(false), "alwaysConfirmElevation", Boolean.class);
|
||||||
public final BooleanProperty dontCachePasswords =
|
public final BooleanProperty dontCachePasswords =
|
||||||
|
@ -95,7 +95,6 @@ public class AppPrefs {
|
||||||
map(new SimpleBooleanProperty(true), "openConnectionSearchWindowOnConnectionCreation", Boolean.class);
|
map(new SimpleBooleanProperty(true), "openConnectionSearchWindowOnConnectionCreation", Boolean.class);
|
||||||
final ObjectProperty<Path> storageDirectory =
|
final ObjectProperty<Path> storageDirectory =
|
||||||
map(new SimpleObjectProperty<>(DEFAULT_STORAGE_DIR), "storageDirectory", Path.class);
|
map(new SimpleObjectProperty<>(DEFAULT_STORAGE_DIR), "storageDirectory", Path.class);
|
||||||
private AppPrefsStorageHandler vaultStorageHandler;
|
|
||||||
final BooleanProperty developerMode = map(new SimpleBooleanProperty(false), "developerMode", Boolean.class);
|
final BooleanProperty developerMode = map(new SimpleBooleanProperty(false), "developerMode", Boolean.class);
|
||||||
final BooleanProperty developerDisableUpdateVersionCheck =
|
final BooleanProperty developerDisableUpdateVersionCheck =
|
||||||
map(new SimpleBooleanProperty(false), "developerDisableUpdateVersionCheck", Boolean.class);
|
map(new SimpleBooleanProperty(false), "developerDisableUpdateVersionCheck", Boolean.class);
|
||||||
|
@ -107,30 +106,24 @@ public class AppPrefs {
|
||||||
bindDeveloperTrue(developerDisableGuiRestrictions);
|
bindDeveloperTrue(developerDisableGuiRestrictions);
|
||||||
private final ObjectProperty<SupportedLocale> language =
|
private final ObjectProperty<SupportedLocale> language =
|
||||||
map(new SimpleObjectProperty<>(SupportedLocale.ENGLISH), "language", SupportedLocale.class);
|
map(new SimpleObjectProperty<>(SupportedLocale.ENGLISH), "language", SupportedLocale.class);
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final Property<InPlaceSecretValue> lockPassword = new SimpleObjectProperty<>();
|
private final Property<InPlaceSecretValue> lockPassword = new SimpleObjectProperty<>();
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final StringProperty lockCrypt =
|
private final StringProperty lockCrypt =
|
||||||
mapVaultSpecific(new SimpleStringProperty(), "workspaceLock", String.class);
|
mapVaultSpecific(new SimpleStringProperty(), "workspaceLock", String.class);
|
||||||
|
|
||||||
private final IntegerProperty editorReloadTimeout =
|
private final IntegerProperty editorReloadTimeout =
|
||||||
map(new SimpleIntegerProperty(1000), "editorReloadTimeout", Integer.class);
|
map(new SimpleIntegerProperty(1000), "editorReloadTimeout", Integer.class);
|
||||||
private final BooleanProperty confirmDeletions =
|
private final BooleanProperty confirmDeletions =
|
||||||
map(new SimpleBooleanProperty(true), "confirmDeletions", Boolean.class);
|
map(new SimpleBooleanProperty(true), "confirmDeletions", Boolean.class);
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final List<AppPrefsCategory> categories;
|
private final List<AppPrefsCategory> categories;
|
||||||
|
|
||||||
private final AppPrefsStorageHandler globalStorageHandler = new AppPrefsStorageHandler(
|
private final AppPrefsStorageHandler globalStorageHandler = new AppPrefsStorageHandler(
|
||||||
AppProperties.get().getDataDir().resolve("settings").resolve("preferences.json"));
|
AppProperties.get().getDataDir().resolve("settings").resolve("preferences.json"));
|
||||||
private final Map<Mapping<?>, Comp<?>> customEntries = new LinkedHashMap<>();
|
private final Map<Mapping<?>, Comp<?>> customEntries = new LinkedHashMap<>();
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final Property<AppPrefsCategory> selectedCategory;
|
private final Property<AppPrefsCategory> selectedCategory;
|
||||||
|
|
||||||
private final PrefsHandler extensionHandler = new PrefsHandlerImpl();
|
private final PrefsHandler extensionHandler = new PrefsHandlerImpl();
|
||||||
|
private AppPrefsStorageHandler vaultStorageHandler;
|
||||||
|
|
||||||
private AppPrefs() {
|
private AppPrefs() {
|
||||||
this.categories = List.of(
|
this.categories = List.of(
|
||||||
|
@ -159,7 +152,8 @@ public class AppPrefs {
|
||||||
PrefsProvider.getAll().forEach(prov -> prov.addPrefs(INSTANCE.extensionHandler));
|
PrefsProvider.getAll().forEach(prov -> prov.addPrefs(INSTANCE.extensionHandler));
|
||||||
INSTANCE.loadLocal();
|
INSTANCE.loadLocal();
|
||||||
INSTANCE.fixInvalidLocalValues();
|
INSTANCE.fixInvalidLocalValues();
|
||||||
INSTANCE.vaultStorageHandler = new AppPrefsStorageHandler(INSTANCE.storageDirectory().getValue().resolve("preferences.json"));
|
INSTANCE.vaultStorageHandler = new AppPrefsStorageHandler(
|
||||||
|
INSTANCE.storageDirectory().getValue().resolve("preferences.json"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void initSharedRemote() {
|
public static void initSharedRemote() {
|
||||||
|
@ -474,7 +468,8 @@ public class AppPrefs {
|
||||||
public void save() {
|
public void save() {
|
||||||
for (Mapping<?> m : mapping) {
|
for (Mapping<?> m : mapping) {
|
||||||
AppPrefsStorageHandler handler = m.isVaultSpecific() ? vaultStorageHandler : globalStorageHandler;
|
AppPrefsStorageHandler handler = m.isVaultSpecific() ? vaultStorageHandler : globalStorageHandler;
|
||||||
// It might be possible that we save while the vault handler is not initialized yet / has no file or directory
|
// It might be possible that we save while the vault handler is not initialized yet / has no file or
|
||||||
|
// directory
|
||||||
if (!handler.isInitialized()) {
|
if (!handler.isInitialized()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,10 @@ public class AppPrefsStorageHandler {
|
||||||
public <T> T loadObject(String id, Class<T> type, T defaultObject) {
|
public <T> T loadObject(String id, Class<T> type, T defaultObject) {
|
||||||
var tree = getContent(id);
|
var tree = getContent(id);
|
||||||
if (tree == null) {
|
if (tree == null) {
|
||||||
TrackEvent.withDebug("Preferences value not found").tag("id", id).tag("default", defaultObject).handle();
|
TrackEvent.withDebug("Preferences value not found")
|
||||||
|
.tag("id", id)
|
||||||
|
.tag("default", defaultObject)
|
||||||
|
.handle();
|
||||||
return defaultObject;
|
return defaultObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -196,8 +196,12 @@ public interface ExternalTerminalType extends PrefsChoiceValue {
|
||||||
@Override
|
@Override
|
||||||
protected void execute(Path file, LaunchConfiguration configuration) throws Exception {
|
protected void execute(Path file, LaunchConfiguration configuration) throws Exception {
|
||||||
// Tabby has a very weird handling of output, even detaching with start does not prevent it from printing
|
// Tabby has a very weird handling of output, even detaching with start does not prevent it from printing
|
||||||
LocalShell.getShell().executeSimpleCommand(
|
LocalShell.getShell()
|
||||||
CommandBuilder.of().addFile(file.toString()).add("run").addFile(configuration.getScriptFile()).discardOutput());
|
.executeSimpleCommand(CommandBuilder.of()
|
||||||
|
.addFile(file.toString())
|
||||||
|
.add("run")
|
||||||
|
.addFile(configuration.getScriptFile())
|
||||||
|
.discardOutput());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -421,8 +421,11 @@ public abstract class DataStorage {
|
||||||
// pair.getKey().setStoreInternal(pair.getValue().getStore(), false);
|
// pair.getKey().setStoreInternal(pair.getValue().getStore(), false);
|
||||||
|
|
||||||
// Update state by merging
|
// Update state by merging
|
||||||
if (pair.getKey().getStorePersistentState() != null && pair.getValue().get().getStorePersistentState() != null) {
|
if (pair.getKey().getStorePersistentState() != null
|
||||||
var classMatch = pair.getKey().getStorePersistentState().getClass()
|
&& pair.getValue().get().getStorePersistentState() != null) {
|
||||||
|
var classMatch = pair.getKey()
|
||||||
|
.getStorePersistentState()
|
||||||
|
.getClass()
|
||||||
.equals(pair.getValue().get().getStorePersistentState().getClass());
|
.equals(pair.getValue().get().getStorePersistentState().getClass());
|
||||||
// Children classes might not be the same, the same goes for state classes
|
// Children classes might not be the same, the same goes for state classes
|
||||||
// This can happen when there are multiple child classes and the ids got switched around
|
// This can happen when there are multiple child classes and the ids got switched around
|
||||||
|
|
|
@ -171,7 +171,11 @@ public class StandardStorage extends DataStorage {
|
||||||
local.deleteFromDisk();
|
local.deleteFromDisk();
|
||||||
hasFixedLocal = false;
|
hasFixedLocal = false;
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
ErrorEvent.fromThrowable(ex).terminal(true).expected().build().handle();
|
ErrorEvent.fromThrowable(ex)
|
||||||
|
.terminal(true)
|
||||||
|
.expected()
|
||||||
|
.build()
|
||||||
|
.handle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,9 @@ public class AppDownloads {
|
||||||
// If we are currently running a prerelease, always return this as the suitable release!
|
// If we are currently running a prerelease, always return this as the suitable release!
|
||||||
if (preIncluding.isPresent()
|
if (preIncluding.isPresent()
|
||||||
&& preIncluding.get().isPrerelease()
|
&& preIncluding.get().isPrerelease()
|
||||||
&& AppProperties.get().getVersion().equals(preIncluding.get().getTagName())) {
|
&& AppProperties.get()
|
||||||
|
.getVersion()
|
||||||
|
.equals(preIncluding.get().getTagName())) {
|
||||||
return preIncluding;
|
return preIncluding;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,19 +66,28 @@ public class AppInstaller {
|
||||||
@Override
|
@Override
|
||||||
public void installLocal(String file) throws Exception {
|
public void installLocal(String file) throws Exception {
|
||||||
var shellProcessControl = new LocalStore().control().start();
|
var shellProcessControl = new LocalStore().control().start();
|
||||||
var exec = (AppProperties.get().isDevelopmentEnvironment() ? Path.of(XPipeInstallation.getLocalDefaultInstallationBasePath()) :
|
var exec = (AppProperties.get().isDevelopmentEnvironment()
|
||||||
XPipeInstallation.getCurrentInstallationBasePath())
|
? Path.of(XPipeInstallation.getLocalDefaultInstallationBasePath())
|
||||||
.resolve(XPipeInstallation.getDaemonExecutablePath(OsType.getLocal())).toString();
|
: XPipeInstallation.getCurrentInstallationBasePath())
|
||||||
|
.resolve(XPipeInstallation.getDaemonExecutablePath(OsType.getLocal()))
|
||||||
|
.toString();
|
||||||
var logsDir = FileNames.join(XPipeInstallation.getDataDir().toString(), "logs");
|
var logsDir = FileNames.join(XPipeInstallation.getDataDir().toString(), "logs");
|
||||||
var logFile = FileNames.join(logsDir, "installer_" + FileNames.getFileName(file) + ".log");
|
var logFile = FileNames.join(logsDir, "installer_" + FileNames.getFileName(file) + ".log");
|
||||||
var command = LocalShell.getShell().getShellDialect().equals(ShellDialects.CMD) ?
|
var command = LocalShell.getShell().getShellDialect().equals(ShellDialects.CMD)
|
||||||
getCmdCommand(file, logFile, exec) : getPowershellCommand(file, logFile, exec);
|
? getCmdCommand(file, logFile, exec)
|
||||||
var toRun = LocalShell.getShell().getShellDialect().equals(ShellDialects.CMD) ?
|
: getPowershellCommand(file, logFile, exec);
|
||||||
"start \"XPipe Updater\" /min cmd /c \"" + ScriptHelper.createLocalExecScript(command) + "\"" :
|
var toRun = LocalShell.getShell().getShellDialect().equals(ShellDialects.CMD)
|
||||||
"Start-Process -WindowStyle Minimized -FilePath powershell -ArgumentList \"-ExecutionPolicy\", \"Bypass\", \"-File\", \"`\"" + ScriptHelper.createLocalExecScript(command) + "`\"\"";
|
? "start \"XPipe Updater\" /min cmd /c \"" + ScriptHelper.createLocalExecScript(command) + "\""
|
||||||
|
: "Start-Process -WindowStyle Minimized -FilePath powershell -ArgumentList \"-ExecutionPolicy\", \"Bypass\", \"-File\", \"`\""
|
||||||
|
+ ScriptHelper.createLocalExecScript(command) + "`\"\"";
|
||||||
shellProcessControl.executeSimpleCommand(toRun);
|
shellProcessControl.executeSimpleCommand(toRun);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getExtension() {
|
||||||
|
return ".msi";
|
||||||
|
}
|
||||||
|
|
||||||
private String getCmdCommand(String file, String logFile, String exec) {
|
private String getCmdCommand(String file, String logFile, String exec) {
|
||||||
return String.format(
|
return String.format(
|
||||||
"""
|
"""
|
||||||
|
@ -106,11 +115,6 @@ public class AppInstaller {
|
||||||
""",
|
""",
|
||||||
file, file, logFile, file, logFile, exec, exec);
|
file, file, logFile, file, logFile, exec, exec);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getExtension() {
|
|
||||||
return ".msi";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonTypeName("debian")
|
@JsonTypeName("debian")
|
||||||
|
@ -119,7 +123,8 @@ public class AppInstaller {
|
||||||
@Override
|
@Override
|
||||||
public void installLocal(String file) throws Exception {
|
public void installLocal(String file) throws Exception {
|
||||||
var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe";
|
var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe";
|
||||||
var command = String.format("""
|
var command = String.format(
|
||||||
|
"""
|
||||||
function exec {
|
function exec {
|
||||||
echo "+ sudo apt install \\"%s\\""
|
echo "+ sudo apt install \\"%s\\""
|
||||||
DEBIAN_FRONTEND=noninteractive sudo apt-get install -qy "%s" || return 1
|
DEBIAN_FRONTEND=noninteractive sudo apt-get install -qy "%s" || return 1
|
||||||
|
@ -128,7 +133,8 @@ public class AppInstaller {
|
||||||
|
|
||||||
cd ~
|
cd ~
|
||||||
exec || read -rsp "Update failed ..."$'\\n' -n 1 key
|
exec || read -rsp "Update failed ..."$'\\n' -n 1 key
|
||||||
""", file, file, name);
|
""",
|
||||||
|
file, file, name);
|
||||||
TerminalLauncher.openDirect("XPipe Updater", LocalShell.getShell(), command);
|
TerminalLauncher.openDirect("XPipe Updater", LocalShell.getShell(), command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +149,8 @@ public class AppInstaller {
|
||||||
@Override
|
@Override
|
||||||
public void installLocal(String file) throws Exception {
|
public void installLocal(String file) throws Exception {
|
||||||
var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe";
|
var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe";
|
||||||
var command = String.format("""
|
var command = String.format(
|
||||||
|
"""
|
||||||
function exec {
|
function exec {
|
||||||
echo "+ sudo rpm -U -v --force \\"%s\\""
|
echo "+ sudo rpm -U -v --force \\"%s\\""
|
||||||
sudo rpm -U -v --force "%s" || return 1
|
sudo rpm -U -v --force "%s" || return 1
|
||||||
|
@ -152,7 +159,8 @@ public class AppInstaller {
|
||||||
|
|
||||||
cd ~
|
cd ~
|
||||||
exec || read -rsp "Update failed ..."$'\\n' -n 1 key
|
exec || read -rsp "Update failed ..."$'\\n' -n 1 key
|
||||||
""", file, file, name);
|
""",
|
||||||
|
file, file, name);
|
||||||
TerminalLauncher.openDirect("XPipe Updater", LocalShell.getShell(), command);
|
TerminalLauncher.openDirect("XPipe Updater", LocalShell.getShell(), command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +175,8 @@ public class AppInstaller {
|
||||||
@Override
|
@Override
|
||||||
public void installLocal(String file) throws Exception {
|
public void installLocal(String file) throws Exception {
|
||||||
var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe";
|
var name = AppProperties.get().isStaging() ? "xpipe-ptb" : "xpipe";
|
||||||
var command = String.format("""
|
var command = String.format(
|
||||||
|
"""
|
||||||
function exec {
|
function exec {
|
||||||
echo "+ sudo installer -verboseR -allowUntrusted -pkg \\"%s\\" -target /"
|
echo "+ sudo installer -verboseR -allowUntrusted -pkg \\"%s\\" -target /"
|
||||||
sudo installer -verboseR -allowUntrusted -pkg "%s" -target / || return 1
|
sudo installer -verboseR -allowUntrusted -pkg "%s" -target / || return 1
|
||||||
|
@ -176,7 +185,8 @@ public class AppInstaller {
|
||||||
|
|
||||||
cd ~
|
cd ~
|
||||||
exec || echo "Update failed ..." && read -rs -k 1 key
|
exec || echo "Update failed ..." && read -rs -k 1 key
|
||||||
""", file, file, name);
|
""",
|
||||||
|
file, file, name);
|
||||||
TerminalLauncher.openDirect("XPipe Updater", LocalShell.getShell(), command);
|
TerminalLauncher.openDirect("XPipe Updater", LocalShell.getShell(), command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,8 +70,8 @@ public class ApplicationHelper {
|
||||||
ShellControl processControl, String executable, String displayName, DataStoreEntry connection)
|
ShellControl processControl, String executable, String displayName, DataStoreEntry connection)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
if (!isInPath(processControl, executable)) {
|
if (!isInPath(processControl, executable)) {
|
||||||
throw ErrorEvent.expected(new IOException(displayName + " executable " + executable
|
throw ErrorEvent.expected(new IOException(displayName + " executable " + executable + " not found in PATH"
|
||||||
+ " not found in PATH" + (connection != null ? " on system " + connection.getName() : "")));
|
+ (connection != null ? " on system " + connection.getName() : "")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,11 @@ public class DataStoreFormatter {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s.getShellDialect() != null && !s.getShellDialect().getDumbMode().supportsAnyPossibleInteraction()) {
|
if (s.getShellDialect() != null
|
||||||
return s.getOsName() != null ? s.getOsName() : s.getShellDialect().getDisplayName();
|
&& !s.getShellDialect().getDumbMode().supportsAnyPossibleInteraction()) {
|
||||||
|
return s.getOsName() != null
|
||||||
|
? s.getOsName()
|
||||||
|
: s.getShellDialect().getDisplayName();
|
||||||
}
|
}
|
||||||
|
|
||||||
return s.isRunning() ? s.getOsName() : "Connection failed";
|
return s.isRunning() ? s.getOsName() : "Connection failed";
|
||||||
|
|
|
@ -72,7 +72,8 @@ public class FileOpener {
|
||||||
editor.launch(Path.of(localFile).toRealPath());
|
editor.launch(Path.of(localFile).toRealPath());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
ErrorEvent.fromThrowable(e)
|
ErrorEvent.fromThrowable(e)
|
||||||
.description("Unable to launch editor " + editor.toTranslatedString().getValue()
|
.description("Unable to launch editor "
|
||||||
|
+ editor.toTranslatedString().getValue()
|
||||||
+ ".\nMaybe try to use a different editor in the settings.")
|
+ ".\nMaybe try to use a different editor in the settings.")
|
||||||
.expected()
|
.expected()
|
||||||
.handle();
|
.handle();
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class ScanAlert {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void show(
|
private static void show(
|
||||||
DataStoreEntry initialStore, BiFunction<DataStoreEntry, ShellControl,List<ScanProvider.ScanOperation>> applicable) {
|
DataStoreEntry initialStore,
|
||||||
|
BiFunction<DataStoreEntry, ShellControl, List<ScanProvider.ScanOperation>> applicable) {
|
||||||
DialogComp.showWindow(
|
DialogComp.showWindow(
|
||||||
"scanAlertTitle",
|
"scanAlertTitle",
|
||||||
stage -> new Dialog(stage, initialStore != null ? initialStore.ref() : null, applicable));
|
stage -> new Dialog(stage, initialStore != null ? initialStore.ref() : null, applicable));
|
||||||
|
@ -85,7 +86,7 @@ public class ScanAlert {
|
||||||
private Dialog(
|
private Dialog(
|
||||||
Stage window,
|
Stage window,
|
||||||
DataStoreEntryRef<ShellStore> entry,
|
DataStoreEntryRef<ShellStore> entry,
|
||||||
BiFunction<DataStoreEntry, ShellControl,List<ScanProvider.ScanOperation>> applicable) {
|
BiFunction<DataStoreEntry, ShellControl, List<ScanProvider.ScanOperation>> applicable) {
|
||||||
this.window = window;
|
this.window = window;
|
||||||
this.initialStore = entry;
|
this.initialStore = entry;
|
||||||
this.entry = new SimpleObjectProperty<>(entry);
|
this.entry = new SimpleObjectProperty<>(entry);
|
||||||
|
@ -110,13 +111,14 @@ public class ScanAlert {
|
||||||
});
|
});
|
||||||
|
|
||||||
BooleanScope.execute(busy, () -> {
|
BooleanScope.execute(busy, () -> {
|
||||||
shellControl.start();
|
|
||||||
entry.get().get().setExpanded(true);
|
entry.get().get().setExpanded(true);
|
||||||
var copy = new ArrayList<>(selected);
|
var copy = new ArrayList<>(selected);
|
||||||
for (var a : copy) {
|
for (var a : copy) {
|
||||||
// If the user decided to remove the selected entry
|
// If the user decided to remove the selected entry
|
||||||
// while the scan is running, just return instantly
|
// while the scan is running, just return instantly
|
||||||
if (!DataStorage.get().getStoreEntriesSet().contains(entry.get().get())) {
|
if (!DataStorage.get()
|
||||||
|
.getStoreEntriesSet()
|
||||||
|
.contains(entry.get().get())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +202,10 @@ public class ScanAlert {
|
||||||
}
|
}
|
||||||
|
|
||||||
var suffix = LicenseProvider.get().getFeature(s.getLicensedFeatureId());
|
var suffix = LicenseProvider.get().getFeature(s.getLicensedFeatureId());
|
||||||
return n + suffix.getDescriptionSuffix().map(d -> " (" + d + ")").orElse("");
|
return n
|
||||||
|
+ suffix.getDescriptionSuffix()
|
||||||
|
.map(d -> " (" + d + ")")
|
||||||
|
.orElse("");
|
||||||
};
|
};
|
||||||
var r = new ListSelectorComp<>(
|
var r = new ListSelectorComp<>(
|
||||||
a,
|
a,
|
||||||
|
|
|
@ -116,7 +116,8 @@ public class SecretQueryProgress {
|
||||||
private boolean shouldCache(SecretQuery query, String prompt) {
|
private boolean shouldCache(SecretQuery query, String prompt) {
|
||||||
var shouldCache = query.cache()
|
var shouldCache = query.cache()
|
||||||
&& SecretManager.shouldCacheForPrompt(prompt)
|
&& SecretManager.shouldCacheForPrompt(prompt)
|
||||||
&& (!query.respectDontCacheSetting() || !AppPrefs.get().dontCachePasswords().get());
|
&& (!query.respectDontCacheSetting()
|
||||||
|
|| !AppPrefs.get().dontCachePasswords().get());
|
||||||
return shouldCache;
|
return shouldCache;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,9 +45,11 @@ public class ShellTemp {
|
||||||
|
|
||||||
// Always delete legacy directory and do not care whether it partially fails
|
// Always delete legacy directory and do not care whether it partially fails
|
||||||
// This system xpipe temp directory might contain other files on the local machine, so only clear the exec
|
// This system xpipe temp directory might contain other files on the local machine, so only clear the exec
|
||||||
d.deleteFileOrDirectory(proc, FileNames.join(systemTemp, "xpipe", "exec")).executeAndCheck();
|
d.deleteFileOrDirectory(proc, FileNames.join(systemTemp, "xpipe", "exec"))
|
||||||
|
.executeAndCheck();
|
||||||
d.deleteFileOrDirectory(proc, FileNames.join(home, ".xpipe", "temp")).executeAndCheck();
|
d.deleteFileOrDirectory(proc, FileNames.join(home, ".xpipe", "temp")).executeAndCheck();
|
||||||
d.deleteFileOrDirectory(proc, FileNames.join(home, ".xpipe", "system_id")).executeAndCheck();
|
d.deleteFileOrDirectory(proc, FileNames.join(home, ".xpipe", "system_id"))
|
||||||
|
.executeAndCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean checkDirectoryPermissions(ShellControl proc, String dir) throws Exception {
|
private static boolean checkDirectoryPermissions(ShellControl proc, String dir) throws Exception {
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
.root {
|
.root {
|
||||||
-fx-font-family: "Roboto";
|
-fx-font-family: "Roboto";
|
||||||
}
|
}
|
|
@ -18,7 +18,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-pane:header .header-panel {
|
.dialog-pane:header .header-panel {
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
-fx-padding: 1.5em;
|
-fx-padding: 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,9 +27,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-pane:header > .content {
|
.dialog-pane:header > .content {
|
||||||
-fx-border-width: 2px 0 0 0;
|
-fx-border-width: 2px 0 0 0;
|
||||||
-fx-border-color:-color-accent-fg;
|
-fx-border-color: -color-accent-fg;
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
-fx-border-insets: 0 1.5em 1.5em 1.5em;
|
-fx-border-insets: 0 1.5em 1.5em 1.5em;
|
||||||
-fx-padding: 1.5em 0 0 0;
|
-fx-padding: 1.5em 0 0 0;
|
||||||
}
|
}
|
||||||
|
@ -48,6 +48,6 @@
|
||||||
-fx-text-fill: -color-fg-default;
|
-fx-text-fill: -color-fg-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog-pane:header > *.label.content{
|
.dialog-pane:header > *.label.content {
|
||||||
-fx-font-size: 0.8em;
|
-fx-font-size: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
|
|
||||||
.bookmark-list > .categories {
|
.bookmark-list > .categories {
|
||||||
-fx-padding: 0.7em 1em 0.7em 1em;
|
-fx-padding: 0.7em 1em 0.7em 1em;
|
||||||
-fx-background-color: -color-bg-subtle;
|
-fx-background-color: -color-bg-subtle;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-border-width: 0 0 1 0;
|
-fx-border-width: 0 0 1 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bookmark-list .filter-comp {
|
.bookmark-list .filter-comp {
|
||||||
-fx-border-width: 1;
|
-fx-border-width: 1;
|
||||||
-fx-border-radius: 0 4px 4px 0;
|
-fx-border-radius: 0 4px 4px 0;
|
||||||
-fx-background-radius: 0 4px 4px 0;
|
-fx-background-radius: 0 4px 4px 0;
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bookmark-list .store-section-mini-comp .item:selected {
|
.bookmark-list .store-section-mini-comp .item:selected {
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.transfer .button {
|
.transfer .button {
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
-fx-background-radius: 4;
|
-fx-background-radius: 4;
|
||||||
-fx-border-radius: 4;
|
-fx-border-radius: 4;
|
||||||
|
@ -46,11 +46,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.selected-file-list.drag {
|
.selected-file-list.drag {
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
-fx-background-radius: 1px;
|
-fx-background-radius: 1px;
|
||||||
-fx-border-radius: 1px;
|
-fx-border-radius: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bookmark-list .tree-cell:filled:hover {
|
.bookmark-list .tree-cell:filled:hover {
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
.browser .top-bar {
|
.browser .top-bar {
|
||||||
-fx-border-width: 1 0 1 0;
|
-fx-border-width: 1 0 1 0;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-padding: 5px 10px ;
|
-fx-padding: 5px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .top-bar > .button {
|
.browser .top-bar > .button {
|
||||||
|
@ -146,48 +146,48 @@
|
||||||
|
|
||||||
.browser .status-bar {
|
.browser .status-bar {
|
||||||
-fx-border-width: 1 0 0 0;
|
-fx-border-width: 1 0 0 0;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-font-family: Roboto;
|
-fx-font-family: Roboto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .breadcrumbs >.divider {
|
.browser .breadcrumbs > .divider {
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .context-menu > * > * {
|
.browser .context-menu > * > * {
|
||||||
-fx-padding: 3px 10px 3px 10px;
|
-fx-padding: 3px 10px 3px 10px;
|
||||||
-fx-background-radius: 1px;
|
-fx-background-radius: 1px;
|
||||||
-fx-spacing: 20px;
|
-fx-spacing: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .context-menu .separator {
|
.browser .context-menu .separator {
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .breadcrumbs {
|
.browser .breadcrumbs {
|
||||||
-fx-padding: 2px 10px 2px 10px;
|
-fx-padding: 2px 10px 2px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .context-menu .separator .line {
|
.browser .context-menu .separator .line {
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
-fx-border-insets: 0px;
|
-fx-border-insets: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .breadcrumbs {
|
.browser .breadcrumbs {
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .breadcrumbs .button {
|
.browser .breadcrumbs .button {
|
||||||
-fx-padding: 3px 1px 3px 1px;
|
-fx-padding: 3px 1px 3px 1px;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .breadcrumbs .button:hover {
|
.browser .breadcrumbs .button:hover {
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .path-text:invisible {
|
.browser .path-text:invisible {
|
||||||
-fx-text-fill: transparent;
|
-fx-text-fill: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .overview-file-list {
|
.browser .overview-file-list {
|
||||||
|
@ -201,11 +201,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .context-menu .accelerator-text {
|
.browser .context-menu .accelerator-text {
|
||||||
-fx-padding: 3px 0px 3px 50px;
|
-fx-padding: 3px 0px 3px 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .context-menu > * {
|
.browser .context-menu > * {
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .context-menu {
|
.browser .context-menu {
|
||||||
|
@ -217,24 +217,26 @@
|
||||||
|
|
||||||
.browser .tab-pane {
|
.browser .tab-pane {
|
||||||
-fx-border-width: 0 0 0 1px;
|
-fx-border-width: 0 0 0 1px;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chooser-bar {
|
.chooser-bar {
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-border-width: 1 0 0 0;
|
-fx-border-width: 1 0 0 0;
|
||||||
-fx-padding: 0.4em 0.7em;
|
-fx-padding: 0.4em 0.7em;
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .tab-content-area { -fx-padding: 0; }
|
.browser .tab-content-area {
|
||||||
|
-fx-padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.browser .singular {
|
.browser .singular {
|
||||||
-fx-tab-max-height: 0 ;
|
-fx-tab-max-height: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .singular .tab-header-area {
|
.browser .singular .tab-header-area {
|
||||||
visibility: hidden ;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .table-view {
|
.browser .table-view {
|
||||||
|
@ -250,7 +252,7 @@
|
||||||
|
|
||||||
/* setting opacity directly to the .table-cell or .table-row-cell
|
/* setting opacity directly to the .table-cell or .table-row-cell
|
||||||
leads to incorrect table row height calculation #javafx-bug */
|
leads to incorrect table row height calculation #javafx-bug */
|
||||||
.browser .table-row-cell:hidden >.table-cell > * {
|
.browser .table-row-cell:hidden > .table-cell > * {
|
||||||
-fx-opacity: 0.75;
|
-fx-opacity: 0.75;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,7 +260,7 @@
|
||||||
-fx-opacity: 0.65;
|
-fx-opacity: 0.65;
|
||||||
}
|
}
|
||||||
|
|
||||||
.browser .table-row-cell:file:hover,.table-row-cell:folder:hover {
|
.browser .table-row-cell:file:hover, .table-row-cell:folder:hover {
|
||||||
-fx-background-color: -color-accent-subtle;
|
-fx-background-color: -color-accent-subtle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.category-button {
|
.category-button {
|
||||||
-fx-opacity: 0.8;
|
-fx-opacity: 0.8;
|
||||||
-fx-border-width: 0;
|
-fx-border-width: 0;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
-fx-padding: 0 0 0 2;
|
-fx-padding: 0 0 0 2;
|
||||||
|
@ -11,29 +11,29 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-button .settings {
|
.category-button .settings {
|
||||||
-fx-opacity: 1.0;
|
-fx-opacity: 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-button:hover, .category-button:focused {
|
.category-button:hover, .category-button:focused {
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.category:selected .category-button {
|
.category:selected .category-button {
|
||||||
-fx-opacity: 1.0;
|
-fx-opacity: 1.0;
|
||||||
-fx-background-radius: 4px;
|
-fx-background-radius: 4px;
|
||||||
-fx-border-radius: 4px;
|
-fx-border-radius: 4px;
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.category .separator{
|
.category .separator {
|
||||||
-fx-padding: 0 5 0 5;
|
-fx-padding: 0 5 0 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.category .separator .line {
|
.category .separator .line {
|
||||||
-fx-pref-height: 1;
|
-fx-pref-height: 1;
|
||||||
-fx-background-color: -color-fg-default;
|
-fx-background-color: -color-fg-default;
|
||||||
-fx-opacity: 0.5;
|
-fx-opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
.combo-box {
|
.combo-box {
|
||||||
-fx-focus-color: transparent;
|
-fx-focus-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.choice-comp-content > .top {
|
.choice-comp-content > .top {
|
||||||
-fx-padding: 0.5em 1em 0.5em 1em;
|
-fx-padding: 0.5em 1em 0.5em 1em;
|
||||||
-fx-background-color: -color-neutral-subtle;
|
-fx-background-color: -color-neutral-subtle;
|
||||||
-fx-border-width: 1 0 1 0;
|
-fx-border-width: 1 0 1 0;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.choice-comp .filter-comp {
|
.choice-comp .filter-comp {
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
}
|
}
|
|
@ -1,18 +1,18 @@
|
||||||
.code-snippet {
|
.code-snippet {
|
||||||
-fx-padding: 0.3em 0.5em 0.3em 0.5em;
|
-fx-padding: 0.3em 0.5em 0.3em 0.5em;
|
||||||
-fx-border-width: 0;
|
-fx-border-width: 0;
|
||||||
-fx-border-color:-color-accent-fg;
|
-fx-border-color: -color-accent-fg;
|
||||||
-fx-spacing: 0;
|
-fx-spacing: 0;
|
||||||
-fx-font-family: Monospace;
|
-fx-font-family: Monospace;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code-snippet-container {
|
.code-snippet-container {
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-border-color:-color-accent-fg;
|
-fx-border-color: -color-accent-fg;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
-fx-border-radius: 4px;
|
-fx-border-radius: 4px;
|
||||||
-fx-background-radius: 4px;
|
-fx-background-radius: 4px;
|
||||||
-fx-padding: 3px;
|
-fx-padding: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.copy {
|
.copy {
|
||||||
|
@ -20,17 +20,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-number {
|
.line-number {
|
||||||
-fx-alignment: center-right;
|
-fx-alignment: center-right;
|
||||||
-fx-font-family: Monospace;
|
-fx-font-family: Monospace;
|
||||||
-fx-text-fill: grey;
|
-fx-text-fill: grey;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-numbers {
|
.line-numbers {
|
||||||
-fx-padding: 0.3em 0.2em 0.3em 0.5em;
|
-fx-padding: 0.3em 0.2em 0.3em 0.5em;
|
||||||
-fx-background-color: #073B4C11;
|
-fx-background-color: #073B4C11;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code-snippet-container .spacer {
|
.code-snippet-container .spacer {
|
||||||
-fx-pref-width: 1px;
|
-fx-pref-width: 1px;
|
||||||
-fx-background-color:-color-accent-fg;
|
-fx-background-color: -color-accent-fg;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.root:pretty:dark .color-box.gray {
|
.root:pretty:dark .color-box.gray {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, derive(-color-bg-default, 13%) 40%, derive(-color-bg-default, 11%) 50%, derive(-color-bg-default, 14%) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, derive(-color-bg-default, 13%) 40%, derive(-color-bg-default, 11%) 50%, derive(-color-bg-default, 14%) 100%);
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
|
@ -45,9 +44,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.root:pretty:light .color-box.blue {
|
.root:pretty:light .color-box.blue {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(130, 130, 250, 0.2) 40%, rgb(57, 57, 200, 0.2) 50%, rgb(137, 137, 250, 0.2) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(130, 130, 250, 0.2) 40%, rgb(57, 57, 200, 0.2) 50%, rgb(137, 137, 250, 0.2) 100%);
|
||||||
-fx-border-color: rgba(80, 100, 150, 0.3);
|
-fx-border-color: rgba(80, 100, 150, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +59,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:pretty:dark .color-box.blue {
|
.root:pretty:dark .color-box.blue {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(30, 30, 80, 0.8) 40%, rgb(27, 27, 65, 0.8) 50%, rgb(37, 37, 100, 0.8) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(30, 30, 80, 0.8) 40%, rgb(27, 27, 65, 0.8) 50%, rgb(37, 37, 100, 0.8) 100%);
|
||||||
-fx-border-color: rgba(80, 100, 150, 0.7);
|
-fx-border-color: rgba(80, 100, 150, 0.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,9 +73,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.root:pretty:light .color-box.red {
|
.root:pretty:light .color-box.red {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(220, 100, 100, 0.15) 40%, rgb(205, 50, 50, 0.15) 50%, rgb(200, 90, 90, 0.15) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(220, 100, 100, 0.15) 40%, rgb(205, 50, 50, 0.15) 50%, rgb(200, 90, 90, 0.15) 100%);
|
||||||
-fx-border-color: rgba(150, 100, 80, 0.4);
|
-fx-border-color: rgba(150, 100, 80, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +88,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:pretty:dark .color-box.red {
|
.root:pretty:dark .color-box.red {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(80, 30, 30, 0.4) 40%, rgb(65, 27, 27, 0.4) 50%, rgb(100, 37, 37, 0.4) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(80, 30, 30, 0.4) 40%, rgb(65, 27, 27, 0.4) 50%, rgb(100, 37, 37, 0.4) 100%);
|
||||||
-fx-border-color: rgba(150, 100, 80, 0.4);
|
-fx-border-color: rgba(150, 100, 80, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,9 +102,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.root:pretty:light .color-box.yellow {
|
.root:pretty:light .color-box.yellow {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(180, 180, 30, 0.2) 40%, rgb(135, 135, 27, 0.2) 50%, rgb(200, 200, 37, 0.2) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(180, 180, 30, 0.2) 40%, rgb(135, 135, 27, 0.2) 50%, rgb(200, 200, 37, 0.2) 100%);
|
||||||
-fx-border-color: rgba(170, 170, 80, 0.3);
|
-fx-border-color: rgba(170, 170, 80, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +117,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:pretty:dark .color-box.yellow {
|
.root:pretty:dark .color-box.yellow {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(80, 80, 30, 0.4) 40%, rgb(65, 65, 27, 0.4) 50%, rgb(100, 100, 37, 0.4) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(80, 80, 30, 0.4) 40%, rgb(65, 65, 27, 0.4) 50%, rgb(100, 100, 37, 0.4) 100%);
|
||||||
-fx-border-color: rgba(150, 150, 80, 0.4);
|
-fx-border-color: rgba(150, 150, 80, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,9 +131,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.root:pretty:light .color-box.green {
|
.root:pretty:light .color-box.green {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(30, 180, 30, 0.1) 40%, rgb(20, 120, 20, 0.15) 50%, rgb(37, 200, 37, 0.1) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(30, 180, 30, 0.1) 40%, rgb(20, 120, 20, 0.15) 50%, rgb(37, 200, 37, 0.1) 100%);
|
||||||
-fx-border-color: rgba(100, 150, 80, 0.2);
|
-fx-border-color: rgba(100, 150, 80, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,7 +146,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:pretty:dark .color-box.green {
|
.root:pretty:dark .color-box.green {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(30, 80, 30, 0.3) 40%, rgb(20, 60, 20, 0.3) 50%, rgb(37, 100, 37, 0.3) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(30, 80, 30, 0.3) 40%, rgb(20, 60, 20, 0.3) 50%, rgb(37, 100, 37, 0.3) 100%);
|
||||||
-fx-border-color: rgba(100, 190, 80, 0.3);
|
-fx-border-color: rgba(100, 190, 80, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
.error-handler-comp .top {
|
.error-handler-comp .top {
|
||||||
-fx-padding: 1.0em 1.5em 1.0em 1.5em;
|
-fx-padding: 1.0em 1.5em 1.0em 1.5em;
|
||||||
-fx-spacing: 1em;
|
-fx-spacing: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error-handler-comp .actions {
|
.error-handler-comp .actions {
|
||||||
-fx-spacing: 0.3em;
|
-fx-spacing: 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error-handler-comp .details {
|
.error-handler-comp .details {
|
||||||
-fx-padding: 0 1.5em 1.0em 1.5em;
|
-fx-padding: 0 1.5em 1.0em 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error-report .report {
|
.error-report .report {
|
||||||
-fx-padding: 1.0em 1.5em 1em 1.5em;
|
-fx-padding: 1.0em 1.5em 1em 1.5em;
|
||||||
-fx-spacing: 1.3em;
|
-fx-spacing: 1.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error-report .report, .error-report .attachments {
|
.error-report .report, .error-report .attachments {
|
||||||
-fx-spacing: 0.3em;
|
-fx-spacing: 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error-report .attachments .attachment-list .content {
|
.error-report .attachments .attachment-list .content {
|
||||||
-fx-padding: 0.5em 1em;
|
-fx-padding: 0.5em 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.error-report .buttons {
|
.error-report .buttons {
|
||||||
-fx-border-color: -color-neutral-emphasis;
|
-fx-border-color: -color-neutral-emphasis;
|
||||||
-fx-border-width: 1px 0 0 0;
|
-fx-border-width: 1px 0 0 0;
|
||||||
-fx-padding: 1.0em 1.5em 1em 1.5em;
|
-fx-padding: 1.0em 1.5em 1em 1.5em;
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.error-overlay-comp {
|
.error-overlay-comp {
|
||||||
-fx-padding: 1.0em;
|
-fx-padding: 1.0em;
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-border-radius: 2px;
|
-fx-border-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.file-drop-comp {
|
.file-drop-comp {
|
||||||
-fx-background-color: #FFFFFF88;
|
-fx-background-color: #FFFFFF88;
|
||||||
-fx-font-size: 10em;
|
-fx-font-size: 10em;
|
||||||
}
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
.filter-comp .text-field {
|
.filter-comp .text-field {
|
||||||
-fx-padding: 0.15em 0.3em 0.15em 0.3em;
|
-fx-padding: 0.15em 0.3em 0.15em 0.3em;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-comp .input-line {
|
.filter-comp .input-line {
|
||||||
-fx-opacity: 0.2;
|
-fx-opacity: 0.2;
|
||||||
}
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
.bar {
|
.bar {
|
||||||
-fx-padding: 0.8em 1.0em 0.8em 1.0em;
|
-fx-padding: 0.8em 1.0em 0.8em 1.0em;
|
||||||
-fx-background-color: -color-bg-subtle;
|
-fx-background-color: -color-bg-subtle;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:pretty .bar {
|
.root:pretty .bar {
|
||||||
|
@ -10,10 +10,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-header-bar {
|
.store-header-bar {
|
||||||
-fx-background-radius: 0 0 4px 0;
|
-fx-background-radius: 0 0 4px 0;
|
||||||
-fx-border-radius: 0 0 4px 0;
|
-fx-border-radius: 0 0 4px 0;
|
||||||
-fx-border-width: 0 0.05em 0.05em 0;
|
-fx-border-width: 0 0.05em 0.05em 0;
|
||||||
-fx-spacing: 0.8em;
|
-fx-spacing: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.root.nord .store-header-bar {
|
.root.nord .store-header-bar {
|
||||||
|
@ -27,20 +27,20 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar .filter-bar .text-field {
|
.bar .filter-bar .text-field {
|
||||||
-fx-padding: 0.35em;
|
-fx-padding: 0.35em;
|
||||||
-fx-text-fill: -color-fg-default;
|
-fx-text-fill: -color-fg-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-header-bar .menu-button {
|
.store-header-bar .menu-button {
|
||||||
-fx-background-radius: 3px;
|
-fx-background-radius: 3px;
|
||||||
-fx-border-radius: 3px;
|
-fx-border-radius: 3px;
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(208, 220, 252) 40%, rgba(219, 219, 255, 1) 50%, rgb(250, 242, 242) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(208, 220, 252) 40%, rgba(219, 219, 255, 1) 50%, rgb(250, 242, 242) 100%);
|
||||||
-fx-border-color: transparent;
|
-fx-border-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:light .store-header-bar .menu-button {
|
.root:light .store-header-bar .menu-button {
|
||||||
-fx-background-color: linear-gradient(from 100% 0% to 0% 100% , rgb(12, 11, 11) 40%, rgb(32, 32, 40) 50%, rgb(35, 29, 29) 100%);
|
-fx-background-color: linear-gradient(from 100% 0% to 0% 100%, rgb(12, 11, 11) 40%, rgb(32, 32, 40) 50%, rgb(35, 29, 29) 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:light .store-header-bar .menu-button:hover, .root:dark .store-header-bar .menu-button:hover {
|
.root:light .store-header-bar .menu-button:hover, .root:dark .store-header-bar .menu-button:hover {
|
||||||
|
@ -75,25 +75,25 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-header-bar .menu-button .context-menu > * > * {
|
.store-header-bar .menu-button .context-menu > * > * {
|
||||||
-fx-padding: 5px 10px 5px 10px;
|
-fx-padding: 5px 10px 5px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-header-bar .menu-button .context-menu > * {
|
.store-header-bar .menu-button .context-menu > * {
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-header-bar .menu-button .context-menu {
|
.store-header-bar .menu-button .context-menu {
|
||||||
-fx-padding: 3px;
|
-fx-padding: 3px;
|
||||||
-fx-background-radius: 4px;
|
-fx-background-radius: 4px;
|
||||||
-fx-border-radius: 4px;
|
-fx-border-radius: 4px;
|
||||||
-fx-border-color: -color-neutral-muted;
|
-fx-border-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-creation-bar, .store-sort-bar, .store-category-bar {
|
.store-creation-bar, .store-sort-bar, .store-category-bar {
|
||||||
-fx-background-radius: 0 4px 4px 0;
|
-fx-background-radius: 0 4px 4px 0;
|
||||||
-fx-border-radius: 0 4px 4px 0;
|
-fx-border-radius: 0 4px 4px 0;
|
||||||
-fx-border-width: 0.05em 0.05em 0.05em 0;
|
-fx-border-width: 0.05em 0.05em 0.05em 0;
|
||||||
-fx-spacing: 0.2em;
|
-fx-spacing: 0.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.root.nord .store-creation-bar, .root.nord .store-sort-bar, .root.nord .store-category-bar {
|
.root.nord .store-creation-bar, .root.nord .store-sort-bar, .root.nord .store-category-bar {
|
||||||
|
@ -102,82 +102,82 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-category-bar {
|
.store-category-bar {
|
||||||
-fx-padding: 0.8em 0.5em 0.8em 0.5em;
|
-fx-padding: 0.8em 0.5em 0.8em 0.5em;
|
||||||
-fx-background-color: -color-bg-subtle;
|
-fx-background-color: -color-bg-subtle;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-sort-bar {
|
.store-sort-bar {
|
||||||
-fx-background-radius: 0 4px 4px 0;
|
-fx-background-radius: 0 4px 4px 0;
|
||||||
-fx-border-radius: 0 4px 4px 0;
|
-fx-border-radius: 0 4px 4px 0;
|
||||||
-fx-border-width: 0.05em 0.05em 0.05em 0;
|
-fx-border-width: 0.05em 0.05em 0.05em 0;
|
||||||
-fx-spacing: 0.2em;
|
-fx-spacing: 0.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filler-bar {
|
.filler-bar {
|
||||||
-fx-background-radius: 0 4px 0 0;
|
-fx-background-radius: 0 4px 0 0;
|
||||||
-fx-border-radius: 0 4px 0 0;
|
-fx-border-radius: 0 4px 0 0;
|
||||||
-fx-border-width: 0.05em 0.05em 0 0;
|
-fx-border-width: 0.05em 0.05em 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
-fx-spacing: 0.4em;
|
-fx-spacing: 0.4em;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar .button-comp {
|
.bar .button-comp {
|
||||||
-fx-padding: 0.2em 0em 0.2em 0em;
|
-fx-padding: 0.2em 0em 0.2em 0em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.collections-bar {
|
.collections-bar {
|
||||||
-fx-background-radius: 0 0 4px 0;
|
-fx-background-radius: 0 0 4px 0;
|
||||||
-fx-border-radius: 0 0 4px 0;
|
-fx-border-radius: 0 0 4px 0;
|
||||||
-fx-border-width: 0 4px 4px 0;
|
-fx-border-width: 0 4px 4px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry-bar {
|
.entry-bar {
|
||||||
-fx-background-radius: 0 0 4px 4px;
|
-fx-background-radius: 0 0 4px 4px;
|
||||||
-fx-border-radius: 0 0 4px 4px;
|
-fx-border-radius: 0 0 4px 4px;
|
||||||
-fx-border-width: 0 4px 4px 4px;
|
-fx-border-width: 0 4px 4px 4px;
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry-bar .horizontal-comp {
|
.entry-bar .horizontal-comp {
|
||||||
-fx-spacing: 5px;
|
-fx-spacing: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar .icon-button-comp {
|
.bar .icon-button-comp {
|
||||||
-fx-text-fill: -color-fg-default;
|
-fx-text-fill: -color-fg-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar .name {
|
.bar .name {
|
||||||
-fx-font-weight: BOLD;
|
-fx-font-weight: BOLD;
|
||||||
-fx-text-fill: -color-fg-default;
|
-fx-text-fill: -color-fg-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar .count-comp {
|
.bar .count-comp {
|
||||||
-fx-font-weight: BOLD;
|
-fx-font-weight: BOLD;
|
||||||
-fx-padding: 0.0em 0em 0.0em 0.4em;
|
-fx-padding: 0.0em 0em 0.0em 0.4em;
|
||||||
-fx-text-fill: -color-fg-muted;
|
-fx-text-fill: -color-fg-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar .filter-bar .text-field {
|
.bar .filter-bar .text-field {
|
||||||
-fx-text-fill: -color-fg-default;
|
-fx-text-fill: -color-fg-default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar .filter-bar {
|
.bar .filter-bar {
|
||||||
-fx-background-radius: 3px;
|
-fx-background-radius: 3px;
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
-fx-border-color: -color-fg-default;
|
-fx-border-color: -color-fg-default;
|
||||||
-fx-border-width: 0.05em;
|
-fx-border-width: 0.05em;
|
||||||
-fx-border-radius: 3px;
|
-fx-border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.bar .filter-bar .filter-background {
|
.bar .filter-bar .filter-background {
|
||||||
-fx-opacity: 0.7;
|
-fx-opacity: 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.filter-bar .input-line {
|
.filter-bar .input-line {
|
||||||
-fx-opacity: 0.2;
|
-fx-opacity: 0.2;
|
||||||
}
|
}
|
|
@ -1,12 +1,12 @@
|
||||||
.intro .label {
|
.intro .label {
|
||||||
-fx-line-spacing: -1px;
|
-fx-line-spacing: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.intro .title {
|
.intro .title {
|
||||||
-fx-padding: 0 0 0.2em 0;
|
-fx-padding: 0 0 0.2em 0;
|
||||||
-fx-text-fill: -color-fg-emphasis;
|
-fx-text-fill: -color-fg-emphasis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.intro .separator {
|
.intro .separator {
|
||||||
-fx-padding: 0.75em 0 0.75em 0;
|
-fx-padding: 0.75em 0 0.75em 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.lazy-text-field-comp:disabled {
|
.lazy-text-field-comp:disabled {
|
||||||
-fx-opacity: 1.0;
|
-fx-opacity: 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lazy-text-field-comp:disabled.text-field .input-line {
|
.lazy-text-field-comp:disabled.text-field .input-line {
|
||||||
-fx-opacity: 0;
|
-fx-opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lazy-text-field-comp .input-line {
|
.lazy-text-field-comp .input-line {
|
||||||
-fx-opacity: 0.0;
|
-fx-opacity: 0.0;
|
||||||
}
|
}
|
|
@ -1,18 +1,18 @@
|
||||||
.modal-overlay-comp .titled-pane {
|
.modal-overlay-comp .titled-pane {
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
-fx-border-radius: 0;
|
-fx-border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-overlay-comp {
|
.modal-overlay-comp {
|
||||||
-fx-border-radius: 0;
|
-fx-border-radius: 0;
|
||||||
-fx-background-radius: 0;
|
-fx-background-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-overlay-comp .titled-pane > * {
|
.modal-overlay-comp .titled-pane > * {
|
||||||
-fx-border-radius: 0;
|
-fx-border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-overlay-comp .titled-pane > * {
|
.modal-overlay-comp .titled-pane > * {
|
||||||
-fx-background-radius: 0;
|
-fx-background-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
.named-store-choice,.named-source-choice {
|
.named-store-choice, .named-source-choice {
|
||||||
-fx-border-width: 1px;
|
-fx-border-width: 1px;
|
||||||
-fx-border-color:-color-accent-fg;
|
-fx-border-color: -color-accent-fg;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
-fx-border-radius: 4px;
|
-fx-border-radius: 4px;
|
||||||
-fx-padding: 2px;
|
-fx-padding: 2px;
|
||||||
-fx-background-radius: 4px;
|
-fx-background-radius: 4px;
|
||||||
}
|
}
|
|
@ -1,12 +1,12 @@
|
||||||
.scroll-bar:vertical {
|
.scroll-bar:vertical {
|
||||||
-fx-pref-width: 0.3em;
|
-fx-pref-width: 0.3em;
|
||||||
-fx-padding: 0.3em 0 0.3em 0;
|
-fx-padding: 0.3em 0 0.3em 0;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-bar:horizontal {
|
.scroll-bar:horizontal {
|
||||||
-fx-pref-height: 0.3em;
|
-fx-pref-height: 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-pane {
|
.scroll-pane {
|
||||||
-fx-background-insets: 0;
|
-fx-background-insets: 0;
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
.title-header {
|
.title-header {
|
||||||
-fx-font-size: 1.2em;
|
-fx-font-size: 1.2em;
|
||||||
-fx-padding: 15px 0 3px 0;
|
-fx-padding: 15px 0 3px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.choice-pane-comp {
|
.choice-pane-comp {
|
||||||
-fx-spacing: 7px;
|
-fx-spacing: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.options-comp .name {
|
.options-comp .name {
|
||||||
-fx-padding: 9px 0 0 0;
|
-fx-padding: 9px 0 0 0;
|
||||||
-fx-font-size: 1.1em;
|
-fx-font-size: 1.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.options-comp .description {
|
.options-comp .description {
|
||||||
-fx-opacity: 0.75;
|
-fx-opacity: 0.75;
|
||||||
}
|
}
|
||||||
|
|
||||||
.options-comp .long-description {
|
.options-comp .long-description {
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
.sidebar-comp {
|
.sidebar-comp {
|
||||||
-fx-border-width: 0 0 0 1px;
|
-fx-border-width: 0 0 0 1px;
|
||||||
-fx-border-color: -color-border-default;
|
-fx-border-color: -color-border-default;
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
-fx-background-insets: 0;
|
-fx-background-insets: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-comp .icon-button-comp, .sidebar-comp .button {
|
.sidebar-comp .icon-button-comp, .sidebar-comp .button {
|
||||||
-fx-background-radius: 0;
|
-fx-background-radius: 0;
|
||||||
-fx-background-insets: 0;
|
-fx-background-insets: 0;
|
||||||
-fx-background-color: -color-neutral-subtle;
|
-fx-background-color: -color-neutral-subtle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-comp .button:disabled {
|
.sidebar-comp .button:disabled {
|
||||||
-fx-opacity: 1.0;
|
-fx-opacity: 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-comp .icon-button-comp:hover, .sidebar-comp .icon-button-comp:focused {
|
.sidebar-comp .icon-button-comp:hover, .sidebar-comp .icon-button-comp:focused {
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-comp .icon-button-comp:selected {
|
.sidebar-comp .icon-button-comp:selected {
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-comp .icon-button-comp {
|
.sidebar-comp .icon-button-comp {
|
||||||
|
@ -28,5 +28,5 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-comp .icon-button-comp .vbox {
|
.sidebar-comp .icon-button-comp .vbox {
|
||||||
-fx-spacing: 0.5em;
|
-fx-spacing: 0.5em;
|
||||||
}
|
}
|
|
@ -8,28 +8,31 @@
|
||||||
/* Grid */
|
/* Grid */
|
||||||
|
|
||||||
.store-entry-grid .date, .store-entry-grid .summary {
|
.store-entry-grid .date, .store-entry-grid .summary {
|
||||||
-fx-text-fill: -color-fg-muted;
|
-fx-text-fill: -color-fg-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid:failed .jfx-text-field {
|
.store-entry-grid:failed .jfx-text-field {
|
||||||
-fx-text-fill: #ee4829;
|
-fx-text-fill: #ee4829;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid:incomplete .name {
|
.store-entry-grid:incomplete .name {
|
||||||
-fx-text-fill: #ee4829;
|
-fx-text-fill: #ee4829;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid:incomplete .summary {
|
.store-entry-grid:incomplete .summary {
|
||||||
-fx-text-fill: #ee4829;
|
-fx-text-fill: #ee4829;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid:incomplete .information {
|
.store-entry-grid:incomplete .information {
|
||||||
-fx-text-fill: #ee4829;
|
-fx-text-fill: #ee4829;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid:incomplete .icon {
|
.store-entry-grid:incomplete .icon {
|
||||||
-fx-opacity: 0.5;
|
-fx-opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid .icon {
|
.store-entry-grid .icon {
|
||||||
-fx-background-color: -color-bg-overlay;
|
-fx-background-color: -color-bg-overlay;
|
||||||
-fx-background-radius: 5px;
|
-fx-background-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,18 +41,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid {
|
.store-entry-grid {
|
||||||
-fx-padding: 6px 6px 6px 6px;
|
-fx-padding: 6px 6px 6px 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-grid.dense {
|
.store-entry-grid.dense {
|
||||||
-fx-padding: 1px 6px 1px 6px;
|
-fx-padding: 1px 6px 1px 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Entry */
|
/* Entry */
|
||||||
|
|
||||||
.store-entry-comp {
|
.store-entry-comp {
|
||||||
-fx-border-color: transparent;
|
-fx-border-color: transparent;
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
-fx-background-radius: 4px;
|
-fx-background-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +61,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-comp:hover:armed {
|
.store-entry-comp:hover:armed {
|
||||||
-fx-background-color: derive(-color-neutral-muted, 25%);
|
-fx-background-color: derive(-color-neutral-muted, 25%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-comp:hover, .store-entry-comp:focused {
|
.store-entry-comp:hover, .store-entry-comp:focused {
|
||||||
|
@ -66,49 +69,49 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-comp .button-bar, .store-entry-comp .dropdown-comp {
|
.store-entry-comp .button-bar, .store-entry-comp .dropdown-comp {
|
||||||
-fx-opacity: 0.65;
|
-fx-opacity: 0.65;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-comp:hover .button-bar, .store-entry-comp:hover .dropdown-comp {
|
.store-entry-comp:hover .button-bar, .store-entry-comp:hover .dropdown-comp {
|
||||||
-fx-opacity: 1.0;
|
-fx-opacity: 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.expand-button:hover,.expand-button:focused {
|
.expand-button:hover, .expand-button:focused {
|
||||||
-fx-background-color: -color-neutral-muted;
|
-fx-background-color: -color-neutral-muted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.expand-button:disabled {
|
.expand-button:disabled {
|
||||||
-fx-opacity: 0.2;
|
-fx-opacity: 0.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:pretty .store-entry-comp .button-bar, .root:pretty .store-entry-comp .dropdown-comp {
|
.root:pretty .store-entry-comp .button-bar, .root:pretty .store-entry-comp .dropdown-comp {
|
||||||
-fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.25, 0, 1);
|
-fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.25, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-comp .button-bar .button {
|
.store-entry-comp .button-bar .button {
|
||||||
-fx-padding: 6px;
|
-fx-padding: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Section */
|
/* Section */
|
||||||
|
|
||||||
.store-entry-section-comp .separator {
|
.store-entry-section-comp .separator {
|
||||||
-fx-padding: 0 12px 0 35px;
|
-fx-padding: 0 12px 0 35px;
|
||||||
-fx-border-insets: 0px;
|
-fx-border-insets: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-section-comp > .content {
|
.store-entry-section-comp > .content {
|
||||||
-fx-padding: 5px 0 5px 25px;
|
-fx-padding: 5px 0 5px 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-section-comp .separator .line {
|
.store-entry-section-comp .separator .line {
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
-fx-border-insets: 0px;
|
-fx-border-insets: 0px;
|
||||||
-fx-background-color: -color-border-subtle;
|
-fx-background-color: -color-border-subtle;
|
||||||
-fx-pref-height: 1;
|
-fx-pref-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:pretty .top > .store-entry-section-comp {
|
.root:pretty .top > .store-entry-section-comp {
|
||||||
-fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 1);
|
-fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-section-comp:root {
|
.store-entry-section-comp:root {
|
||||||
|
@ -128,7 +131,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-section-comp .list-box-view-comp .content {
|
.store-entry-section-comp .list-box-view-comp .content {
|
||||||
-fx-spacing: 0.2em;
|
-fx-spacing: 0.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.store-entry-section-comp.none {
|
.store-entry-section-comp.none {
|
||||||
|
|
|
@ -32,12 +32,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.scan-list {
|
.scan-list {
|
||||||
-fx-background-radius: 4px;
|
-fx-background-radius: 4px;
|
||||||
-fx-border-width: 0.05em;
|
-fx-border-width: 0.05em;
|
||||||
-fx-border-radius: 4px;
|
-fx-border-radius: 4px;
|
||||||
-fx-padding: 1em;
|
-fx-padding: 1em;
|
||||||
-fx-background-color: -color-bg-default;
|
-fx-background-color: -color-bg-default;
|
||||||
-fx-border-color: -color-neutral-emphasis;
|
-fx-border-color: -color-neutral-emphasis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio-button {
|
.radio-button {
|
||||||
-fx-background-color:transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-button-comp {
|
.icon-button-comp {
|
||||||
|
@ -53,14 +53,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-pane {
|
.scroll-pane {
|
||||||
-fx-background-color:transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:light .loading-comp {
|
.root:light .loading-comp {
|
||||||
-fx-background-color: rgba(100,100,100,0.5);
|
-fx-background-color: rgba(100, 100, 100, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.root:dark .loading-comp {
|
.root:dark .loading-comp {
|
||||||
-fx-background-color: rgba(0,0,0,0.5);
|
-fx-background-color: rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.third-party-dependency-list-comp .titled-pane {
|
.third-party-dependency-list-comp .titled-pane {
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.titled-pane .content {
|
.titled-pane .content {
|
||||||
-fx-padding: 0em ;
|
-fx-padding: 0em;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
.fancy-tooltip {
|
.fancy-tooltip {
|
||||||
-fx-opacity: 1;
|
-fx-opacity: 1;
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@ html {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0 1em 1em 1em;
|
padding: 0 1em 1em 1em;
|
||||||
color: #c9d1d9;
|
color: #c9d1d9;
|
||||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
|
@ -79,7 +79,7 @@ html {
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body mark {
|
.markdown-body mark {
|
||||||
background-color: rgba(187,128,9,0.15);
|
background-color: rgba(187, 128, 9, 0.15);
|
||||||
color: #c9d1d9;
|
color: #c9d1d9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ html {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body details:not([open])>*:not(summary) {
|
.markdown-body details:not([open]) > *:not(summary) {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,15 +254,15 @@ html {
|
||||||
.markdown-body kbd {
|
.markdown-body kbd {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 3px 5px;
|
padding: 3px 5px;
|
||||||
font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
|
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
color: #c9d1d9;
|
color: #c9d1d9;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background-color: #161b22;
|
background-color: #161b22;
|
||||||
border: solid 1px rgba(110,118,129,0.4);
|
border: solid 1px rgba(110, 118, 129, 0.4);
|
||||||
border-bottom-color: rgba(110,118,129,0.4);
|
border-bottom-color: rgba(110, 118, 129, 0.4);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
box-shadow: inset 0 -1px 0 rgba(110,118,129,0.4);
|
box-shadow: inset 0 -1px 0 rgba(110, 118, 129, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body h1,
|
.markdown-body h1,
|
||||||
|
@ -343,14 +343,14 @@ html {
|
||||||
.markdown-body tt,
|
.markdown-body tt,
|
||||||
.markdown-body code,
|
.markdown-body code,
|
||||||
.markdown-body samp {
|
.markdown-body samp {
|
||||||
font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
|
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body pre {
|
.markdown-body pre {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
|
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
word-wrap: normal;
|
word-wrap: normal;
|
||||||
}
|
}
|
||||||
|
@ -380,11 +380,11 @@ html {
|
||||||
content: "";
|
content: "";
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body>*:first-child {
|
.markdown-body > *:first-child {
|
||||||
margin-top: 0 !important;
|
margin-top: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body>*:last-child {
|
.markdown-body > *:last-child {
|
||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -420,11 +420,11 @@ html {
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body blockquote>:first-child {
|
.markdown-body blockquote > :first-child {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body blockquote>:last-child {
|
.markdown-body blockquote > :last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ html {
|
||||||
list-style-type: decimal;
|
list-style-type: decimal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body div>ol:not([type]) {
|
.markdown-body div > ol:not([type]) {
|
||||||
list-style-type: decimal;
|
list-style-type: decimal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -535,11 +535,11 @@ html {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body li>p {
|
.markdown-body li > p {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body li+li {
|
.markdown-body li + li {
|
||||||
margin-top: .25em;
|
margin-top: .25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -602,7 +602,7 @@ html {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.frame>span {
|
.markdown-body span.frame > span {
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: left;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
@ -630,7 +630,7 @@ html {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.align-center>span {
|
.markdown-body span.align-center > span {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 13px auto 0;
|
margin: 13px auto 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -648,7 +648,7 @@ html {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.align-right>span {
|
.markdown-body span.align-right > span {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 13px 0 0;
|
margin: 13px 0 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -678,7 +678,7 @@ html {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.float-right>span {
|
.markdown-body span.float-right > span {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 13px auto 0;
|
margin: 13px auto 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -691,7 +691,7 @@ html {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 85%;
|
font-size: 85%;
|
||||||
white-space: break-spaces;
|
white-space: break-spaces;
|
||||||
background-color: rgba(110,118,129,0.4);
|
background-color: rgba(110, 118, 129, 0.4);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -712,7 +712,7 @@ html {
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body pre>code {
|
.markdown-body pre > code {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
word-break: normal;
|
word-break: normal;
|
||||||
|
@ -951,7 +951,7 @@ html {
|
||||||
.markdown-body g-emoji {
|
.markdown-body g-emoji {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
min-width: 1ch;
|
min-width: 1ch;
|
||||||
font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
|
font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
font-style: normal !important;
|
font-style: normal !important;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
@ -976,7 +976,7 @@ html {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body .task-list-item+.task-list-item {
|
.markdown-body .task-list-item + .task-list-item {
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ html {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
color: #24292f;
|
color: #24292f;
|
||||||
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
|
@ -80,7 +80,7 @@ html {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
padding-bottom: .3em;
|
padding-bottom: .3em;
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
border-bottom: 1px solid hsla(210,18%,87%,1);
|
border-bottom: 1px solid hsla(210, 18%, 87%, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body mark {
|
.markdown-body mark {
|
||||||
|
@ -119,7 +119,7 @@ html {
|
||||||
.markdown-body kbd,
|
.markdown-body kbd,
|
||||||
.markdown-body pre,
|
.markdown-body pre,
|
||||||
.markdown-body samp {
|
.markdown-body samp {
|
||||||
font-family: monospace,monospace;
|
font-family: monospace, monospace;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ html {
|
||||||
box-sizing: content-box;
|
box-sizing: content-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border-bottom: 1px solid hsla(210,18%,87%,1);
|
border-bottom: 1px solid hsla(210, 18%, 87%, 1);
|
||||||
height: .25em;
|
height: .25em;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 24px 0;
|
margin: 24px 0;
|
||||||
|
@ -231,22 +231,22 @@ html {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body details:not([open])>*:not(summary) {
|
.markdown-body details:not([open]) > *:not(summary) {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body kbd {
|
.markdown-body kbd {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 3px 5px;
|
padding: 3px 5px;
|
||||||
font: 11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
|
font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
color: #24292f;
|
color: #24292f;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
background-color: #f6f8fa;
|
background-color: #f6f8fa;
|
||||||
border: solid 1px rgba(175,184,193,0.2);
|
border: solid 1px rgba(175, 184, 193, 0.2);
|
||||||
border-bottom-color: rgba(175,184,193,0.2);
|
border-bottom-color: rgba(175, 184, 193, 0.2);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
box-shadow: inset 0 -1px 0 rgba(175,184,193,0.2);
|
box-shadow: inset 0 -1px 0 rgba(175, 184, 193, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body h1,
|
.markdown-body h1,
|
||||||
|
@ -265,7 +265,7 @@ html {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
padding-bottom: .3em;
|
padding-bottom: .3em;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
border-bottom: 1px solid hsla(210,18%,87%,1);
|
border-bottom: 1px solid hsla(210, 18%, 87%, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body h3 {
|
.markdown-body h3 {
|
||||||
|
@ -326,14 +326,14 @@ html {
|
||||||
|
|
||||||
.markdown-body tt,
|
.markdown-body tt,
|
||||||
.markdown-body code {
|
.markdown-body code {
|
||||||
font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
|
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body pre {
|
.markdown-body pre {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
|
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
word-wrap: normal;
|
word-wrap: normal;
|
||||||
}
|
}
|
||||||
|
@ -482,7 +482,7 @@ html {
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body g-emoji {
|
.markdown-body g-emoji {
|
||||||
font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
|
font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
font-style: normal !important;
|
font-style: normal !important;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
@ -506,11 +506,11 @@ html {
|
||||||
content: "";
|
content: "";
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body>*:first-child {
|
.markdown-body > *:first-child {
|
||||||
margin-top: 0 !important;
|
margin-top: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body>*:last-child {
|
.markdown-body > *:last-child {
|
||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -546,19 +546,19 @@ html {
|
||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body blockquote>:first-child {
|
.markdown-body blockquote > :first-child {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body blockquote>:last-child {
|
.markdown-body blockquote > :last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body sup>a::before {
|
.markdown-body sup > a::before {
|
||||||
content: "[";
|
content: "[";
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body sup>a::after {
|
.markdown-body sup > a::after {
|
||||||
content: "]";
|
content: "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -625,7 +625,7 @@ html {
|
||||||
list-style-type: lower-roman;
|
list-style-type: lower-roman;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body div>ol:not([type]) {
|
.markdown-body div > ol:not([type]) {
|
||||||
list-style-type: decimal;
|
list-style-type: decimal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -637,11 +637,11 @@ html {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body li>p {
|
.markdown-body li > p {
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body li+li {
|
.markdown-body li + li {
|
||||||
margin-top: .25em;
|
margin-top: .25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -674,7 +674,7 @@ html {
|
||||||
|
|
||||||
.markdown-body table tr {
|
.markdown-body table tr {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
border-top: 1px solid hsla(210,18%,87%,1);
|
border-top: 1px solid hsla(210, 18%, 87%, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body table tr:nth-child(2n) {
|
.markdown-body table tr:nth-child(2n) {
|
||||||
|
@ -704,7 +704,7 @@ html {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.frame>span {
|
.markdown-body span.frame > span {
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: left;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
@ -732,7 +732,7 @@ html {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.align-center>span {
|
.markdown-body span.align-center > span {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 13px auto 0;
|
margin: 13px auto 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -750,7 +750,7 @@ html {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.align-right>span {
|
.markdown-body span.align-right > span {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 13px 0 0;
|
margin: 13px 0 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -780,7 +780,7 @@ html {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body span.float-right>span {
|
.markdown-body span.float-right > span {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 13px auto 0;
|
margin: 13px auto 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
@ -792,7 +792,7 @@ html {
|
||||||
padding: .2em .4em;
|
padding: .2em .4em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 85%;
|
font-size: 85%;
|
||||||
background-color: rgba(175,184,193,0.2);
|
background-color: rgba(175, 184, 193, 0.2);
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -809,7 +809,7 @@ html {
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body pre>code {
|
.markdown-body pre > code {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
word-break: normal;
|
word-break: normal;
|
||||||
|
@ -923,7 +923,7 @@ html {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.markdown-body .task-list-item+.task-list-item {
|
.markdown-body .task-list-item + .task-list-item {
|
||||||
margin-top: 3px;
|
margin-top: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,8 @@ public class BeaconDaemonExtensionTest {
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
public static void setup() throws Exception {
|
public static void setup() throws Exception {
|
||||||
JacksonMapper.initModularized(ModuleLayer.boot());
|
JacksonMapper.initModularized(ModuleLayer.boot());
|
||||||
BeaconDaemonController.start(OsType.getLocal().equals(OsType.WINDOWS) ? XPipeDaemonMode.TRAY : XPipeDaemonMode.BACKGROUND);
|
BeaconDaemonController.start(
|
||||||
|
OsType.getLocal().equals(OsType.WINDOWS) ? XPipeDaemonMode.TRAY : XPipeDaemonMode.BACKGROUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterAll
|
@AfterAll
|
||||||
|
|
|
@ -27,7 +27,8 @@ public class ConnectionFileSystem implements FileSystem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getFileSize(String file) throws Exception {
|
public long getFileSize(String file) throws Exception {
|
||||||
return Long.parseLong(shellControl.getShellDialect().queryFileSize(shellControl, file).readStdoutOrThrow());
|
return Long.parseLong(
|
||||||
|
shellControl.getShellDialect().queryFileSize(shellControl, file).readStdoutOrThrow());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -12,16 +12,6 @@ import java.util.List;
|
||||||
|
|
||||||
public class DeleteLinkAction implements LeafAction {
|
public class DeleteLinkAction implements LeafAction {
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean automaticallyResolveLinks() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isApplicable(OpenFileSystemModel model, List<BrowserEntry> entries) {
|
|
||||||
return entries.stream().allMatch(browserEntry -> browserEntry.getRawFileEntry().getKind() == FileKind.LINK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(OpenFileSystemModel model, List<BrowserEntry> entries) throws Exception {
|
public void execute(OpenFileSystemModel model, List<BrowserEntry> entries) throws Exception {
|
||||||
var toDelete = entries.stream().map(entry -> entry.getRawFileEntry()).toList();
|
var toDelete = entries.stream().map(entry -> entry.getRawFileEntry()).toList();
|
||||||
|
@ -43,4 +33,15 @@ public class DeleteLinkAction implements LeafAction {
|
||||||
public String getName(OpenFileSystemModel model, List<BrowserEntry> entries) {
|
public String getName(OpenFileSystemModel model, List<BrowserEntry> entries) {
|
||||||
return "Delete link";
|
return "Delete link";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isApplicable(OpenFileSystemModel model, List<BrowserEntry> entries) {
|
||||||
|
return entries.stream()
|
||||||
|
.allMatch(browserEntry -> browserEntry.getRawFileEntry().getKind() == FileKind.LINK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean automaticallyResolveLinks() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,7 +114,9 @@ public abstract class ScriptStore extends JacksonizedValue implements DataStore,
|
||||||
.mapToInt(value ->
|
.mapToInt(value ->
|
||||||
value.get().getName().hashCode() + value.getStore().hashCode())
|
value.get().getName().hashCode() + value.getStore().hashCode())
|
||||||
.sum();
|
.sum();
|
||||||
var targetDir = FileNames.join(ShellTemp.getUserSpecificTempDataDirectory(proc,"scripts"), proc.getShellDialect().getId());
|
var targetDir = FileNames.join(
|
||||||
|
ShellTemp.getUserSpecificTempDataDirectory(proc, "scripts"),
|
||||||
|
proc.getShellDialect().getId());
|
||||||
var hashFile = FileNames.join(targetDir, "hash");
|
var hashFile = FileNames.join(targetDir, "hash");
|
||||||
var d = proc.getShellDialect();
|
var d = proc.getShellDialect();
|
||||||
if (d.createFileExistsCommand(proc, hashFile).executeAndCheck()) {
|
if (d.createFileExistsCommand(proc, hashFile).executeAndCheck()) {
|
||||||
|
|
Loading…
Reference in a new issue