GTK: Instance Settings: custom java version
This commit is contained in:
parent
94dbaadaf1
commit
fe0c23b97b
|
@ -65,7 +65,7 @@ public class IRow extends Box {
|
||||||
|
|
||||||
public Entry setEntry(String value, Consumer<String> onChanged) {
|
public Entry setEntry(String value, Consumer<String> onChanged) {
|
||||||
Entry entry = new Entry();
|
Entry entry = new Entry();
|
||||||
entry.text = value;
|
entry.text = value == null ? "" : value;
|
||||||
entry.hexpand = true;
|
entry.hexpand = true;
|
||||||
entry.valign = Align.CENTER;
|
entry.valign = Align.CENTER;
|
||||||
entry.halign = Align.FILL;
|
entry.halign = Align.FILL;
|
||||||
|
|
|
@ -32,10 +32,9 @@ public class InstanceListEntryFactory extends SignalListItemFactory {
|
||||||
var thumbnail = new InstanceThumbnail();
|
var thumbnail = new InstanceThumbnail();
|
||||||
thumbnail.name = "inceptum-thumbnail";
|
thumbnail.name = "inceptum-thumbnail";
|
||||||
|
|
||||||
var launch = new Button();
|
var launch = Button.newFromIconName("media-playback-start-symbolic");
|
||||||
launch.addCssClass("flat");
|
launch.addCssClass("flat");
|
||||||
launch.name = "inceptum-launch";
|
launch.name = "inceptum-launch";
|
||||||
launch.iconName = "media-playback-start-symbolic";
|
|
||||||
launch.tooltipText = I18n.get("instance.launch");
|
launch.tooltipText = I18n.get("instance.launch");
|
||||||
launch.hasTooltip = true;
|
launch.hasTooltip = true;
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,7 @@ public class MainWindow extends ApplicationWindow {
|
||||||
super(app);
|
super(app);
|
||||||
|
|
||||||
HeaderBar header = new HeaderBar();
|
HeaderBar header = new HeaderBar();
|
||||||
Button newButton = new Button();
|
Button newButton = Button.newFromIconName("list-add-symbolic");
|
||||||
newButton.iconName = "list-add-symbolic";
|
|
||||||
newButton.onClicked(() -> new NewInstanceWindow(app).show());
|
newButton.onClicked(() -> new NewInstanceWindow(app).show());
|
||||||
|
|
||||||
MenuButton accountsButton = new MenuButton();
|
MenuButton accountsButton = new MenuButton();
|
||||||
|
|
|
@ -36,10 +36,14 @@ public class ExportTab extends SettingsTab {
|
||||||
"_" + I18n.get("save"),
|
"_" + I18n.get("save"),
|
||||||
"_" + I18n.get("cancel")
|
"_" + I18n.get("cancel")
|
||||||
);
|
);
|
||||||
|
var filter = new FileFilter();
|
||||||
|
filter.name = exporter.name + " Pack";
|
||||||
|
filter.addPattern("*." + exporter.fileExtension);
|
||||||
|
dialog.addFilter(filter);
|
||||||
dialog.currentName = exporter.getDefaultFileName(instance);
|
dialog.currentName = exporter.getDefaultFileName(instance);
|
||||||
dialog.onResponse(responseId -> {
|
dialog.onResponse(responseId -> {
|
||||||
if (responseId == ResponseType.ACCEPT.value) {
|
if (responseId == ResponseType.ACCEPT.value) {
|
||||||
var file = dialog.getFile().path;
|
var file = dialog.file.path;
|
||||||
if (file == null) {
|
if (file == null) {
|
||||||
GtkEnvBackend.simpleDialog(
|
GtkEnvBackend.simpleDialog(
|
||||||
window,
|
window,
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package io.gitlab.jfronny.inceptum.gtk.window.edit;
|
package io.gitlab.jfronny.inceptum.gtk.window.edit;
|
||||||
|
|
||||||
|
import io.github.jwharm.javagi.GErrorException;
|
||||||
import io.gitlab.jfronny.commons.ArgumentsTokenizer;
|
import io.gitlab.jfronny.commons.ArgumentsTokenizer;
|
||||||
|
import io.gitlab.jfronny.commons.OSUtils;
|
||||||
import io.gitlab.jfronny.commons.io.JFiles;
|
import io.gitlab.jfronny.commons.io.JFiles;
|
||||||
import io.gitlab.jfronny.inceptum.common.*;
|
import io.gitlab.jfronny.inceptum.common.*;
|
||||||
import io.gitlab.jfronny.inceptum.gtk.control.ILabel;
|
import io.gitlab.jfronny.inceptum.gtk.control.ILabel;
|
||||||
|
@ -13,6 +15,7 @@ import io.gitlab.jfronny.inceptum.launcher.model.inceptum.InstanceMeta;
|
||||||
import io.gitlab.jfronny.inceptum.launcher.model.mojang.VersionsList;
|
import io.gitlab.jfronny.inceptum.launcher.model.mojang.VersionsList;
|
||||||
import io.gitlab.jfronny.inceptum.launcher.system.instance.*;
|
import io.gitlab.jfronny.inceptum.launcher.system.instance.*;
|
||||||
import io.gitlab.jfronny.inceptum.launcher.util.GameVersionParser;
|
import io.gitlab.jfronny.inceptum.launcher.util.GameVersionParser;
|
||||||
|
import org.gtk.gio.File;
|
||||||
import org.gtk.gobject.BindingFlags;
|
import org.gtk.gobject.BindingFlags;
|
||||||
import org.gtk.gtk.*;
|
import org.gtk.gtk.*;
|
||||||
|
|
||||||
|
@ -114,7 +117,39 @@ public class GeneralTab extends SettingsTab {
|
||||||
instance.writeMeta();
|
instance.writeMeta();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//TODO Custom Java (checkbox) + String: path
|
{
|
||||||
|
var row = section.row("instance.settings.general.game.java", "instance.settings.general.game.java.subtitle");
|
||||||
|
var entry = row.setEntry(instance.meta.java, s -> {
|
||||||
|
instance.meta.java = s.isBlank() ? null : s;
|
||||||
|
instance.writeMeta();
|
||||||
|
});
|
||||||
|
var btn = Button.newFromIconName("folder-symbolic");
|
||||||
|
btn.valign = Align.CENTER;
|
||||||
|
btn.onClicked(() -> {
|
||||||
|
FileChooserNative dialog = new FileChooserNative(
|
||||||
|
I18n.get("instance.settings.general.game.java"),
|
||||||
|
window,
|
||||||
|
FileChooserAction.OPEN,
|
||||||
|
"_" + I18n.get("select"),
|
||||||
|
"_" + I18n.get("cancel")
|
||||||
|
);
|
||||||
|
if (instance.meta.java != null && Files.exists(Path.of(instance.meta.java))) {
|
||||||
|
try {
|
||||||
|
dialog.setFile(File.newForPath(instance.meta.java));
|
||||||
|
} catch (GErrorException e) {
|
||||||
|
Utils.LOGGER.error("Could not set starting point", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog.onResponse(responseId -> {
|
||||||
|
if (responseId == ResponseType.ACCEPT.value) {
|
||||||
|
var file = dialog.file.path;
|
||||||
|
if (file != null) entry.text = file;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialog.show();
|
||||||
|
});
|
||||||
|
row.append(btn);
|
||||||
|
}
|
||||||
//TODO minMem/maxMem (slider?)
|
//TODO minMem/maxMem (slider?)
|
||||||
});
|
});
|
||||||
section("instance.settings.general.args", section -> {
|
section("instance.settings.general.args", section -> {
|
||||||
|
|
|
@ -20,6 +20,7 @@ ok=Ok
|
||||||
cancel=Cancel
|
cancel=Cancel
|
||||||
show=Show
|
show=Show
|
||||||
save=Save
|
save=Save
|
||||||
|
select=Select
|
||||||
menu.hamburger.support=Support
|
menu.hamburger.support=Support
|
||||||
menu.hamburger.preferences=Preferences
|
menu.hamburger.preferences=Preferences
|
||||||
menu.hamburger.about=About
|
menu.hamburger.about=About
|
||||||
|
@ -87,4 +88,6 @@ settings.author-name.subtitle=The author name to add to packs where the metadata
|
||||||
instance.settings.general.game.fabric.enabled=Fabric
|
instance.settings.general.game.fabric.enabled=Fabric
|
||||||
instance.settings.general.game.fabric.enabled.subtitle=Whether the Fabric Loader should be used for this instance
|
instance.settings.general.game.fabric.enabled.subtitle=Whether the Fabric Loader should be used for this instance
|
||||||
instance.settings.general.game.fabric.version=Fabric Version
|
instance.settings.general.game.fabric.version=Fabric Version
|
||||||
instance.settings.general.game.fabric.version.subtitle=Version of the Fabric Loader to use
|
instance.settings.general.game.fabric.version.subtitle=Version of the Fabric Loader to use
|
||||||
|
instance.settings.general.game.java=Java
|
||||||
|
instance.settings.general.game.java.subtitle=The path of the custom Java binary to use (or empty for default)
|
|
@ -19,6 +19,7 @@ ok=OK
|
||||||
cancel=Abbrechen
|
cancel=Abbrechen
|
||||||
show=Anzeigen
|
show=Anzeigen
|
||||||
save=Speichern
|
save=Speichern
|
||||||
|
select=Auswählen
|
||||||
menu.hamburger.support=Unterstützung
|
menu.hamburger.support=Unterstützung
|
||||||
menu.hamburger.preferences=Einstellungen
|
menu.hamburger.preferences=Einstellungen
|
||||||
menu.hamburger.about=Über
|
menu.hamburger.about=Über
|
||||||
|
@ -87,4 +88,6 @@ settings.author-name.subtitle=Der Name, der bei Modpack-Exporten, deren Metadate
|
||||||
instance.settings.general.game.fabric.enabled=Fabric
|
instance.settings.general.game.fabric.enabled=Fabric
|
||||||
instance.settings.general.game.fabric.enabled.subtitle=Ob Fabric-Loader für diese Instanz aktiviert werden soll
|
instance.settings.general.game.fabric.enabled.subtitle=Ob Fabric-Loader für diese Instanz aktiviert werden soll
|
||||||
instance.settings.general.game.fabric.version=Fabric-Version
|
instance.settings.general.game.fabric.version=Fabric-Version
|
||||||
instance.settings.general.game.fabric.version.subtitle=Zu verwendende Version des Fabric-Loaders
|
instance.settings.general.game.fabric.version.subtitle=Zu verwendende Version des Fabric-Loaders
|
||||||
|
instance.settings.general.game.java=Java
|
||||||
|
instance.settings.general.game.java.subtitle=Pfad der Java-Binärdatei, die diese Instanz verwenden soll. Leer lassen um die Standard-Binärdatei zu nutzen.
|
Loading…
Reference in New Issue