Review Request 109817: JJ 313649 - No warning if there are no permissions to read file

Matěj Laitl matej at laitl.cz
Fri Apr 19 10:55:56 UTC 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/109817/#review31274
-----------------------------------------------------------


This looks very well, thanks. In the mean time I got more ideas how to improve the patch - sorry for not mentioning them earlier, I just didn't know them yet. :-)


src/core-impl/collections/ipodcollection/IpodMeta.cpp
<http://git.reviewboard.kde.org/r/109817/#comment23284>

    Hmm, I see that this code is also a candidate for deduplication. Perhaps you can introduce
    
    protected:
        QString localFileNotPlayableReason( const QString &path ) const;
    
    into Meta::Track? Meta::Track subclasses that handle local files could then do their own checks and then resort to localFileNotPlayableReason(), or call it directly if they have no specific checks.



src/core-impl/collections/proxycollection/ProxyCollectionMeta.cpp
<http://git.reviewboard.kde.org/r/109817/#comment23273>

    As a special case, you should check isPlayable() here and return empty string in that case, so that:
    isPlayable === empty reason
    still holds.



src/core-impl/collections/proxycollection/ProxyCollectionMeta.cpp
<http://git.reviewboard.kde.org/r/109817/#comment23272>

    1. code style nitpick: spaces around ","
    2. typographical rules says that comma should be followed by space - please join using ", " and not ","



src/core-impl/collections/support/MemoryMeta.h
<http://git.reviewboard.kde.org/r/109817/#comment23275>

    As a rather special case, MemoryMeta should relay *both* isPlayable() and notPlayableReason(). The reason is that you cannot guarantee than m_track will also implement isPlayable() by checking that notPlayableReason() is empty.



src/core-impl/meta/multi/MultiTrack.h
<http://git.reviewboard.kde.org/r/109817/#comment23277>

    As in MemoryMeta, you should still relay isPlayable() here.



src/core-impl/meta/proxy/MetaProxy.h
<http://git.reviewboard.kde.org/r/109817/#comment23279>

    As in MemoryMeta and MultiTrack, you should still relay isPlayable()



src/core/meta/Meta.h
<http://git.reviewboard.kde.org/r/109817/#comment23280>

    Please document this method, something like:
    
    /**
     * Helper method for subclasses to implement notPlayableReason(). Checks network status and returns a non-empty string if it isn't on-line.
     */



src/playlist/PlaylistModel.cpp
<http://git.reviewboard.kde.org/r/109817/#comment23282>

    If this makes the tooltip too wide, perhaps the \n can be replaced by <br> to actually force the newline? (please test, this is just a guess)



src/playlist/PlaylistModel.cpp
<http://git.reviewboard.kde.org/r/109817/#comment23283>

    Perhaps the \n is ignored here because Qt detects it is a right text message, which needs to have <br> to denote newline? (please test, this is just a guess)


- Matěj Laitl


On April 18, 2013, 3:18 p.m., Anmol Ahuja wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/109817/
> -----------------------------------------------------------
> 
> (Updated April 18, 2013, 3:18 p.m.)
> 
> 
> Review request for Amarok.
> 
> 
> Description
> -------
> 
> 1. Added notPlayableReason() to class Track
> 2. Display track tooltip with the prettyNotPlayableReason() if track not playable
> 
> 
> Diffs
> -----
> 
>   src/services/ServiceMetaBase.h f25159d 
>   src/playlist/PlaylistModel.cpp 246b9a1 
>   src/core/podcasts/PodcastMeta.h f3b21de 
>   src/core/meta/Meta.cpp cd1b38a 
>   src/core/meta/Meta.h f86cf39 
>   src/core-impl/meta/timecode/TimecodeMeta.cpp e3490e4 
>   src/core-impl/meta/timecode/TimecodeMeta.h 3aed4f9 
>   src/core-impl/meta/stream/Stream.cpp 6e35960 
>   src/core-impl/meta/stream/Stream.h 3e19b45 
>   src/core-impl/meta/proxy/MetaProxy.cpp 6a35bc5 
>   src/core-impl/meta/proxy/MetaProxy.h 15967df 
>   src/core-impl/meta/multi/MultiTrack.h be55170 
>   src/core-impl/meta/file/File.h 7d3359d 
>   src/core-impl/meta/file/File.cpp 2cd0a61 
>   src/core-impl/collections/upnpcollection/UpnpMeta.cpp 00cc915 
>   src/core-impl/collections/upnpcollection/UpnpMeta.h 55bc131 
>   src/core-impl/collections/support/MemoryMeta.h 40061d2 
>   src/core-impl/collections/proxycollection/ProxyCollectionMeta.cpp e58a20a 
>   src/core-impl/collections/proxycollection/ProxyCollectionMeta.h ef342a4 
>   src/core-impl/collections/playdarcollection/PlaydarMeta.cpp 5f4ec3c 
>   src/core-impl/collections/playdarcollection/PlaydarMeta.h 7a39a4f 
>   src/core-impl/collections/nepomukcollection/meta/NepomukTrack.cpp 6d5bcf7 
>   src/core-impl/collections/nepomukcollection/meta/NepomukTrack.h 27ff06d 
>   src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.cpp 2b66574 
>   src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.h 5d1b9f9 
>   src/core-impl/collections/ipodcollection/IpodMeta.cpp 9ffcf7e 
>   src/core-impl/collections/ipodcollection/IpodMeta.h 1d380b1 
>   src/core-impl/collections/db/sql/SqlMeta.cpp 19ec936 
>   src/core-impl/collections/db/sql/SqlMeta.h b7f0a71 
>   src/core-impl/collections/daap/DaapMeta.cpp e66afb7 
>   src/core-impl/collections/daap/DaapMeta.h 9a9c257 
>   src/core-impl/collections/audiocd/AudioCdMeta.cpp 218ce2a 
>   src/core-impl/collections/audiocd/AudioCdMeta.h fc26fcc 
>   src/services/ServiceMetaBase.cpp 7537649 
>   src/services/ampache/AmpacheMeta.h 934fe75 
>   src/services/ampache/AmpacheMeta.cpp b59715c 
>   src/services/lastfm/meta/LastFmMeta.h 9c54a10 
>   src/services/lastfm/meta/LastFmMeta.cpp 424d136 
>   tests/CMakeLists.txt d6b23ec 
>   tests/synchronization/CMakeLists.txt db73c25 
> 
> Diff: http://git.reviewboard.kde.org/r/109817/diff/
> 
> 
> Testing
> -------
> 
> Works as expected
> 
> 
> Thanks,
> 
> Anmol Ahuja
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/amarok-devel/attachments/20130419/32431e1b/attachment-0001.html>


More information about the Amarok-devel mailing list