diff options
author | fluffy <fluffy@FreeBSD.org> | 2010-01-12 08:26:08 +0800 |
---|---|---|
committer | fluffy <fluffy@FreeBSD.org> | 2010-01-12 08:26:08 +0800 |
commit | f3461c5f7877839ea6c641c361a23215ea244cf7 (patch) | |
tree | 24fd019e50cc40d6415b3f98414706c985e1e0f0 /audio | |
parent | 610b03c485a20184a6e4b717006f35b39f9f892d (diff) | |
download | freebsd-ports-gnome-f3461c5f7877839ea6c641c361a23215ea244cf7.tar.gz freebsd-ports-gnome-f3461c5f7877839ea6c641c361a23215ea244cf7.tar.zst freebsd-ports-gnome-f3461c5f7877839ea6c641c361a23215ea244cf7.zip |
- Update Amarok to 2.2.2 "Maya Gold" release!
Submitted by: Matt Tosto (maintainer via email)
Approved by: miwi, tabthorpe (mentors implicit)
Diffstat (limited to 'audio')
-rw-r--r-- | audio/amarok-kde4/Makefile | 3 | ||||
-rw-r--r-- | audio/amarok-kde4/distinfo | 6 | ||||
-rw-r--r-- | audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp | 375 | ||||
-rw-r--r-- | audio/amarok-kde4/pkg-message | 7 | ||||
-rw-r--r-- | audio/amarok-kde4/pkg-plist | 60 |
5 files changed, 432 insertions, 19 deletions
diff --git a/audio/amarok-kde4/Makefile b/audio/amarok-kde4/Makefile index 863d8317e11b..64cd780d565b 100644 --- a/audio/amarok-kde4/Makefile +++ b/audio/amarok-kde4/Makefile @@ -5,8 +5,7 @@ # $FreeBSD$ PORTNAME= amarok -PORTVERSION= 2.2.1 -PORTREVISION= 1 +PORTVERSION= 2.2.2 CATEGORIES= audio kde MASTER_SITES= ${MASTER_SITE_KDE} MASTER_SITE_SUBDIR= stable/${PORTNAME}/${PORTVERSION}/src diff --git a/audio/amarok-kde4/distinfo b/audio/amarok-kde4/distinfo index a0673bd295c2..8ec71fbaacfc 100644 --- a/audio/amarok-kde4/distinfo +++ b/audio/amarok-kde4/distinfo @@ -1,3 +1,3 @@ -MD5 (amarok-2.2.1.tar.bz2) = 4f6f45f0c25f85f2a2a1fff169ac7193 -SHA256 (amarok-2.2.1.tar.bz2) = f3dbb257d64cd0787701df90fabc09f908294063657571f7f856780addcc1a08 -SIZE (amarok-2.2.1.tar.bz2) = 8701156 +MD5 (amarok-2.2.2.tar.bz2) = c2c4ae2f2ff7154a064b554cdee557a9 +SHA256 (amarok-2.2.2.tar.bz2) = 768d308572897a3100f0d87999f1bb1c68b2e2fa3b0961fd0b918bcfd33ae64d +SIZE (amarok-2.2.2.tar.bz2) = 8788107 diff --git a/audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp b/audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp new file mode 100644 index 000000000000..c9e59c9055c5 --- /dev/null +++ b/audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp @@ -0,0 +1,375 @@ +--- src/collection/sqlcollection/ScanResultProcessor.cpp.orig ++++ src/collection/sqlcollection/ScanResultProcessor.cpp +@@ -42,19 +42,59 @@ ScanResultProcessor::ScanResultProcessor( SqlCollection *collection ) + ScanResultProcessor::~ScanResultProcessor() + { + //everything has a URL, so enough to just delete from here ++ QSet<QStringList*> currSet; //prevent double deletes + foreach( QStringList *list, m_urlsHashByUid ) +- delete list; ++ { ++ if( list ) ++ { ++ if( !currSet.contains( list ) ) ++ { ++ delete list; ++ currSet.insert( list ); ++ } ++ } ++ else ++ debug() << "GAAH! Tried to double-delete a value in m_urlsHashByUid"; ++ } + foreach( QLinkedList<QStringList*> *list, m_albumsHashByName ) + { +- foreach( QStringList *slist, *list ) +- delete slist; +- delete list; ++ if( list ) ++ { ++ foreach( QStringList *slist, *list ) ++ { ++ if( slist ) ++ { ++ if( !currSet.contains( slist ) ) ++ { ++ delete slist; ++ currSet.insert( slist ); ++ } ++ else ++ debug() << "GAAH! Tried to double-delete a value in m_albumsHashByName"; ++ } ++ } ++ delete list; ++ } + } + foreach( QLinkedList<QStringList*> *list, m_tracksHashByAlbum ) + { +- foreach( QStringList *slist, *list ) +- delete slist; +- delete list; ++ if( list ) ++ { ++ foreach( QStringList *slist, *list ) ++ { ++ if( slist ) ++ { ++ if( !currSet.contains( slist ) ) ++ { ++ delete slist; ++ currSet.insert( slist ); ++ } ++ else ++ debug() << "GAAH! Tried to double-delete a value in m_tracksHashByAlbum"; ++ } ++ } ++ delete list; ++ } + } + } + +@@ -67,11 +107,11 @@ ScanResultProcessor::setScanType( ScanType type ) + void + ScanResultProcessor::addDirectory( const QString &dir, uint mtime ) + { +- DEBUG_BLOCK +- debug() << "SRP::addDirectory on " << dir << " with mtime " << mtime; ++ //DEBUG_BLOCK ++ //debug() << "SRP::addDirectory on " << dir << " with mtime " << mtime; + if( dir.isEmpty() ) + { +- debug() << "got directory with no path from the scanner, not adding"; ++ //debug() << "got directory with no path from the scanner, not adding"; + return; + } + setupDatabase(); +@@ -254,7 +294,7 @@ ScanResultProcessor::rollback() + void + ScanResultProcessor::processDirectory( const QList<QVariantMap > &data ) + { +-// DEBUG_BLOCK ++ //DEBUG_BLOCK + setupDatabase(); + //using the following heuristics: + //if more than one album is in the dir, use the artist of each track as albumartist +@@ -274,24 +314,54 @@ ScanResultProcessor::processDirectory( const QList<QVariantMap > &data ) + if( row.value( Field::ALBUM ).toString() != album ) + multipleAlbums = true; + } ++ + if( multipleAlbums || album.isEmpty() || artists.size() == 1 ) + { + foreach( const QVariantMap &row, data ) + { +- int artist = genericId( &m_artists, row.value( Field::ARTIST ).toString(), &m_nextArtistNum ); +- addTrack( row, artist ); ++ QString uid = row.value( Field::UNIQUEID ).toString(); ++ if( m_uidsSeenThisScan.contains( uid ) ) ++ { ++ QString originalLocation = ( ( m_urlsHashByUid.contains( uid ) && ++ m_urlsHashByUid[uid] != 0 ) ? ++ MountPointManager::instance()->getAbsolutePath( m_urlsHashByUid[uid]->at( 1 ).toInt(), m_urlsHashByUid[uid]->at( 2 ) ) : "(unknown)" ); ++ debug() << "Skipping file with uniqueid " << uid << " as it was already seen this scan," << ++ "file is at " << row.value( Field::URL ).toString() << ", original file is at " << originalLocation; ++ } ++ else ++ { ++ int artist = genericId( &m_artists, row.value( Field::ARTIST ).toString(), &m_nextArtistNum ); ++ //debug() << "artist found = " << artist; ++ addTrack( row, artist ); ++ m_uidsSeenThisScan.insert( uid ); ++ } + } + } + else + { + QString albumArtist = findAlbumArtist( artists, data.count() ); ++ //debug() << "albumArtist found = " << albumArtist; + //an empty string means that no albumartist was found + int artist = albumArtist.isEmpty() ? 0 : genericId( &m_artists, albumArtist, &m_nextArtistNum ); ++ //debug() << "artist found = " << artist; + + //debug() << "albumartist " << albumArtist << "for artists" << artists; + foreach( const QVariantMap &row, data ) + { +- addTrack( row, artist ); ++ QString uid = row.value( Field::UNIQUEID ).toString(); ++ if( m_uidsSeenThisScan.contains( uid ) ) ++ { ++ QString originalLocation = ( ( m_urlsHashByUid.contains( uid ) && ++ m_urlsHashByUid[uid] != 0 ) ? ++ MountPointManager::instance()->getAbsolutePath( m_urlsHashByUid[uid]->at( 1 ).toInt(), m_urlsHashByUid[uid]->at( 2 ) ) : "(unknown)" ); ++ debug() << "Skipping file with uniqueid " << uid << " as it was already seen this scan," << ++ "file is at " << row.value( Field::URL ).toString() << ", original file is at " << originalLocation; ++ } ++ else ++ { ++ addTrack( row, artist ); ++ m_uidsSeenThisScan.insert( uid ); ++ } + } + } + } +@@ -299,6 +369,7 @@ ScanResultProcessor::processDirectory( const QList<QVariantMap > &data ) + QString + ScanResultProcessor::findAlbumArtist( const QSet<QString> &artists, int trackCount ) const + { ++ //DEBUG_BLOCK + QMap<QString, int> artistCount; + bool featuring; + QStringList trackArtists; +@@ -371,6 +442,7 @@ void + ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId ) + { + //DEBUG_BLOCK ++ //debug() << "albumArtistId = " << albumArtistId; + //amarok 1 stored all tracks of a compilation in different directories. + //when using its "Organize Collection" feature + //try to detect these cases +@@ -419,7 +491,15 @@ ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId ) + + //urlId will take care of the urls table part of AFT + int url = urlId( path, uid ); +- ++/* ++ foreach( QString key, m_urlsHashByUid.keys() ) ++ debug() << "Key: " << key << ", list: " << *m_urlsHashByUid[key]; ++ foreach( int key, m_urlsHashById.keys() ) ++ debug() << "Key: " << key << ", list: " << *m_urlsHashById[key]; ++ typedef QPair<int, QString> blahType; //QFOREACH is stupid when it comes to QPairs ++ foreach( blahType key, m_urlsHashByLocation.keys() ) ++ debug() << "Key: " << key << ", list: " << *m_urlsHashByLocation[key]; ++*/ + QStringList *trackList = new QStringList(); + int id = m_nextTrackNum; + //debug() << "Appending new track number with tracknum: " << id; +@@ -470,7 +550,7 @@ ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId ) + //insert into hashes + if( m_tracksHashByUrl.contains( url ) && m_tracksHashByUrl[url] != 0 ) + { +- //debug() << "m_tracksHashByUrl contains the url!"; ++ //debug() << "m_tracksHashByUrl already contains url " << url; + //need to replace, not overwrite/add a new one + QStringList *oldValues = m_tracksHashByUrl[url]; + QString oldId = oldValues->at( 0 ); +@@ -490,8 +570,24 @@ ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId ) + m_tracksHashById.insert( id, trackList ); + } + ++ //debug() << "album = " << album; ++ + if( m_tracksHashByAlbum.contains( album ) && m_tracksHashByAlbum[album] != 0 ) +- m_tracksHashByAlbum[album]->append( trackList ); ++ { ++ //contains isn't the fastest on linked lists, but in reality this is on the order of maybe ++ //ten quick pointer comparisons per track on average...probably lower ++ //debug() << "trackList is " << trackList; ++ if( !m_tracksHashByAlbum[album]->contains( trackList ) ) ++ { ++ //debug() << "appending trackList to m_tracksHashByAlbum"; ++ m_tracksHashByAlbum[album]->append( trackList ); ++ } ++ else ++ { ++ //debug() << "not appending trackList to m_tracksHashByAlbum"; ++ } ++ ++ } + else + { + QLinkedList<QStringList*> *list = new QLinkedList<QStringList*>(); +@@ -595,6 +691,8 @@ ScanResultProcessor::albumId( const QString &album, int albumArtistId ) + QLinkedList<QStringList*> *list = m_albumsHashByName[album]; + foreach( QStringList *slist, *list ) + { ++ //debug() << "albumArtistId = " << albumArtistId; ++ //debug() << "Checking list: " << *slist; + if( slist->at( 2 ).isEmpty() && albumArtistId == 0 ) + { + //debug() << "artist is empty and albumArtistId = 0, returning " << slist->at( 0 ); +@@ -631,7 +729,10 @@ ScanResultProcessor::albumInsert( const QString &album, int albumArtistId ) + albumList->append( QString() ); + m_albumsHashById[returnedNum] = albumList; + if( m_albumsHashByName.contains( album ) && m_albumsHashByName[album] != 0 ) +- m_albumsHashByName[album]->append( albumList ); ++ { ++ if( !m_albumsHashByName[album]->contains( albumList ) ) ++ m_albumsHashByName[album]->append( albumList ); ++ } + else + { + QLinkedList<QStringList*> *list = new QLinkedList<QStringList*>(); +@@ -645,7 +746,7 @@ ScanResultProcessor::albumInsert( const QString &album, int albumArtistId ) + int + ScanResultProcessor::urlId( const QString &url, const QString &uid ) + { +- /* ++/* + DEBUG_BLOCK + foreach( QString key, m_urlsHashByUid.keys() ) + debug() << "Key: " << key << ", list: " << *m_urlsHashByUid[key]; +@@ -654,8 +755,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid ) + typedef QPair<int, QString> blahType; //QFOREACH is stupid when it comes to QPairs + foreach( blahType key, m_urlsHashByLocation.keys() ) + debug() << "Key: " << key << ", list: " << *m_urlsHashByLocation[key]; +- */ +- ++*/ + QFileInfo fileInfo( url ); + const QString dir = fileInfo.absoluteDir().absolutePath(); + int dirId = directoryId( dir ); +@@ -665,6 +765,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid ) + QPair<int, QString> locationPair( deviceId, rpath ); + //debug() << "in urlId with url = " << url << " and uid = " << uid; + //debug() << "checking locationPair " << locationPair; ++/* + if( m_urlsHashByLocation.contains( locationPair ) ) + { + QStringList values; +@@ -674,6 +775,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid ) + values << "zero"; + //debug() << "m_urlsHashByLocation contains it! It is " << values; + } ++*/ + QStringList currUrlIdValues; + if( m_urlsHashByUid.contains( uid ) && m_urlsHashByUid[uid] != 0 ) + currUrlIdValues = *m_urlsHashByUid[uid]; +@@ -717,6 +819,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid ) + //debug() << "m_urlsHashByUid contains this UID, updating deviceId and path"; + QStringList *list = m_urlsHashByUid[uid]; + //debug() << "list from UID hash is " << list << " with values " << *list; ++ QPair<int, QString> oldLocationPair( list->at( 1 ).toInt(), list->at( 2 ) ); + list->replace( 1, QString::number( deviceId ) ); + list->replace( 2, rpath ); + list->replace( 3, QString::number( dirId ) ); +@@ -737,6 +840,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid ) + delete oldList; + } + m_urlsHashByLocation[locationPair] = list; ++ m_urlsHashByLocation.remove( oldLocationPair ); + } + m_permanentTablesUrlUpdates.insert( uid, url ); + m_changedUrls.insert( uid, QPair<QString, QString>( MountPointManager::instance()->getAbsolutePath( currUrlIdValues[1].toInt(), currUrlIdValues[2] ), url ) ); +@@ -751,6 +855,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid ) + { + QStringList *list = m_urlsHashByLocation[locationPair]; + //debug() << "Replacing hash " << list->at( 4 ) << " with " << uid; ++ QString oldId = list->at( 4 ); + list->replace( 4, uid ); + if( m_urlsHashByUid.contains( uid ) + && m_urlsHashByUid[uid] != 0 +@@ -762,6 +867,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid ) + delete oldList; + } + m_urlsHashByUid[uid] = list; ++ m_urlsHashByUid.remove( oldId ); + } + m_permanentTablesUidUpdates.insert( url, uid ); + m_changedUids.insert( currUrlIdValues[4], uid ); +@@ -855,7 +961,8 @@ ScanResultProcessor::directoryId( const QString &dir ) + int + ScanResultProcessor::checkExistingAlbums( const QString &album ) + { +-// DEBUG_BLOCK ++ //DEBUG_BLOCK ++ //debug() << "looking for album " << album; + // "Unknown" albums shouldn't be handled as compilations + if( album.isEmpty() ) + return 0; +@@ -865,7 +972,10 @@ ScanResultProcessor::checkExistingAlbums( const QString &album ) + //it's probably a compilation. + //this handles A1 compilations that were automatically organized by Amarok + if( !m_albumsHashByName.contains( album ) || m_albumsHashByName[album] == 0 ) ++ { ++ //debug() << "hashByName doesn't contain album, or it's zero"; + return 0; ++ } + + QStringList trackIds; + QLinkedList<QStringList*> *llist = m_albumsHashByName[album]; +@@ -915,8 +1025,10 @@ ScanResultProcessor::checkExistingAlbums( const QString &album ) + } + } + ++ //debug() << "trackIds = " << trackIds; + if( trackIds.isEmpty() ) + { ++ //debug() << "trackIds empty, returning zero"; + return 0; + } + else +@@ -933,6 +1045,7 @@ ScanResultProcessor::checkExistingAlbums( const QString &album ) + list->replace( 3, compilationString ); + } + } ++ //debug() << "returning " << compilationId; + return compilationId; + } + } +@@ -1167,6 +1280,17 @@ ScanResultProcessor::copyHashesToTempTables() + foreach( blahType key, m_urlsHashByLocation.keys() ) + debug() << "Key: " << key << ", list: " << *m_urlsHashByLocation[key]; + debug() << "Next album num: " << m_nextAlbumNum; ++ ++ foreach( int key, m_tracksHashById.keys() ) ++ debug() << "Key: " << key << ", list: " << *m_tracksHashById[key]; ++ foreach( int key, m_tracksHashByUrl.keys() ) ++ debug() << "Key: " << key << ", list: " << *m_tracksHashByUrl[key]; ++ foreach( int key, m_tracksHashByAlbum.keys() ) ++ { ++ debug() << "Key: " << key; ++ foreach( QStringList* item, *m_tracksHashByAlbum[key] ) ++ debug() << "list: " << item << " is " << *item; ++ } + */ + + DEBUG_BLOCK +--- src/collection/sqlcollection/ScanResultProcessor.h.orig ++++ src/collection/sqlcollection/ScanResultProcessor.h +@@ -94,6 +94,7 @@ class ScanResultProcessor : public QObject + QMap<QString, int> m_directories; + QMap<QString, QList< QPair< QString, QString > > > m_imageMap; + ++ QSet<QString> m_uidsSeenThisScan; + QHash<QString, uint> m_filesInDirs; + + TrackUrls m_changedUids; //not really track urls diff --git a/audio/amarok-kde4/pkg-message b/audio/amarok-kde4/pkg-message index 2e730e55b59c..a2c018ee8364 100644 --- a/audio/amarok-kde4/pkg-message +++ b/audio/amarok-kde4/pkg-message @@ -8,7 +8,6 @@ this up on FreeBSD here: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html If you are not running a KDE4 desktop, you should consider installing the -x11/kdebase4-runtime and multimedia/phonon ports along with Amarok. You will -also need to pick a Phonon backend port (multimedia/phonon-xine or -multimedia/phonon-gstreamer). It has been reported that icons and audio will -not work properly without these additional ports. +x11-themes/kde4-icons-oxygen and multimedia/phonon-xine ports along with Amarok. +It has been reported that icons and audio will not work properly without +these additional ports. diff --git a/audio/amarok-kde4/pkg-plist b/audio/amarok-kde4/pkg-plist index e273b1045c06..62cc74ec0027 100644 --- a/audio/amarok-kde4/pkg-plist +++ b/audio/amarok-kde4/pkg-plist @@ -72,6 +72,7 @@ share/apps/amarok/icons/hicolor/16x16/actions/amarok_playlist_clear.png share/apps/amarok/icons/hicolor/16x16/actions/amarok_playlist_refresh.png share/apps/amarok/icons/hicolor/16x16/actions/amarok_scripts.png share/apps/amarok/icons/hicolor/16x16/actions/amarok_track.png +share/apps/amarok/icons/hicolor/16x16/actions/clear-playlist-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/collection-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/collection-refresh-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/collection-rescan-amarok.png @@ -83,6 +84,7 @@ share/apps/amarok/icons/hicolor/16x16/actions/emblem-favorite-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/favorite-genres-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/filename-album-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/filename-artist-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/filename-bpm-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/filename-comment-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/filename-composer-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/filename-dash-amarok.png @@ -113,6 +115,13 @@ share/apps/amarok/icons/hicolor/16x16/actions/media-album-shuffle-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/media-playlist-repeat-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/media-playlist-repeat-off-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/media-playlist-shuffle-off-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/media-random-albums-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/media-random-tracks-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/media-repeat-album-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/media-repeat-playlist-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/media-repeat-track-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/media-show-active-track-amarok.png +share/apps/amarok/icons/hicolor/16x16/actions/media-standard-track-progression-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/media-track-add-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/media-track-edit-amarok.png share/apps/amarok/icons/hicolor/16x16/actions/media-track-queue-amarok.png @@ -146,6 +155,7 @@ share/apps/amarok/icons/hicolor/22x22/actions/amarok_playlist_clear.png share/apps/amarok/icons/hicolor/22x22/actions/amarok_playlist_refresh.png share/apps/amarok/icons/hicolor/22x22/actions/amarok_scripts.png share/apps/amarok/icons/hicolor/22x22/actions/amarok_track.png +share/apps/amarok/icons/hicolor/22x22/actions/clear-playlist-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/collection-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/collection-refresh-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/collection-rescan-amarok.png @@ -154,14 +164,23 @@ share/apps/amarok/icons/hicolor/22x22/actions/dynamic-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/edit-redo-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/edit-undo-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/emblem-favorite-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/filename-bpm-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/internet-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/love-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-album-cover-manager-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-album-repeat-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-album-shuffle-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-clear-playlist-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-playlist-repeat-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-playlist-repeat-off-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-playlist-shuffle-off-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-random-albums-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-random-tracks-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-repeat-album-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-repeat-playlist-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-repeat-track-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-show-active-track-amarok.png +share/apps/amarok/icons/hicolor/22x22/actions/media-standard-track-progression-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-track-add-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-track-edit-amarok.png share/apps/amarok/icons/hicolor/22x22/actions/media-track-queue-amarok.png @@ -195,6 +214,7 @@ share/apps/amarok/icons/hicolor/32x32/actions/amarok_playlist_refresh.png share/apps/amarok/icons/hicolor/32x32/actions/amarok_scripts.png share/apps/amarok/icons/hicolor/32x32/actions/amarok_track.png share/apps/amarok/icons/hicolor/32x32/actions/audioscrobbler.png +share/apps/amarok/icons/hicolor/32x32/actions/clear-playlist-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/collection-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/collection-refresh-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/collection-rescan-amarok.png @@ -203,15 +223,24 @@ share/apps/amarok/icons/hicolor/32x32/actions/dynamic-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/edit-redo-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/edit-undo-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/emblem-favorite-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/filename-bpm-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/love-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-album-cover-manager-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-album-cover.png share/apps/amarok/icons/hicolor/32x32/actions/media-album-repeat-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-album-shuffle-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-album-track.png +share/apps/amarok/icons/hicolor/32x32/actions/media-clear-playlist-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-playlist-repeat-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-playlist-repeat-off-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-playlist-shuffle-off-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/media-random-albums-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/media-random-tracks-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/media-repeat-album-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/media-repeat-playlist-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/media-repeat-track-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/media-show-active-track-amarok.png +share/apps/amarok/icons/hicolor/32x32/actions/media-standard-track-progression-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-track-add-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-track-edit-amarok.png share/apps/amarok/icons/hicolor/32x32/actions/media-track-queue-amarok.png @@ -244,9 +273,11 @@ share/apps/amarok/icons/hicolor/48x48/actions/amarok_playlist_clear.png share/apps/amarok/icons/hicolor/48x48/actions/amarok_playlist_refresh.png share/apps/amarok/icons/hicolor/48x48/actions/amarok_scripts.png share/apps/amarok/icons/hicolor/48x48/actions/amarok_track.png +share/apps/amarok/icons/hicolor/48x48/actions/clear-playlist-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/collection-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/collection-refresh-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/collection-rescan-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/current-track-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/download-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/dynamic-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/edit-redo-amarok.png @@ -254,6 +285,7 @@ share/apps/amarok/icons/hicolor/48x48/actions/edit-undo-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/emblem-favorite-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-album-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-artist-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/filename-bpm-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-comment-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-composer-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-dash-amarok.png @@ -267,6 +299,7 @@ share/apps/amarok/icons/hicolor/48x48/actions/filename-group-tracks.png share/apps/amarok/icons/hicolor/48x48/actions/filename-ignore-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-initial-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-last-played.png +share/apps/amarok/icons/hicolor/48x48/actions/filename-moodbar.png share/apps/amarok/icons/hicolor/48x48/actions/filename-sample-rate.png share/apps/amarok/icons/hicolor/48x48/actions/filename-slash-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-space-amarok.png @@ -274,25 +307,36 @@ share/apps/amarok/icons/hicolor/48x48/actions/filename-title-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-track-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-underscore-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/filename-year-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/info-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/love-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-album-cover-manager-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-album-repeat-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-album-shuffle-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-clear-playlist-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-playlist-repeat-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-playlist-repeat-off-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-playlist-shuffle-off-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-random-albums-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-random-tracks-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-repeat-album-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-repeat-playlist-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-repeat-track-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-show-active-track-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/media-standard-track-progression-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-track-add-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-track-edit-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-track-queue-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-track-remove-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/media-track-repeat-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/music-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/photos-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/podcast-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/preferences-indicator-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/preferences-media-playback-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/preferences-multimedia-player-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/preferences-view-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/remove-amarok.png +share/apps/amarok/icons/hicolor/48x48/actions/videoclip-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/view-media-visualization-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/view-services-ampache-amarok.png share/apps/amarok/icons/hicolor/48x48/actions/view-services-jamendo-amarok.png @@ -460,6 +504,9 @@ share/locale/ca/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/ca/LC_MESSAGES/amarokcollectionscanner_qt.mo share/locale/ca/LC_MESSAGES/amarokpkg.mo share/locale/cs/LC_MESSAGES/amarok.mo +share/locale/cs/LC_MESSAGES/amarok_scriptengine_qscript.mo +share/locale/cs/LC_MESSAGES/amarokcollectionscanner_qt.mo +share/locale/cs/LC_MESSAGES/amarokpkg.mo share/locale/da/LC_MESSAGES/amarok.mo share/locale/da/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/da/LC_MESSAGES/amarokcollectionscanner_qt.mo @@ -468,6 +515,7 @@ share/locale/de/LC_MESSAGES/amarok.mo share/locale/de/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/de/LC_MESSAGES/amarokcollectionscanner_qt.mo share/locale/de/LC_MESSAGES/amarokpkg.mo +share/locale/el/LC_MESSAGES/amarok.mo share/locale/en_GB/LC_MESSAGES/amarok.mo share/locale/en_GB/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/en_GB/LC_MESSAGES/amarokcollectionscanner_qt.mo @@ -480,7 +528,6 @@ share/locale/et/LC_MESSAGES/amarok.mo share/locale/et/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/et/LC_MESSAGES/amarokcollectionscanner_qt.mo share/locale/et/LC_MESSAGES/amarokpkg.mo -share/locale/eu/LC_MESSAGES/amarok.mo share/locale/fi/LC_MESSAGES/amarok.mo share/locale/fr/LC_MESSAGES/amarok.mo share/locale/fr/LC_MESSAGES/amarok_scriptengine_qscript.mo @@ -498,10 +545,6 @@ share/locale/km/LC_MESSAGES/amarok.mo share/locale/km/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/km/LC_MESSAGES/amarokcollectionscanner_qt.mo share/locale/km/LC_MESSAGES/amarokpkg.mo -share/locale/lt/LC_MESSAGES/amarok.mo -share/locale/lt/LC_MESSAGES/amarok_scriptengine_qscript.mo -share/locale/lt/LC_MESSAGES/amarokcollectionscanner_qt.mo -share/locale/lt/LC_MESSAGES/amarokpkg.mo share/locale/lv/LC_MESSAGES/amarok.mo share/locale/lv/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/lv/LC_MESSAGES/amarokcollectionscanner_qt.mo @@ -533,13 +576,14 @@ share/locale/pt_BR/LC_MESSAGES/amarok.mo share/locale/pt_BR/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/pt_BR/LC_MESSAGES/amarokcollectionscanner_qt.mo share/locale/pt_BR/LC_MESSAGES/amarokpkg.mo -share/locale/ro/LC_MESSAGES/amarok.mo share/locale/ru/LC_MESSAGES/amarok.mo share/locale/ru/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/ru/LC_MESSAGES/amarokcollectionscanner_qt.mo share/locale/ru/LC_MESSAGES/amarokpkg.mo share/locale/sl/LC_MESSAGES/amarok.mo +share/locale/sl/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/sl/LC_MESSAGES/amarokcollectionscanner_qt.mo +share/locale/sl/LC_MESSAGES/amarokpkg.mo share/locale/sr/LC_MESSAGES/amarok.mo share/locale/sr/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/sr/LC_MESSAGES/amarokcollectionscanner_qt.mo @@ -563,10 +607,6 @@ share/locale/zh_CN/LC_MESSAGES/amarok.mo share/locale/zh_CN/LC_MESSAGES/amarok_scriptengine_qscript.mo share/locale/zh_CN/LC_MESSAGES/amarokcollectionscanner_qt.mo share/locale/zh_CN/LC_MESSAGES/amarokpkg.mo -share/locale/zh_TW/LC_MESSAGES/amarok.mo -share/locale/zh_TW/LC_MESSAGES/amarok_scriptengine_qscript.mo -share/locale/zh_TW/LC_MESSAGES/amarokcollectionscanner_qt.mo -share/locale/zh_TW/LC_MESSAGES/amarokpkg.mo @dirrmtry share/locale/x-test/LC_MESSAGES @dirrmtry share/locale/x-test @dirrmtry share/locale/wa/LC_MESSAGES |