MCPcopy Create free account
hub / github.com/efogdev/mpris-timer / populatePresetsGroup

Function populatePresetsGroup

internal/ui/prefs.go:353–420  ·  view source on GitHub ↗
(group *adw.PreferencesGroup)

Source from the content-addressed store, hash-verified

351}
352
353func populatePresetsGroup(group *adw.PreferencesGroup) {
354 defaultPresetSelect = adw.NewComboRow()
355 newPresetBtn := gtk.NewButton()
356 activatePresetSwitch := adw.NewSwitchRow()
357 startOnClickSwitch := adw.NewSwitchRow()
358
359 populateDefaultPresetSelect()
360 defaultPresetSelect.SetTitle("Default preset")
361 defaultPresetSelect.SetActivatable(true)
362 defaultPresetSelect.Connect("notify::selected", func() {
363 preset := core.UserPrefs.Presets[defaultPresetSelect.Selected()]
364 core.SetDefaultPreset(preset)
365 })
366
367 activatePresetSwitch.SetTitle("Activate on launch")
368 activatePresetSwitch.SetSensitive(core.UserPrefs.ShowPresets)
369 activatePresetSwitch.SetActive(core.UserPrefs.ActivatePreset)
370 activatePresetSwitch.Connect("notify::active", func() {
371 core.SetActivatePreset(activatePresetSwitch.Active())
372
373 if activatePresetSwitch.Active() && startOnClickSwitch.Active() {
374 startOnClickSwitch.SetActive(false)
375 core.SetStartPresetOnClick(false)
376 }
377 })
378
379 startOnClickSwitch.SetTitle("Start when selected")
380 startOnClickSwitch.SetActive(core.UserPrefs.StartPresetOnClick)
381 startOnClickSwitch.Connect("notify::active", func() {
382 core.SetStartPresetOnClick(startOnClickSwitch.Active())
383
384 if activatePresetSwitch.Active() && startOnClickSwitch.Active() {
385 activatePresetSwitch.SetActive(false)
386 core.SetActivatePreset(false)
387 }
388 })
389
390 presetsBox = gtk.NewListBox()
391 presetsBox.SetVisible(core.UserPrefs.ShowPresets)
392 presetsBox.AddCSSClass("presets-list")
393 presetsBox.SetVExpand(true)
394 presetsBox.SetOverflow(gtk.OverflowHidden)
395
396 RenderPresets([]string{})
397
398 btnContent := adw.NewButtonContent()
399 btnContent.SetLabel("")
400 btnContent.SetIconName("list-add-symbolic")
401
402 newPresetBtn.SetChild(btnContent)
403 newPresetBtn.AddCSSClass("add-preset-btn")
404 newPresetBtn.ConnectClicked(func() {
405 presets := append(core.UserPrefs.Presets, "00:00")
406 core.SetPresets(presets)
407 RenderPresets([]string{"00:00"})
408 })
409
410 footer := gtk.NewBox(gtk.OrientationHorizontal, 0)

Callers 1

NewPrefsWidgetsFunction · 0.85

Calls 6

SetDefaultPresetFunction · 0.92
SetActivatePresetFunction · 0.92
SetStartPresetOnClickFunction · 0.92
SetPresetsFunction · 0.92
RenderPresetsFunction · 0.85

Tested by

no test coverage detected