start of new image add

This commit is contained in:
Apologieze
2025-01-28 17:09:56 -05:00
parent a5ff29637e
commit 3a004d1ca7
2 changed files with 29 additions and 4 deletions

View File

@@ -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()
}

View File

@@ -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()
}