summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-01-25 22:50:05 +0200
committerPaul Buetow <paul@buetow.org>2024-01-25 22:50:05 +0200
commit0482b1a2fcf38ee8ce85a2eeac8e9edc2a34a939 (patch)
tree9039b108f3580e9d82c7a0875814c33d5f27d776 /main.go
parent7756b77bf0737d91bd1d156ef9a12b6fdf740fa6 (diff)
also add preferences menu
Diffstat (limited to 'main.go')
-rw-r--r--main.go67
1 files changed, 49 insertions, 18 deletions
diff --git a/main.go b/main.go
index 9dea3f0..579f691 100644
--- a/main.go
+++ b/main.go
@@ -12,35 +12,66 @@ import (
"fyne.io/fyne/v2/widget"
)
-func main() {
- a := app.NewWithID("org.buetow.quicklogger")
- a.Preferences().SetString("Directory", "/storage/emulated/0/Notes/Vault")
- w := a.NewWindow("Quick logger")
+const (
+ appId = "org.buetow.quicklogger"
+ defaultDirectory = "."
+)
- // Same dir as my Obsidian
- storageDir := a.Preferences().String("Directory")
+var windowSize = fyne.NewSize(200, 100)
+
+func createPreferenceWindow(a fyne.App) fyne.Window {
+ window := a.NewWindow("Preferences")
+ window.Resize(windowSize)
+ directoryPreference := widget.NewEntry()
+ directoryPreference.SetText(a.Preferences().StringWithFallback("Directory", defaultDirectory))
+
+ saveButton := widget.NewButton("Save", func() {
+ a.Preferences().SetString("Directory", directoryPreference.Text)
+ window.Hide()
+ })
+
+ preferencesContent := container.NewVBox(
+ widget.NewLabel("Directory"),
+ directoryPreference,
+ saveButton,
+ )
+ window.SetContent(preferencesContent)
+
+ return window
+}
+
+func createMainWindow(a fyne.App) fyne.Window {
+ window := a.NewWindow("Quick logger")
input := widget.NewMultiLineEntry()
input.Wrapping = fyne.TextWrapWord
- input.SetPlaceHolder("Enter text here!")
+ input.SetPlaceHolder("Enter text here...")
button := widget.NewButton("Log text", func() {
- content := input.Text
- filename := fmt.Sprintf("%s/ql-%s.md", storageDir, time.Now().Format("060102-150405"))
- err := os.WriteFile(filename, []byte(content), 0644)
+ filename := fmt.Sprintf("%s/ql-%s.md",
+ a.Preferences().StringWithFallback("Directory", defaultDirectory),
+ time.Now().Format("060102-150405"))
+ err := os.WriteFile(filename, []byte(input.Text), 0644)
if err != nil {
- dialog.ShowError(err, w)
- } else {
- input.SetText("")
+ dialog.ShowError(err, window)
+ return
}
+ input.SetText("")
})
- w.SetContent(container.NewVBox(
- widget.NewLabel("To be in the .zone!"),
+ window.SetContent(container.NewVBox(
input,
button,
+ widget.NewButton("Preferences", func() {
+ createPreferenceWindow(a).Show()
+ }),
))
- w.Resize(fyne.NewSize(200, 100))
- w.Canvas().Focus(input)
- w.ShowAndRun()
+ window.Resize(windowSize)
+ window.Canvas().Focus(input)
+
+ return window
+}
+
+func main() {
+ createMainWindow(app.NewWithID(appId)).ShowAndRun()
}