Various small bug fixes

This commit is contained in:
crschnick 2023-02-10 21:52:20 +00:00
parent 48248eeae0
commit 8e7969de74
10 changed files with 35 additions and 36 deletions

View file

@ -2,7 +2,7 @@
### Next level remote data workflows for everyone ### Next level remote data workflows for everyone
X-Pipe is a tool for working with remote connections and their data. X-Pipe is a tool in an early alpha for working with remote connections and their data.
The focus lies on providing: The focus lies on providing:
- An easy remote connection setup and workflow - An easy remote connection setup and workflow
- Organization of all your connections in one place - Organization of all your connections in one place

View file

@ -101,7 +101,7 @@ List<String> jvmRunArgs = [
def extensionDirList = Arrays.stream(file("$rootDir/ext").list()) def extensionDirList = Arrays.stream(file("$rootDir/ext").list())
.map(l -> project(":$l").buildDir.toString() + "/libs").collect(Collectors.joining(File.pathSeparator)); .map(l -> project(":$l").buildDir.toString() + "/libs_dev").filter {file(it).exists()}.collect(Collectors.joining(File.pathSeparator));
test { test {
jvmArgs += jvmRunArgs jvmArgs += jvmRunArgs
@ -135,7 +135,7 @@ run {
systemProperty 'io.xpipe.app.writeLogs', "true" systemProperty 'io.xpipe.app.writeLogs', "true"
systemProperty 'io.xpipe.app.writeSysOut', "true" systemProperty 'io.xpipe.app.writeSysOut', "true"
systemProperty 'io.xpipe.app.developerMode', "true" systemProperty 'io.xpipe.app.developerMode', "true"
systemProperty 'io.xpipe.app.logLevel', "debug" systemProperty 'io.xpipe.app.logLevel', "trace"
systemProperty "io.xpipe.beacon.port", "21724" systemProperty "io.xpipe.beacon.port", "21724"
// systemProperty "io.xpipe.beacon.printMessages", "true" // systemProperty "io.xpipe.beacon.printMessages", "true"
systemProperty "io.xpipe.app.extensions", extensionDirList systemProperty "io.xpipe.app.extensions", extensionDirList

View file

@ -51,8 +51,8 @@ public class AppLayoutComp extends Comp<CompStructure<BorderPane>> {
// new SideMenuBarComp.Entry(I18n.observable("account"), "mdi2a-account", new StorageLayoutComp()), // new SideMenuBarComp.Entry(I18n.observable("account"), "mdi2a-account", new StorageLayoutComp()),
new SideMenuBarComp.Entry(I18n.observable("about"), "mdi2p-package-variant", new AboutTabComp()))); new SideMenuBarComp.Entry(I18n.observable("about"), "mdi2p-package-variant", new AboutTabComp())));
if (AppProperties.get().isDeveloperMode()) { if (AppProperties.get().isDeveloperMode()) {
// l.add(new SideMenuBarComp.Entry(I18n.observable("developer"), "mdi2b-book-open-variant", new l.add(new SideMenuBarComp.Entry(I18n.observable("developer"), "mdi2b-book-open-variant", new
// DeveloperTabComp())); DeveloperTabComp()));
} }
// l.add(new SideMenuBarComp.Entry(I18n.observable("abc"), "mdi2b-book-open-variant", Comp.of(() -> { // l.add(new SideMenuBarComp.Entry(I18n.observable("abc"), "mdi2b-book-open-variant", Comp.of(() -> {
// var fi = new FontIcon("mdsal-dvr"); // var fi = new FontIcon("mdsal-dvr");

View file

@ -3,8 +3,6 @@ package io.xpipe.app.comp.base;
import com.jfoenix.controls.JFXCheckBox; import com.jfoenix.controls.JFXCheckBox;
import io.xpipe.extension.fxcomps.SimpleComp; import io.xpipe.extension.fxcomps.SimpleComp;
import javafx.beans.property.ListProperty; import javafx.beans.property.ListProperty;
import javafx.beans.property.SimpleListProperty;
import javafx.collections.FXCollections;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPane;
import javafx.scene.layout.Region; import javafx.scene.layout.Region;
@ -21,7 +19,7 @@ public class ListSelectorComp<T> extends SimpleComp {
List<T> values; List<T> values;
Function<T, String> toString; Function<T, String> toString;
ListProperty<T> selected = new SimpleListProperty<>(FXCollections.observableArrayList()); ListProperty<T> selected;
@Override @Override
protected Region createSimple() { protected Region createSimple() {
@ -35,7 +33,7 @@ public class ListSelectorComp<T> extends SimpleComp {
selected.remove(v); selected.remove(v);
} }
}); });
cb.setSelected(true); cb.setSelected(selected.contains(v));
var l = new Label(toString.apply(v), cb); var l = new Label(toString.apply(v), cb);
vbox.getChildren().add(l); vbox.getChildren().add(l);
} }

View file

@ -58,7 +58,7 @@ public class AppExtensionManager {
.resolve("ext") .resolve("ext")
.resolve(name) .resolve(name)
.resolve("build") .resolve("build")
.resolve("libs"); .resolve("libs_dev");
var layer = loadDirectory(userDir); var layer = loadDirectory(userDir);
return layer.size() > 0 ? layer.get(0) : null; return layer.size() > 0 ? layer.get(0) : null;
} }

View file

@ -12,8 +12,11 @@ import io.xpipe.extension.I18n;
import io.xpipe.extension.event.ErrorEvent; import io.xpipe.extension.event.ErrorEvent;
import io.xpipe.extension.fxcomps.Comp; import io.xpipe.extension.fxcomps.Comp;
import io.xpipe.extension.fxcomps.SimpleComp; import io.xpipe.extension.fxcomps.SimpleComp;
import javafx.beans.property.ListProperty;
import javafx.beans.property.SimpleListProperty;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty; import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections;
import javafx.scene.control.Hyperlink; import javafx.scene.control.Hyperlink;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.TextArea; import javafx.scene.control.TextArea;
@ -21,19 +24,17 @@ import javafx.scene.layout.*;
import javafx.stage.Stage; import javafx.stage.Stage;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
public class UserReportComp extends SimpleComp { public class UserReportComp extends SimpleComp {
private final StringProperty text = new SimpleStringProperty(); private final StringProperty text = new SimpleStringProperty();
private final List<Path> includedDiagnostics; private final ListProperty<Path> includedDiagnostics;
private final ErrorEvent event; private final ErrorEvent event;
private final Stage stage; private final Stage stage;
public UserReportComp(ErrorEvent event, Stage stage) { public UserReportComp(ErrorEvent event, Stage stage) {
this.event = event; this.event = event;
this.includedDiagnostics = new ArrayList<>(event.getAttachments()); this.includedDiagnostics = new SimpleListProperty<>(FXCollections.observableArrayList());
this.stage = stage; this.stage = stage;
} }
@ -50,30 +51,13 @@ public class UserReportComp extends SimpleComp {
} }
return file.getFileName().toString(); return file.getFileName().toString();
}) }, includedDiagnostics)
.styleClass("attachment-list"); .styleClass("attachment-list");
var tp = new TitledPaneComp(I18n.observable("additionalErrorAttachments"), list, 100) var tp = new TitledPaneComp(I18n.observable("additionalErrorAttachments"), list, 100)
.apply(struc -> struc.get().setExpanded(true))
.apply(s -> AppFont.medium(s.get())) .apply(s -> AppFont.medium(s.get()))
.styleClass("attachments"); .styleClass("attachments");
return tp; return tp;
//
// var list = FXCollections.observableList(event.getSensitiveDiagnostics());
// return new ListViewComp<>(list, list, null, a -> {
// var label = new Label(a.getFileName().toString());
// var cb = new JFXCheckBox();
// cb.setSelected(includedDiagnostics.contains(a));
// cb.selectedProperty().addListener((c,o,n) -> {
// if (n) {
// includedDiagnostics.add(a);
// } else {
// includedDiagnostics.remove(a);
// }
// });
// var spacer = new Region();
// var c = new HBox(label, spacer, cb);
// HBox.setHgrow(spacer, Priority.ALWAYS);
// return WrapperComp.of(() -> c);
// });
} }
@Override @Override

View file

@ -128,7 +128,7 @@ disagree=Disagree
directories=Directories directories=Directories
logFile=Log File logFile=Log File
logFiles=Log Files logFiles=Log Files
logFilesAttachment=Log Files (Sensitive information removed) logFilesAttachment=Log Files
issueReporter=Issue Reporter issueReporter=Issue Reporter
openCurrentLogFile=Open current log file openCurrentLogFile=Open current log file
openLogsDirectory=Open logs directory openLogsDirectory=Open logs directory

View file

@ -28,6 +28,6 @@ project.ext {
isFullRelease = System.getenv('RELEASE') != null && Boolean.parseBoolean(System.getenv('RELEASE')) isFullRelease = System.getenv('RELEASE') != null && Boolean.parseBoolean(System.getenv('RELEASE'))
versionString = file('version').text + (isFullRelease ? '' : '-SNAPSHOT') versionString = file('version').text + (isFullRelease ? '' : '-SNAPSHOT')
canonicalVersionString = file('version').text canonicalVersionString = file('version').text
buildId = UUID.nameUUIDFromBytes(version.toString().getBytes()) buildId = UUID.nameUUIDFromBytes(versionString.getBytes())
obfuscate = true obfuscate = true
} }

View file

@ -48,7 +48,10 @@ public class BindingsHelper {
while (true) { while (true) {
for (ReferenceEntry reference : REFERENCES) { for (ReferenceEntry reference : REFERENCES) {
if (reference.canGc()) { if (reference.canGc()) {
REFERENCES.remove(reference); /*
TODO: Figure out why some bindings are garbage collected, even if they shouldn't
*/
// REFERENCES.remove(reference);
} }
} }
ThreadHelper.sleep(1000); ThreadHelper.sleep(1000);

View file

@ -7,6 +7,20 @@ task copyRuntimeLibs(type: Copy) {
copyRuntimeLibs.dependsOn(addDependenciesModuleInfo) copyRuntimeLibs.dependsOn(addDependenciesModuleInfo)
jar.dependsOn(copyRuntimeLibs) jar.dependsOn(copyRuntimeLibs)
def dev = tasks.register('createDevOutput', Copy) {
def base = project.name.substring(0, project.name.length() - 1)
def isX = project.name.endsWith("x") && findProject(":$base") != null
var source = "${project.jar.destinationDirectory.get()}"
if (isX) {
from source
into "${project(':' + base).jar.destinationDirectory.get()}_dev"
} else {
from source
into "${project.jar.destinationDirectory.get()}_dev"
}
}
jar.finalizedBy(dev)
tasks.register('createExtOutput', Copy) { tasks.register('createExtOutput', Copy) {
def base = project.name.substring(0, project.name.length() - 1) def base = project.name.substring(0, project.name.length() - 1)
def isX = project.name.endsWith("x") && findProject(":$base") != null def isX = project.name.endsWith("x") && findProject(":$base") != null