summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-09-13 10:31:07 +0300
committerPaul Buetow <paul@buetow.org>2025-09-13 10:31:07 +0300
commit4f4d430db11f4d7be9cb7c6562d611f088cc01cc (patch)
tree071f180b0433efa60f9cbeaba6bc8e039ab545fc /main.go
parente32cd22fea7e575f0d007226c34f711387aba923 (diff)
Simplify UI: remove Days/Tag/What menus; reorder bottom controls to 'Log text', 'Clear', 'Preferences', char count. Simplify Preferences to directory only. Add Magefile with build, run, clean, android, androidcross targets; make run verbose for debugging.
Diffstat (limited to 'main.go')
-rw-r--r--main.go171
1 files changed, 51 insertions, 120 deletions
diff --git a/main.go b/main.go
index 5a7d35a..863a40d 100644
--- a/main.go
+++ b/main.go
@@ -1,16 +1,15 @@
package main
import (
- "fmt"
- "os"
- "strings"
- "time"
-
- "fyne.io/fyne/v2"
- "fyne.io/fyne/v2/app"
- "fyne.io/fyne/v2/container"
- "fyne.io/fyne/v2/dialog"
- "fyne.io/fyne/v2/widget"
+ "fmt"
+ "os"
+ "time"
+
+ "fyne.io/fyne/v2"
+ "fyne.io/fyne/v2/app"
+ "fyne.io/fyne/v2/container"
+ "fyne.io/fyne/v2/dialog"
+ "fyne.io/fyne/v2/widget"
)
const (
@@ -20,74 +19,28 @@ const (
)
var (
- defaultDirectory = "."
- defaultTagItems = []string{
- "infra",
- "log",
- "share",
- "share:li",
- "share:ma",
- "share:no",
- "track",
- "track 10",
- "track 15",
- "track 20",
- "track 25",
- "track 30",
- "track 5",
- "work",
- }
- defaultWhatItems = []string{
- "Breathing",
- "Bulgarian",
- "Ema",
- "Exercise",
- "Meditation",
- "Music",
- "Reading Articles",
- "Reading Books",
- "Stretching",
- "Tech",
- }
+ defaultDirectory = "."
)
var windowSize = fyne.NewSize(400, 100)
func createPreferenceWindow(a fyne.App) fyne.Window {
- window := a.NewWindow("Preferences")
- directoryPreference := widget.NewEntry()
- directoryPreference.SetText(a.Preferences().StringWithFallback("Directory", defaultDirectory))
-
- tagDropdownPreference := widget.NewEntry()
- tagDropdownPreference.SetText(a.Preferences().StringWithFallback("Tags", strings.Join(defaultTagItems, ",")))
-
- whatDropdownPreference := widget.NewEntry()
- whatDropdownPreference.SetText(a.Preferences().StringWithFallback("Whats", strings.Join(defaultWhatItems, ",")))
-
- window.SetContent(container.NewVBox(
- container.NewVBox(
- widget.NewLabel("Directory:"),
- directoryPreference,
- widget.NewLabel("Tags:"),
- tagDropdownPreference,
- widget.NewLabel("Whats:"),
- whatDropdownPreference,
- ),
- container.NewHBox(
- widget.NewButton("Save", func() {
- a.Preferences().SetString("Directory", directoryPreference.Text)
- a.Preferences().SetString("Tags", tagDropdownPreference.Text)
- a.Preferences().SetString("Whats", whatDropdownPreference.Text)
- window.Hide()
- }),
- widget.NewButton("Reset dropdowns", func() {
- // directoryPreference.SetText(defaultDirectory)
- tagDropdownPreference.SetText(strings.Join(defaultTagItems, ","))
- whatDropdownPreference.SetText(strings.Join(defaultWhatItems, ","))
- },
- ),
- )))
- window.Resize(windowSize)
+ window := a.NewWindow("Preferences")
+ directoryPreference := widget.NewEntry()
+ directoryPreference.SetText(a.Preferences().StringWithFallback("Directory", defaultDirectory))
+
+ window.SetContent(container.NewVBox(
+ container.NewVBox(
+ widget.NewLabel("Directory:"),
+ directoryPreference,
+ ),
+ container.NewHBox(
+ widget.NewButton("Save", func() {
+ a.Preferences().SetString("Directory", directoryPreference.Text)
+ window.Hide()
+ }),
+ )))
+ window.Resize(windowSize)
return window
}
@@ -128,42 +81,20 @@ func createMainWindow(a fyne.App) fyne.Window {
}
}
- // Dropdown with pre-selectable items
- daysDropdown := widget.NewSelect([]string{"0", "1", "3", "7", "14", "30", "60", "99"}, func(selected string) {
- input.SetText(selected + " ")
- window.Canvas().Focus(input)
- })
- daysDropdown.PlaceHolder = "Days"
-
- tagDropdownItems := strings.Split(a.Preferences().StringWithFallback("Tags", strings.Join(defaultTagItems, ",")), ",")
- tagDropdown := widget.NewSelect(tagDropdownItems, func(selected string) {
- input.Append(selected + " ")
- window.Canvas().Focus(input)
- })
- tagDropdown.PlaceHolder = "Tag"
-
- whatDropdownItems := strings.Split(a.Preferences().StringWithFallback("Whats", strings.Join(defaultWhatItems, ",")), ",")
- whatDropdown := widget.NewSelect(whatDropdownItems, func(selected string) {
- input.Append(selected + " ")
- window.Canvas().Focus(input)
- input.Cursor()
- })
- whatDropdown.PlaceHolder = "What"
-
- logTextButton := widget.NewButton("Log text", func() {
- filename := fmt.Sprintf("%s/ql-%s.md",
- a.Preferences().StringWithFallback("Directory", defaultDirectory),
- time.Now().Format("060102-150405"),
- )
- if err := os.WriteFile(filename, []byte(input.Text), 0644); err != nil {
- dialog.ShowError(err, window)
- return
- }
- input.SetText("")
- input.SetPlaceHolder(placeholderText)
- // Reset character count
- charCount.SetText("0 chars")
- })
+ logTextButton := widget.NewButton("Log text", func() {
+ filename := fmt.Sprintf("%s/ql-%s.md",
+ a.Preferences().StringWithFallback("Directory", defaultDirectory),
+ time.Now().Format("060102-150405"),
+ )
+ if err := os.WriteFile(filename, []byte(input.Text), 0644); err != nil {
+ dialog.ShowError(err, window)
+ return
+ }
+ input.SetText("")
+ input.SetPlaceHolder(placeholderText)
+ // Reset character count
+ charCount.SetText("0 chars")
+ })
// Optimization 5: Add clear button for quick text clearing
clearButton := widget.NewButton("Clear", func() {
@@ -172,17 +103,17 @@ func createMainWindow(a fyne.App) fyne.Window {
window.Canvas().Focus(input)
})
- window.SetContent(container.NewVBox(
- container.NewHBox(daysDropdown, tagDropdown, whatDropdown, logTextButton),
- input,
- container.NewHBox(
- widget.NewButton("Preferences", func() {
- createPreferenceWindow(a).Show()
- }),
- clearButton,
- charCount, // Show character count
- ),
- ))
+ window.SetContent(container.NewVBox(
+ input,
+ container.NewHBox(
+ logTextButton,
+ clearButton,
+ widget.NewButton("Preferences", func() {
+ createPreferenceWindow(a).Show()
+ }),
+ charCount, // Show character count
+ ),
+ ))
window.Resize(windowSize)
window.Canvas().Focus(input)