diff --git a/src/addingAnime.go b/src/addingAnime.go index 7020636..31c0e4e 100644 --- a/src/addingAnime.go +++ b/src/addingAnime.go @@ -16,11 +16,32 @@ import ( "image/color" ) +var displayToCategories = map[string]string{ + "Currently Watching": "CURRENT", + "Completed": "COMPLETED", + "On Hold": "PAUSED", + "Dropped": "DROPPED", + "Plan to Watch": "PLANNING", +} + +var displayCategories = []string{ + "Currently Watching", + "Plan to Watch", + "Completed", + "On Hold", + "Dropped", +} + func setDialogAddAnime() { var searchResult []verniy.Media + isAnimeSelected := binding.NewBool() animeImageHolder := &canvas.Image{} - imageContainer := container.NewVBox(animeImageHolder, layout.NewSpacer()) + selectCategory := widget.NewSelect(displayCategories, func(s string) {}) + selectCategory.SetSelected(displayCategories[0]) + labelInfo := &widget.Label{Text: "Adding to category:", Alignment: fyne.TextAlignCenter} + imageContainer := container.NewVBox(animeImageHolder, labelInfo, selectCategory, layout.NewSpacer()) + //imageContainer.Hide() animesNames := binding.BindStringList( &[]string{}, @@ -34,26 +55,13 @@ func setDialogAddAnime() { 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() inputSearch.SetPlaceHolder("Search") inputSearch.OnSubmitted = func(s string) { + isAnimeSelected.Set(false) + listAnimeDisplay.UnselectAll() if s == "" { return } @@ -77,7 +85,50 @@ 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, imageContainer, listContainer), window) - dialogAdd.Resize(fyne.NewSize(800, 550)) + dialogAdd := dialog.NewCustomWithoutButtons("Add new anime from Anilist", container.NewBorder(searchBar, nil, nil, imageContainer, listContainer), window) + + addButton := &widget.Button{Text: "Add", OnTapped: dialogAdd.Hide, Icon: theme.ConfirmIcon(), Importance: widget.HighImportance} + dialogAdd.SetButtons([]fyne.CanvasObject{ + &widget.Button{Text: "Cancel", OnTapped: dialogAdd.Hide, Icon: theme.CancelIcon()}, + addButton, + }) + dialogAdd.Resize(fyne.NewSize(850, 580)) + + listAnimeDisplay.OnSelected = func(id int) { + + imageLink := searchResult[id].CoverImage.Large + isAnimeSelected.Set(true) + /*err := anilist.UpdateAnimeStatus(user.Token, searchResult[id].ID, "DROPPED") + if err != nil { + return + }*/ + if imageLink != nil { + imageFile := GetImageFromUrl(*imageLink) + if imageFile == nil { + log.Error("No image found") + return + } + + *animeImageHolder = *getAnimeImageFromImage(imageFile, 220) + imageContainer.Refresh() + } + + } + + isAnimeSelected.AddListener(binding.NewDataListener(func() { + get, err := isAnimeSelected.Get() + if err != nil { + return + } + log.Info("Is anime selected:", get) + if get { + addButton.Show() + imageContainer.Show() + } else { + addButton.Hide() + imageContainer.Hide() + } + })) + dialogAdd.Show() } diff --git a/src/anilist/UpdateCategory.go b/src/anilist/updateCategory.go similarity index 100% rename from src/anilist/UpdateCategory.go rename to src/anilist/updateCategory.go diff --git a/src/main.go b/src/main.go index 58709ce..e1ff241 100644 --- a/src/main.go +++ b/src/main.go @@ -51,7 +51,7 @@ func main() { Theme: theme.DefaultTheme(), variant: theme.VariantDark, }) - log.Info("Color", appW.Settings().Theme().Color(theme.ColorNameFocus, theme.VariantDark)) + //log.Info("Color", appW.Settings().Theme().Color(theme.ColorNameFocus, theme.VariantDark)) startCurdInteg() if !changedToken {