Use ItemToIndex and fix memory leaks in devices
This commit is contained in:
@@ -100,7 +100,15 @@ void ConnectedDevice::InitBackendDirectory(const QString &mount_point, bool firs
|
||||
}
|
||||
|
||||
void ConnectedDevice::Eject() {
|
||||
manager_->UnmountAsync(manager_->FindDeviceById(unique_id_));
|
||||
|
||||
DeviceInfo *info = manager_->FindDeviceById(unique_id_);
|
||||
if (!info) return;
|
||||
|
||||
QModelIndex idx = manager_->ItemToIndex(info);
|
||||
if (!idx.isValid()) return;
|
||||
|
||||
manager_->UnmountAsync(idx);
|
||||
|
||||
}
|
||||
|
||||
void ConnectedDevice::FinishCopy(bool) {
|
||||
@@ -112,13 +120,27 @@ void ConnectedDevice::FinishDelete(bool) {
|
||||
}
|
||||
|
||||
MusicStorage::TranscodeMode ConnectedDevice::GetTranscodeMode() const {
|
||||
int index = manager_->FindDeviceById(unique_id_);
|
||||
return MusicStorage::TranscodeMode(manager_->index(index, 0, QModelIndex()).data(DeviceManager::Role_TranscodeMode).toInt());
|
||||
|
||||
DeviceInfo *info = manager_->FindDeviceById(unique_id_);
|
||||
if (!info) return MusicStorage::TranscodeMode();
|
||||
|
||||
QModelIndex idx = manager_->ItemToIndex(info);
|
||||
if (!idx.isValid()) return MusicStorage::TranscodeMode();
|
||||
|
||||
return MusicStorage::TranscodeMode(idx.data(DeviceManager::Role_TranscodeMode).toInt());
|
||||
|
||||
}
|
||||
|
||||
Song::FileType ConnectedDevice::GetTranscodeFormat() const {
|
||||
int index = manager_->FindDeviceById(unique_id_);
|
||||
return Song::FileType(manager_->index(index, 0, QModelIndex()).data(DeviceManager::Role_TranscodeFormat).toInt());
|
||||
|
||||
DeviceInfo *info = manager_->FindDeviceById(unique_id_);
|
||||
if (!info) return Song::FileType_Unknown;
|
||||
|
||||
QModelIndex idx = manager_->ItemToIndex(info);
|
||||
if (!idx.isValid()) return Song::FileType_Unknown;
|
||||
|
||||
return Song::FileType(idx.data(DeviceManager::Role_TranscodeFormat).toInt());
|
||||
|
||||
}
|
||||
|
||||
void ConnectedDevice::BackendTotalSongCountUpdated(int count) {
|
||||
|
||||
Reference in New Issue
Block a user