mirror of
https://github.com/AynaLivePlayer/AynaLivePlayer.git
synced 2026-05-19 09:15:47 +08:00
fix gui freeze bug (work round)
This commit is contained in:
57
app/bugt/main.go
Normal file
57
app/bugt/main.go
Normal 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))
|
||||
}
|
||||
@@ -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================")
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
Reference in New Issue
Block a user