fix: update java-gi and, in doing so, fix segfault
This commit is contained in:
parent
e14294fdd6
commit
04d8121ca2
|
@ -17,7 +17,7 @@ val jbAnnotationsVersion by extra("24.0.1")
|
||||||
val lwjglVersion by extra("3.3.2")
|
val lwjglVersion by extra("3.3.2")
|
||||||
val imguiVersion by extra("1.86.10")
|
val imguiVersion by extra("1.86.10")
|
||||||
// launcher-gtk
|
// launcher-gtk
|
||||||
val javagiVersion by extra("0.6.1")
|
val javagiVersion by extra("0.7.2")
|
||||||
|
|
||||||
val flavorProp: String by extra(prop("flavor", "custom"))
|
val flavorProp: String by extra(prop("flavor", "custom"))
|
||||||
if (!setOf("custom", "maven", "fat", "windows", "linux", "macos").contains(flavorProp)) throw IllegalStateException("Unsupported flavor: $flavorProp")
|
if (!setOf("custom", "maven", "fat", "windows", "linux", "macos").contains(flavorProp)) throw IllegalStateException("Unsupported flavor: $flavorProp")
|
||||||
|
|
|
@ -17,20 +17,14 @@ samWithReceiver {
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
maven("https://jitpack.io") {
|
|
||||||
content {
|
|
||||||
includeGroup("com.github.jwharm.java-gi")
|
|
||||||
includeGroup("com.github.jwharm")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
val javagiVersion: String by rootProject.extra
|
val javagiVersion: String by rootProject.extra
|
||||||
|
|
||||||
implementation("com.github.jwharm.java-gi:glib:$javagiVersion")
|
implementation("io.github.jwharm.javagi:glib:$javagiVersion")
|
||||||
implementation("com.github.jwharm.java-gi:gtk:$javagiVersion")
|
implementation("io.github.jwharm.javagi:gtk:$javagiVersion")
|
||||||
implementation("com.github.jwharm.java-gi:adwaita:$javagiVersion")
|
implementation("io.github.jwharm.javagi:adw:$javagiVersion")
|
||||||
implementation(project(":launcher"))
|
implementation(project(":launcher"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package io.gitlab.jfronny.inceptum.gtk.control
|
package io.gitlab.jfronny.inceptum.gtk.control
|
||||||
|
|
||||||
import io.gitlab.jfronny.inceptum.gtk.util.kText
|
|
||||||
import org.gnome.gtk.Entry
|
import org.gnome.gtk.Entry
|
||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
|
|
||||||
|
@ -8,7 +7,7 @@ class KEntry(value: String? = ""): Entry() {
|
||||||
private val onChange = ArrayList<Consumer<String>>()
|
private val onChange = ArrayList<Consumer<String>>()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
kText = value ?: ""
|
text = value ?: ""
|
||||||
onChanged { onChange.forEach { it.accept(text) } }
|
onChanged { onChange.forEach { it.accept(text) } }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package io.gitlab.jfronny.inceptum.gtk.control
|
package io.gitlab.jfronny.inceptum.gtk.control
|
||||||
|
|
||||||
import io.github.jwharm.javagi.base.Signal
|
import io.github.jwharm.javagi.gobject.SignalConnection
|
||||||
import org.gnome.gtk.ListItem
|
import org.gnome.gtk.ListItem
|
||||||
import org.gnome.gtk.SignalListItemFactory
|
import org.gnome.gtk.SignalListItemFactory
|
||||||
import org.gnome.gtk.StringObject
|
import org.gnome.gtk.StringObject
|
||||||
import org.gnome.gtk.Widget
|
import org.gnome.gtk.Widget
|
||||||
|
|
||||||
abstract class KSignalListItemFactory<TData, TWidget : Widget> : SignalListItemFactory() {
|
abstract class KSignalListItemFactory<TData, TWidget : Widget> : SignalListItemFactory() {
|
||||||
private val toDisconnect: MutableMap<String, MutableSet<Signal<*>>> = HashMap()
|
private val toDisconnect: MutableMap<String, MutableSet<SignalConnection<*>>> = HashMap()
|
||||||
init {
|
init {
|
||||||
onSetup {
|
onSetup {
|
||||||
val li = it as ListItem
|
val li = it as ListItem
|
||||||
|
@ -41,14 +41,14 @@ abstract class KSignalListItemFactory<TData, TWidget : Widget> : SignalListItemF
|
||||||
}
|
}
|
||||||
|
|
||||||
interface BindContext: ActionContext {
|
interface BindContext: ActionContext {
|
||||||
fun registerForUnbind(signal: Signal<*>)
|
fun registerForUnbind(signal: SignalConnection<*>)
|
||||||
}
|
}
|
||||||
|
|
||||||
interface UnbindContext: ActionContext {
|
interface UnbindContext: ActionContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
private inner class BindContextImpl(private val id: String, override val listItem: ListItem) : BindContext {
|
private inner class BindContextImpl(private val id: String, override val listItem: ListItem) : BindContext {
|
||||||
override fun registerForUnbind(signal: Signal<*>) {
|
override fun registerForUnbind(signal: SignalConnection<*>) {
|
||||||
toDisconnect.computeIfAbsent(id) { _ -> HashSet() }
|
toDisconnect.computeIfAbsent(id) { _ -> HashSet() }
|
||||||
.add(signal)
|
.add(signal)
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,12 +31,4 @@ var MessageDialog.markup: String
|
||||||
|
|
||||||
fun ActionRow.fixSubtitle() = ILabel.theme(firstChild!!.lastChild!!.prevSibling!!.lastChild as Label, ILabel.Mode.SUBTITLE)
|
fun ActionRow.fixSubtitle() = ILabel.theme(firstChild!!.lastChild!!.prevSibling!!.lastChild as Label, ILabel.Mode.SUBTITLE)
|
||||||
|
|
||||||
// Work around a segfault with empty entries
|
|
||||||
var Entry.kText: String?
|
|
||||||
get() = text
|
|
||||||
set(value) {
|
|
||||||
if (value == "") buffer.clear()
|
|
||||||
else text = value
|
|
||||||
}
|
|
||||||
|
|
||||||
fun EntryBuffer.clear() = deleteText(0, length)
|
fun EntryBuffer.clear() = deleteText(0, length)
|
|
@ -10,7 +10,6 @@ import io.gitlab.jfronny.inceptum.gtk.control.assistant.KAssistant
|
||||||
import io.gitlab.jfronny.inceptum.gtk.schedule
|
import io.gitlab.jfronny.inceptum.gtk.schedule
|
||||||
import io.gitlab.jfronny.inceptum.gtk.util.I18n
|
import io.gitlab.jfronny.inceptum.gtk.util.I18n
|
||||||
import io.gitlab.jfronny.inceptum.gtk.util.Log
|
import io.gitlab.jfronny.inceptum.gtk.util.Log
|
||||||
import io.gitlab.jfronny.inceptum.gtk.util.kText
|
|
||||||
import io.gitlab.jfronny.inceptum.gtk.util.toTypedArray
|
import io.gitlab.jfronny.inceptum.gtk.util.toTypedArray
|
||||||
import io.gitlab.jfronny.inceptum.gtk.window.dialog.ProcessStateWatcherDialog
|
import io.gitlab.jfronny.inceptum.gtk.window.dialog.ProcessStateWatcherDialog
|
||||||
import io.gitlab.jfronny.inceptum.launcher.api.FabricMetaApi
|
import io.gitlab.jfronny.inceptum.launcher.api.FabricMetaApi
|
||||||
|
@ -104,7 +103,7 @@ class NewInstanceWindow(app: Application) : KAssistant(app) {
|
||||||
append(entry)
|
append(entry)
|
||||||
onOpen {
|
onOpen {
|
||||||
name = InstanceNameTool.getDefaultName(gameVersion!!.id, useFabric)
|
name = InstanceNameTool.getDefaultName(gameVersion!!.id, useFabric)
|
||||||
entry.kText = name
|
entry.text = name
|
||||||
}
|
}
|
||||||
|
|
||||||
setComplete(true)
|
setComplete(true)
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package io.gitlab.jfronny.inceptum.gtk.window.dialog
|
package io.gitlab.jfronny.inceptum.gtk.window.dialog
|
||||||
|
|
||||||
import io.gitlab.jfronny.inceptum.gtk.util.kText
|
|
||||||
import org.gnome.gtk.*
|
import org.gnome.gtk.*
|
||||||
|
|
||||||
class StringInputDialog(parent: Window?, flags: DialogFlags, type: MessageType, buttons: ButtonsType, message: String, value: String) : MessageDialog(parent, flags, type, buttons, message) {
|
class StringInputDialog(parent: Window?, flags: DialogFlags, type: MessageType, buttons: ButtonsType, message: String, value: String) : MessageDialog(parent, flags, type, buttons, message) {
|
||||||
|
@ -8,7 +7,7 @@ class StringInputDialog(parent: Window?, flags: DialogFlags, type: MessageType,
|
||||||
|
|
||||||
init {
|
init {
|
||||||
(messageArea as Box).append(entry)
|
(messageArea as Box).append(entry)
|
||||||
entry.kText = value
|
entry.text = value
|
||||||
}
|
}
|
||||||
|
|
||||||
val input: String get() = entry.text
|
val input: String get() = entry.text
|
||||||
|
|
|
@ -147,7 +147,7 @@ class GeneralTab(window: InstanceSettingsWindow) : SectionedSettingsTab<Instance
|
||||||
dialog.onResponse { responseId: Int ->
|
dialog.onResponse { responseId: Int ->
|
||||||
if (responseId == ResponseType.ACCEPT.value) {
|
if (responseId == ResponseType.ACCEPT.value) {
|
||||||
val file = dialog.file!!.path
|
val file = dialog.file!!.path
|
||||||
if (file != null) entry.kText = file
|
if (file != null) entry.text = file
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dialog.show()
|
dialog.show()
|
||||||
|
|
|
@ -4,7 +4,8 @@ module io.gitlab.jfronny.inceptum.launcher.gtk {
|
||||||
requires kotlin.stdlib;
|
requires kotlin.stdlib;
|
||||||
requires org.gnome.glib;
|
requires org.gnome.glib;
|
||||||
requires org.gnome.gtk;
|
requires org.gnome.gtk;
|
||||||
requires org.gnome.adwaita;
|
requires org.gnome.adw;
|
||||||
|
requires org.gnome.pango;
|
||||||
|
|
||||||
// Should theoretically already be included transitively through inceptum.launcher and inceptum.common
|
// Should theoretically already be included transitively through inceptum.launcher and inceptum.common
|
||||||
requires io.gitlab.jfronny.commons;
|
requires io.gitlab.jfronny.commons;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 28770e5269128412d8d51a03aa6c072a8eff10cb
|
Subproject commit 19ebde77adad3b97e733d98f37a59c828138f53e
|
Loading…
Reference in New Issue