begining of added dialog

This commit is contained in:
Apologieze
2025-01-25 23:10:44 -05:00
parent d5df42a97e
commit 20c2dece60
3 changed files with 72 additions and 16 deletions

57
addingAnime.go Normal file
View File

@@ -0,0 +1,57 @@
package main
import (
"AnimeGUI/anilist"
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/data/binding"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"image/color"
)
func setDialogAddAnime() {
animesNames := binding.BindStringList(
&[]string{},
)
listAnimeDisplay := widget.NewListWithData(animesNames,
func() fyne.CanvasObject {
return &widget.Label{Text: "template"}
},
func(i binding.DataItem, o fyne.CanvasObject) {
o.(*widget.Label).Bind(i.(binding.String))
})
listContainer := container.NewPadded(&canvas.Rectangle{FillColor: color.RGBA{R: grayScaleList, G: grayScaleList, B: grayScaleList, A: 255}, CornerRadius: 10}, listAnimeDisplay)
inputSearch := widget.NewEntry()
inputSearch.SetPlaceHolder("Search")
inputSearch.OnSubmitted = func(s string) {
if s == "" {
return
}
fmt.Println(s)
result := anilist.SearchFromQuery(inputSearch.Text)
if result == nil {
return
}
animesNames.Set([]string{})
for i := 0; i < len(result); i++ {
name := anilist.AnimeToName(&result[i])
if name != nil {
animesNames.Append(*name)
}
}
fmt.Printf("Result: %+v\n", result)
}
buttonSearch := widget.NewButtonWithIcon("", theme.SearchIcon(), func() { inputSearch.OnSubmitted(inputSearch.Text) })
searchBar := container.NewBorder(nil, nil, nil, buttonSearch, inputSearch)
dialogAdd := dialog.NewCustom("Add new anime from Anilist", "Cancel", container.NewBorder(searchBar, nil, nil, nil, listContainer), window)
dialogAdd.Resize(fyne.NewSize(800, 550))
dialogAdd.Show()
}

View File

@@ -85,17 +85,17 @@ func FindList(categoryName string) *[]verniy.MediaList {
return &UserData[categoryIndex].Entries
}
func AnimeToName(anime verniy.MediaList) *string {
if anime.Media == nil {
func AnimeToName(anime *verniy.Media) *string {
if anime == nil {
return nil
}
if anime.Media.Title == nil {
if anime.Title == nil {
return nil
}
if anime.Media.Title.English != nil {
return anime.Media.Title.English
if anime.Title.English != nil {
return anime.Title.English
}
return anime.Media.Title.Romaji
return anime.Title.Romaji
}
func FormatDuration(seconds int) string {
@@ -129,12 +129,15 @@ func IdToUrl(id int) *url.URL {
return u
}
func SearchFromQuery(strQuery string) *[]verniy.Media {
func SearchFromQuery(strQuery string) []verniy.Media {
if strQuery == "" {
return nil
}
query := verniy.PageParamMedia{Search: strQuery}
result, err := Client.SearchAnime(query, 1, 10)
result, err := Client.SearchAnime(query, 1, 15)
if err != nil {
log.Error("Error searching anime:", err)
return nil
}
return &result.Media
return result.Media
}

10
main.go
View File

@@ -32,6 +32,7 @@ var episodeNumber = widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.Text
var episodeLastPlayback = widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{})
var changedToken bool
var mpvPresent bool
var grayScaleList uint8 = 35
func main() {
var AppName = "AnimeGUI"
@@ -58,7 +59,7 @@ func updateAnimeNames(data binding.ExternalStringList) (first bool) {
}
tempName := make([]string, 0, 25)
for _, anime := range *animeList {
if name := anilist.AnimeToName(anime); name != nil {
if name := anilist.AnimeToName(anime.Media); name != nil {
tempName = append(tempName, *name)
} else {
tempName = append(tempName, "Error name")
@@ -192,11 +193,7 @@ func initMainApp() {
toolbar := widget.NewToolbar(
widget.NewToolbarAction(theme.ContentAddIcon(), func() {
result := anilist.SearchFromQuery(input.Text)
if result == nil {
return
}
fmt.Printf("Result: %+v\n", *result)
setDialogAddAnime()
}),
widget.NewToolbarSeparator(),
widget.NewToolbarAction(theme.ViewRefreshIcon(), func() {}),
@@ -223,7 +220,6 @@ func initMainApp() {
radiobox,
)
var grayScaleList uint8 = 35
/*if themeVariant == theme.VariantDark {
grayScaleList = 220
}*/