If a file/directory is opened and that file does not have read permission for this user, amarok add's it to the playlist and grays out the title, without warning the user why the file does not open.
Steps to Reproduce:
1. Open with amarok a file/song that doesn't have read permissions for the current user.
The Song is added to the playlist and the title is grayed out. The user does not know why it won't play.
An warning/error dialog should appear informing the user that the file permissions do not allow for it to be opened.
In the same scenario if the files are in the Local Collection folder they do not appear int he Local Collections view.
I have a similar issue that would amount to the same fix, so I'm just adding it here. Apparently, my music directory was erroneously set to user root, but with read support for my user, so Amarok had no issue playing the files.
However, it did not remember any of the changes I made to my song tags/metadata.
I would like Amarok to inform the user that the changes cannot be written because there is no write permission.
Devs, should I open a new report for this, or is this issue close enough to where the same fix will apply to both?
I just think that both issues are about Amarok's permission handling, namely that you do not get a warning with missing permissions at all.
Sorry, I should add that I have this problem with Amarok 2.7 on Kubuntu 12.10 with KDE 4.10. All of which are the current stable editions. Thanks!
I think a dialog shouldn't appear since it would hinder the user. Consider this: If many files are being added and a few are unable to be read and/or write-to they should be greyed out as they are right now, rather than poping back-to-back dialogs.
But as for informing the user, A tooltip should be shown if a user drags the cursor to the greyed out song stating the exact reason why the file is unreadble (insufficient permissions, file deleted or moved, etc. ).
So, I think the "Expected Results" should be changed to "show a tooltip stating the reason".
i think it has been fixed. While attempting to open a file/folder with no read permissions, a status bar does appear stating "could not enter folder/abc.
Added a tooltip + disabled context-menu action to indicate there are no-permissions to read the particular track
Git commit 0b1391318ae98c5f077b301ccb76a23b7efd1c3f by Matěj Laitl, on behalf of Anmol Ahuja.
Committed on 19/04/2013 at 16:09.
Pushed by laitl into branch 'master'.
Meta::Track, playlist: show reason why a track is not playable
1. Add notPlayableReason() to Meta::Track (and provide convenience
implementation of isPlayable() using it)
2. Display track tooltip with the notPlayableReason() if track is not
* Reason why a particular track is not playable is now shown in
playlist tooltip; patch by Anmol Ahuja.
M +2 -0 ChangeLog
M +3 -3 src/core-impl/collections/audiocd/AudioCdMeta.cpp
M +1 -1 src/core-impl/collections/audiocd/AudioCdMeta.h
M +3 -9 src/core-impl/collections/daap/DaapMeta.cpp
M +1 -1 src/core-impl/collections/daap/DaapMeta.h
M +3 -6 src/core-impl/collections/db/sql/SqlMeta.cpp
M +1 -2 src/core-impl/collections/db/sql/SqlMeta.h
M +3 -8 src/core-impl/collections/ipodcollection/IpodMeta.cpp
M +1 -1 src/core-impl/collections/ipodcollection/IpodMeta.h
M +3 -8 src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.cpp
M +1 -1 src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.h
M +6 -3 src/core-impl/collections/nepomukcollection/meta/NepomukTrack.cpp
M +1 -1 src/core-impl/collections/nepomukcollection/meta/NepomukTrack.h
M +5 -3 src/core-impl/collections/playdarcollection/PlaydarMeta.cpp
M +2 -2 src/core-impl/collections/playdarcollection/PlaydarMeta.h
M +14 -0 src/core-impl/collections/proxycollection/ProxyCollectionMeta.cpp
M +6 -0 src/core-impl/collections/proxycollection/ProxyCollectionMeta.h
M +1 -0 src/core-impl/collections/support/MemoryMeta.h
M +3 -8 src/core-impl/collections/upnpcollection/UpnpMeta.cpp
M +1 -1 src/core-impl/collections/upnpcollection/UpnpMeta.h
M +3 -4 src/core-impl/meta/file/File.cpp
M +1 -1 src/core-impl/meta/file/File.h
M +1 -0 src/core-impl/meta/multi/MultiTrack.h
M +12 -1 src/core-impl/meta/proxy/MetaProxy.cpp
M +2 -0 src/core-impl/meta/proxy/MetaProxy.h
M +3 -8 src/core-impl/meta/stream/Stream.cpp
M +1 -1 src/core-impl/meta/stream/Stream.h
M +0 -6 src/core-impl/meta/timecode/TimecodeMeta.cpp
M +0 -1 src/core-impl/meta/timecode/TimecodeMeta.h
M +42 -0 src/core/meta/Meta.cpp
M +29 -3 src/core/meta/Meta.h
M +0 -1 src/core/podcasts/PodcastMeta.h
M +11 -2 src/playlist/PlaylistModel.cpp
M +0 -6 src/services/ServiceMetaBase.cpp
M +0 -1 src/services/ServiceMetaBase.h
M +3 -15 src/services/ampache/AmpacheMeta.cpp
M +1 -1 src/services/ampache/AmpacheMeta.h
M +3 -14 src/services/lastfm/meta/LastFmMeta.cpp
M +1 -2 src/services/lastfm/meta/LastFmMeta.h
M +1 -1 tests/CMakeLists.txt
M +3 -0 tests/synchronization/CMakeLists.txt