From 3a004d1ca7194df145293304df4c7aee5a8ef57e Mon Sep 17 00:00:00 2001 From: Apologieze <47333595+Apologieze@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:09:56 -0500 Subject: [PATCH] start of new image add --- src/addingAnime.go | 27 ++++++++++++++++++++++++++- src/main.go | 6 +++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/addingAnime.go b/src/addingAnime.go index 65b2c0b..7020636 100644 --- a/src/addingAnime.go +++ b/src/addingAnime.go @@ -8,12 +8,20 @@ import ( "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/data/binding" "fyne.io/fyne/v2/dialog" + "fyne.io/fyne/v2/layout" "fyne.io/fyne/v2/theme" "fyne.io/fyne/v2/widget" + "github.com/charmbracelet/log" + "github.com/rl404/verniy" "image/color" ) func setDialogAddAnime() { + var searchResult []verniy.Media + + animeImageHolder := &canvas.Image{} + imageContainer := container.NewVBox(animeImageHolder, layout.NewSpacer()) + animesNames := binding.BindStringList( &[]string{}, ) @@ -25,6 +33,22 @@ func setDialogAddAnime() { func(i binding.DataItem, o fyne.CanvasObject) { o.(*widget.Label).Bind(i.(binding.String)) }) + + listAnimeDisplay.OnSelected = func(id int) { + imageLink := searchResult[id].CoverImage.Large + if imageLink != nil { + imageFile := GetImageFromUrl(*imageLink) + if imageFile == nil { + log.Error("No image found") + return + } + + *animeImageHolder = *getAnimeImageFromImage(imageFile, 250) + imageContainer.Refresh() + } + + } + listContainer := container.NewPadded(&canvas.Rectangle{FillColor: color.RGBA{R: grayScaleList, G: grayScaleList, B: grayScaleList, A: 255}, CornerRadius: 10}, listAnimeDisplay) inputSearch := widget.NewEntry() @@ -38,6 +62,7 @@ func setDialogAddAnime() { if result == nil { return } + searchResult = result animesNames.Set([]string{}) for i := 0; i < len(result); i++ { name := anilist.AnimeToName(&result[i]) @@ -52,7 +77,7 @@ func setDialogAddAnime() { buttonSearch.Importance = widget.WarningImportance 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 := dialog.NewCustom("Add new anime from Anilist", "Cancel", container.NewBorder(searchBar, nil, nil, imageContainer, listContainer), window) dialogAdd.Resize(fyne.NewSize(800, 550)) dialogAdd.Show() } diff --git a/src/main.go b/src/main.go index 6ba365c..aeb7134 100644 --- a/src/main.go +++ b/src/main.go @@ -93,10 +93,10 @@ func GetImageFromUrl(url string) image.Image { return img } -func getAnimeImageFromImage(img image.Image) *canvas.Image { +func getAnimeImageFromImage(img image.Image, newWidth float32) *canvas.Image { size := img.Bounds().Size() ratio := float32(size.X) / float32(size.Y) - var newWidth float32 = 300 + newHeight := newWidth / ratio imageEx := canvas.NewImageFromImage(img) @@ -287,7 +287,7 @@ func initMainApp() { return } - *imageEx = *getAnimeImageFromImage(imageFile) + *imageEx = *getAnimeImageFromImage(imageFile, 300) imageContainer.Refresh() }