fix gui freeze bug (work round)

This commit is contained in:
Aynakeya
2023-02-19 04:23:03 -08:00
parent 9d99a74faf
commit 6f2349e17b
106 changed files with 2051 additions and 1580 deletions

57
app/bugt/main.go Normal file
View File

@@ -0,0 +1,57 @@
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/data/binding"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"strconv"
)
var w fyne.Window
func main() {
a := app.NewWithID("io.fyne.demo")
a.SetIcon(theme.FyneLogo())
w = a.NewWindow("Fyne Demo")
Regen(w)
w.Resize(fyne.NewSize(1080, 720))
w.ShowAndRun()
}
func Regen(w fyne.Window) {
tabs := container.NewDocTabs()
for _, datum := range generateData(100) {
tabs.Append(newItemTab(&datum))
}
w.SetContent(tabs)
}
func generateData(n int) (result []int) {
for i := 0; i < n; i++ {
result = append(result, i)
}
return
}
func newItemTab(i *int) *container.TabItem {
c := container.NewVBox(
BindIntWithEntry(i),
widget.NewButton("Regen", func() {
Regen(w)
}),
)
return container.NewTabItemWithIcon(strconv.Itoa(*i), theme.MenuIcon(), c)
}
func BindIntWithLabel(k *int) *widget.Label {
b := binding.BindInt(k)
return widget.NewLabelWithData(binding.IntToString(b))
}
func BindIntWithEntry(k *int) *widget.Entry {
b := binding.BindInt(k)
return widget.NewEntryWithData(binding.IntToString(b))
}

View File

@@ -1,51 +0,0 @@
package main
import (
"AynaLivePlayer/common/i18n"
"AynaLivePlayer/common/logger"
"AynaLivePlayer/config"
"AynaLivePlayer/controller"
"AynaLivePlayer/controller/core"
"AynaLivePlayer/gui"
"AynaLivePlayer/player"
"AynaLivePlayer/plugin/diange"
"AynaLivePlayer/plugin/qiege"
"AynaLivePlayer/plugin/textinfo"
"AynaLivePlayer/plugin/webinfo"
"AynaLivePlayer/plugin/wylogin"
"flag"
)
var dev = flag.Bool("dev", false, "generate new translation file")
func createController() controller.IController {
liveroom := core.NewLiveRoomController()
lyric := core.NewLyricLoader()
provider := core.NewProviderController()
playlist := core.NewPlaylistController(provider)
plugin := core.NewPluginController()
mpvPlayer := player.NewMpvPlayer()
playControl := core.NewPlayerController(mpvPlayer, playlist, lyric, provider)
ctr := core.NewController(liveroom, playControl, playlist, provider, plugin)
return ctr
}
func main() {
flag.Parse()
logger.Logger.Info("================Program Start================")
logger.Logger.Infof("================Current Version: %s================", config.Version)
mainController := createController()
controller.Instance = mainController
gui.Initialize()
plugins := []controller.Plugin{diange.NewDiange(mainController), qiege.NewQiege(mainController),
textinfo.NewTextInfo(mainController), webinfo.NewWebInfo(mainController),
wylogin.NewWYLogin()}
mainController.LoadPlugins(plugins...)
gui.MainWindow.ShowAndRun()
mainController.CloseAndSave()
if *dev {
i18n.SaveTranslation()
}
_ = config.SaveToConfigFile(config.ConfigPath)
logger.Logger.Info("================Program End================")
}

View File

@@ -1,27 +0,0 @@
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello World")
texts := make([]fyne.CanvasObject, 1)
for i := 0; i < len(texts); i++ {
l := widget.NewLabelWithStyle(
" AAAA",
fyne.TextAlignCenter, fyne.TextStyle{})
l.Wrapping = fyne.TextWrapWord
texts[i] = l
}
vbox := container.NewVBox(texts...)
scroll := container.NewScroll(vbox)
w.SetContent(scroll)
w.Resize(fyne.NewSize(360, 540))
w.ShowAndRun()
}