diff --git a/models/devicesmodel.cpp b/models/devicesmodel.cpp index 7a04e7bb6..2d9c56d50 100644 --- a/models/devicesmodel.cpp +++ b/models/devicesmodel.cpp @@ -362,19 +362,23 @@ void DevicesModel::setCover(const Song &song, const QImage &img) return; } - int i=0; - foreach (MusicLibraryItem *device, devices) { - MusicLibraryItemArtist *artistItem = static_cast(device)->artist(song, false); - if (artistItem) { - MusicLibraryItemAlbum *albumItem = artistItem->album(song, false); - if (albumItem) { - if (static_cast(albumItem)->setCover(img)) { - QModelIndex idx=index(artistItem->childItems().indexOf(albumItem), 0, index(static_cast(device)->childItems().indexOf(artistItem), 0, index(i, 0, QModelIndex()))); - emit dataChanged(idx, idx); - } + Device *dev=qobject_cast(sender()); + if (!dev) { + return; + } + int i=devices.indexOf(dev); + if (i<0) { + return; + } + MusicLibraryItemArtist *artistItem = static_cast(dev)->artist(song, false); + if (artistItem) { + MusicLibraryItemAlbum *albumItem = artistItem->album(song, false); + if (albumItem) { + if (static_cast(albumItem)->setCover(img)) { + QModelIndex idx=index(artistItem->childItems().indexOf(albumItem), 0, index(static_cast(dev)->childItems().indexOf(artistItem), 0, index(i, 0, QModelIndex()))); + emit dataChanged(idx, idx); } } - i++; } } @@ -749,6 +753,7 @@ void DevicesModel::loadRemote() devices.append(dev); connect(dev, SIGNAL(updating(const QString &, bool)), SLOT(deviceUpdating(const QString &, bool))); connect(dev, SIGNAL(error(const QString &)), SIGNAL(error(const QString &))); + connect(dev, SIGNAL(cover(const Song &, const QImage &)), SLOT(setCover(const Song &, const QImage &))); if (Device::RemoteFs==dev->devType()) { connect(static_cast(dev), SIGNAL(udiChanged()), SLOT(remoteDeviceUdiChanged())); }