mirror of
https://github.com/Apologieze/Benri.git
synced 2026-01-18 17:17:21 +01:00
start of new image add
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user