Skip to content

Commit

Permalink
GTK: Add reload button to list-view-page, fix layout
Browse files Browse the repository at this point in the history
  • Loading branch information
bailuk committed Jul 15, 2024
1 parent 562cf14 commit 3903a7f
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 46 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package ch.bailu.aat_gtk.view.solid

import ch.bailu.aat_lib.app.AppContext
import ch.bailu.aat_lib.logger.AppLog
import ch.bailu.aat_lib.preferences.OnPreferencesChanged
import ch.bailu.aat_lib.preferences.SolidDirectoryQuery
import ch.bailu.aat_lib.preferences.StorageInterface
import ch.bailu.aat_lib.util.fs.AppDirectory
import ch.bailu.gtk.gtk.DropDown
import ch.bailu.gtk.type.Strs


class SolidDirectoryDropDownView(appContext: AppContext)
: OnPreferencesChanged {
private val solidDirectoryQuery = SolidDirectoryQuery(appContext.storage, appContext)
private val directories = AppDirectory.getGpxDirectories(appContext)

val dropDown: DropDown

init {
val model = ArrayList<String ?>()

model.addAll(directories.map {
limitWidth(it.name, 30) // TODO width limit should be handled by GTK (but how?)
})
model.add(null)
dropDown = DropDown.newFromStringsDropDown(Strs(model.toTypedArray()))

indexFromSolid()

dropDown.onNotify {
AppLog.d(SolidDirectoryQuery@this, it.name.toString())

if ("selected" == it.name.toString()) { // Property "selected" has changed
solidDirectoryQuery.setValue(directories[dropDown.selected].file.path)
}
}

dropDown.showArrow = false
solidDirectoryQuery.register(this)
}

override fun onPreferencesChanged(storage: StorageInterface, key: String) {
if (key == solidDirectoryQuery.getKey()) {
indexFromSolid()
}
}

private fun indexFromSolid() {
directories.forEachIndexed { index, directory ->
if (directory.file == solidDirectoryQuery.getValueAsFile()) {
dropDown.selected = index
}
}
}

private fun limitWidth(text: String, limit: Int): String {
if (text.length > limit) {
return text.substring(0, limit-2) + "";
}
return text
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import ch.bailu.aat_gtk.util.GtkTimer
import ch.bailu.aat_gtk.view.UiController
import ch.bailu.aat_gtk.view.menu.MenuHelper
import ch.bailu.aat_gtk.view.menu.provider.FileContextMenu
import ch.bailu.aat_gtk.view.solid.SolidDirectoryQueryComboView
import ch.bailu.aat_gtk.view.solid.SolidDirectoryDropDownView
import ch.bailu.aat_lib.app.AppContext
import ch.bailu.aat_lib.description.AverageSpeedDescription
import ch.bailu.aat_lib.description.DateDescription
Expand Down Expand Up @@ -172,7 +172,7 @@ class FileListPage(app: Application,
append(Box(Orientation.HORIZONTAL, 0).apply {
addCssClass(Strings.linked)
append(
SolidDirectoryQueryComboView(appContext).combo.apply {
SolidDirectoryDropDownView(appContext).dropDown.apply {
hexpand = true
})
append(Button().apply {
Expand Down

0 comments on commit 3903a7f

Please sign in to comment.