diff options
| author | Paul Buetow <paul@buetow.org> | 2025-09-13 10:31:07 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-09-13 10:31:07 +0300 |
| commit | 4f4d430db11f4d7be9cb7c6562d611f088cc01cc (patch) | |
| tree | 071f180b0433efa60f9cbeaba6bc8e039ab545fc /main.go | |
| parent | e32cd22fea7e575f0d007226c34f711387aba923 (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.go | 171 |
1 files changed, 51 insertions, 120 deletions
@@ -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) |
