use RefreshItem
This commit is contained in:
@@ -259,9 +259,9 @@ func (t *Tracklist) SetNowPlaying(trackID string) {
|
|||||||
func (t *Tracklist) IncrementPlayCount(trackID string) {
|
func (t *Tracklist) IncrementPlayCount(trackID string) {
|
||||||
t.tracksMutex.RLock()
|
t.tracksMutex.RLock()
|
||||||
t.tracksMutex.RUnlock()
|
t.tracksMutex.RUnlock()
|
||||||
if tr := t.findTrackByID(trackID); tr != nil {
|
if tr, idx := t.findTrackByID(trackID); tr != nil {
|
||||||
tr.PlayCount += 1
|
tr.PlayCount += 1
|
||||||
t.list.Refresh()
|
t.list.RefreshItem(idx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -551,7 +551,7 @@ func (t *Tracklist) onShowContextMenu(e *fyne.PointEvent, trackIdx int) {
|
|||||||
|
|
||||||
func (t *Tracklist) onSetFavorite(trackID string, fav bool) {
|
func (t *Tracklist) onSetFavorite(trackID string, fav bool) {
|
||||||
t.tracksMutex.RLock()
|
t.tracksMutex.RLock()
|
||||||
tr := t.findTrackByID(trackID)
|
tr, _ := t.findTrackByID(trackID)
|
||||||
t.tracksMutex.RUnlock()
|
t.tracksMutex.RUnlock()
|
||||||
t.onSetFavorites([]*mediaprovider.Track{tr}, fav, false)
|
t.onSetFavorites([]*mediaprovider.Track{tr}, fav, false)
|
||||||
}
|
}
|
||||||
@@ -572,7 +572,7 @@ func (t *Tracklist) onSetFavorites(tracks []*mediaprovider.Track, fav bool, need
|
|||||||
func (t *Tracklist) onSetRating(trackID string, rating int) {
|
func (t *Tracklist) onSetRating(trackID string, rating int) {
|
||||||
// update our own track model
|
// update our own track model
|
||||||
t.tracksMutex.RLock()
|
t.tracksMutex.RLock()
|
||||||
tr := t.findTrackByID(trackID)
|
tr, _ := t.findTrackByID(trackID)
|
||||||
t.tracksMutex.RUnlock()
|
t.tracksMutex.RUnlock()
|
||||||
t.onSetRatings([]*mediaprovider.Track{tr}, rating, false)
|
t.onSetRatings([]*mediaprovider.Track{tr}, rating, false)
|
||||||
}
|
}
|
||||||
@@ -608,14 +608,14 @@ func (t *Tracklist) onDownload(tracks []*mediaprovider.Track, downloadName strin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Tracklist) findTrackByID(id string) *mediaprovider.Track {
|
func (t *Tracklist) findTrackByID(id string) (*mediaprovider.Track, int) {
|
||||||
idx := sharedutil.Find(t.tracks, func(tr *trackModel) bool {
|
idx := sharedutil.Find(t.tracks, func(tr *trackModel) bool {
|
||||||
return tr.track.ID == id
|
return tr.track.ID == id
|
||||||
})
|
})
|
||||||
if idx >= 0 {
|
if idx >= 0 {
|
||||||
return t.tracks[idx].track
|
return t.tracks[idx].track, idx
|
||||||
}
|
}
|
||||||
return nil
|
return nil, -1
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Tracklist) selectedTrackModels() []*trackModel {
|
func (t *Tracklist) selectedTrackModels() []*trackModel {
|
||||||
|
|||||||
Reference in New Issue
Block a user