mirror of
https://github.com/AynaLivePlayer/AynaLivePlayer.git
synced 2025-12-15 22:48:16 +08:00
fix gui freeze bug (work round)
This commit is contained in:
@@ -2,8 +2,8 @@ package gui
|
||||
|
||||
import (
|
||||
"AynaLivePlayer/common/i18n"
|
||||
"AynaLivePlayer/controller"
|
||||
"AynaLivePlayer/model"
|
||||
"AynaLivePlayer/core/model"
|
||||
"AynaLivePlayer/gui/component"
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
@@ -33,25 +33,25 @@ func (b *bascicConfig) CreatePanel() fyne.CanvasObject {
|
||||
func(b bool) {
|
||||
l().Infof("Set random playlist for user: %t", b)
|
||||
if b {
|
||||
controller.Instance.Playlists().GetCurrent().Model().Mode = model.PlaylistModeRandom
|
||||
API.Playlists().GetCurrent().Model().Mode = model.PlaylistModeRandom
|
||||
} else {
|
||||
controller.Instance.Playlists().GetCurrent().Model().Mode = model.PlaylistModeNormal
|
||||
API.Playlists().GetCurrent().Model().Mode = model.PlaylistModeNormal
|
||||
}
|
||||
},
|
||||
controller.Instance.Playlists().GetCurrent().Model().Mode == model.PlaylistModeRandom),
|
||||
API.Playlists().GetCurrent().Model().Mode == model.PlaylistModeRandom),
|
||||
newCheckInit(
|
||||
i18n.T("gui.config.basic.random_playlist.system"),
|
||||
func(b bool) {
|
||||
l().Infof("Set random playlist for system: %t", b)
|
||||
if b {
|
||||
controller.Instance.Playlists().GetDefault().Model().Mode = model.PlaylistModeRandom
|
||||
API.Playlists().GetDefault().Model().Mode = model.PlaylistModeRandom
|
||||
} else {
|
||||
controller.Instance.Playlists().GetDefault().Model().Mode = model.PlaylistModeNormal
|
||||
API.Playlists().GetDefault().Model().Mode = model.PlaylistModeNormal
|
||||
}
|
||||
},
|
||||
controller.Instance.Playlists().GetDefault().Model().Mode == model.PlaylistModeRandom),
|
||||
API.Playlists().GetDefault().Model().Mode == model.PlaylistModeRandom),
|
||||
)
|
||||
devices := controller.Instance.PlayControl().GetAudioDevices()
|
||||
devices := API.PlayControl().GetAudioDevices()
|
||||
deviceDesc := make([]string, len(devices))
|
||||
deviceDesc2Name := make(map[string]string)
|
||||
for i, device := range devices {
|
||||
@@ -59,22 +59,26 @@ func (b *bascicConfig) CreatePanel() fyne.CanvasObject {
|
||||
deviceDesc2Name[device.Description] = device.Name
|
||||
}
|
||||
deviceSel := widget.NewSelect(deviceDesc, func(s string) {
|
||||
controller.Instance.PlayControl().SetAudioDevice(deviceDesc2Name[s])
|
||||
API.PlayControl().SetAudioDevice(deviceDesc2Name[s])
|
||||
})
|
||||
deviceSel.Selected = controller.Instance.PlayControl().GetCurrentAudioDevice()
|
||||
deviceSel.Selected = API.PlayControl().GetCurrentAudioDevice()
|
||||
outputDevice := container.NewBorder(nil, nil,
|
||||
widget.NewLabel(i18n.T("gui.config.basic.audio_device")), nil,
|
||||
deviceSel)
|
||||
skipPlaylist := container.NewHBox(
|
||||
widget.NewLabel(i18n.T("gui.config.basic.skip_playlist")),
|
||||
newCheckInit(
|
||||
component.NewCheckOneWayBinding(
|
||||
i18n.T("gui.config.basic.skip_playlist.prompt"),
|
||||
func(b bool) {
|
||||
controller.Instance.PlayControl().SetSkipPlaylist(b)
|
||||
},
|
||||
controller.Instance.PlayControl().GetSkipPlaylist(),
|
||||
),
|
||||
&API.PlayControl().Config().SkipPlaylist,
|
||||
API.PlayControl().Config().SkipPlaylist),
|
||||
)
|
||||
b.panel = container.NewVBox(randomPlaylist, outputDevice, skipPlaylist)
|
||||
skipWhenErr := container.NewHBox(
|
||||
widget.NewLabel(i18n.T("gui.config.basic.skip_when_error")),
|
||||
component.NewCheckOneWayBinding(
|
||||
i18n.T("gui.config.basic.skip_when_error.prompt"),
|
||||
&API.PlayControl().Config().AutoNextWhenFail,
|
||||
API.PlayControl().Config().AutoNextWhenFail),
|
||||
)
|
||||
b.panel = container.NewVBox(randomPlaylist, outputDevice, skipPlaylist, skipWhenErr)
|
||||
return b.panel
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user