[Kpod-devel] ipodslave/src/libqtpod itunesdb.cpp,1.16,1.17
Status: Beta
Brought to you by:
fry26
From: Michael S. <fr...@us...> - 2006-02-26 16:54:32
|
Update of /cvsroot/kpod/ipodslave/src/libqtpod In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2620/src/libqtpod Modified Files: itunesdb.cpp Log Message: getAllAlbums() added + some cleanups Index: itunesdb.cpp =================================================================== RCS file: /cvsroot/kpod/ipodslave/src/libqtpod/itunesdb.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** itunesdb.cpp 24 Feb 2006 20:34:33 -0000 1.16 --- itunesdb.cpp 26 Feb 2006 16:54:29 -0000 1.17 *************** *** 569,576 **** * @param title the title of the track */ ! class TrackByFullNameFinder { public: TrackByFullNameFinder( const QString& artist, const QString& album, const QString& title ) : _artist_( artist ), _album_( album ), _title_( title ) {} bool operator () (const itunesdb::Track * track) { return _artist_.compare( track->getArtist() ) == 0 && --- 569,577 ---- * @param title the title of the track */ ! class TrackByFullNameFinder : public TrackPredicate { public: TrackByFullNameFinder( const QString& artist, const QString& album, const QString& title ) : _artist_( artist ), _album_( album ), _title_( title ) {} + virtual ~TrackByFullNameFinder() {} bool operator () (const itunesdb::Track * track) { return _artist_.compare( track->getArtist() ) == 0 && *************** *** 585,594 **** itunesdb::Track * ITunesDB::findTrack(const QString& artistname, const QString& albumname, const QString& title) const { TrackByFullNameFinder trackByFullNameFinder( artistname, albumname, title ); ! FilteredIterator<TrackMap::const_iterator, TrackByFullNameFinder> filteredIter( trackmap.begin(), trackmap.end(), trackByFullNameFinder ); ! if ( filteredIter.hasNext() ) { ! return *filteredIter.next(); ! } else { ! return NULL; ! } } --- 586,590 ---- itunesdb::Track * ITunesDB::findTrack(const QString& artistname, const QString& albumname, const QString& title) const { TrackByFullNameFinder trackByFullNameFinder( artistname, albumname, title ); ! return findFirstTrackBy( trackByFullNameFinder ); } *************** *** 607,610 **** --- 603,617 ---- } + QStringList * ITunesDB::getAllAlbums( QStringList& buffer ) const { + TrackMap::const_iterator trackIter = trackmap.begin(); + for ( ; trackIter != trackmap.end(); ++trackIter ) { + const QString& album = ( *trackIter )->getAlbum(); + if ( !buffer.contains( album ) ) { + buffer.append( album ); + } + } + return &buffer; + } + /*! \fn ITunesDB::getAlbumsByArtist( QStringList &buffer) *************** *** 702,707 **** virtual ~AlbumFinder() {} bool operator () (const itunesdb::Track * track) { ! return _artist_.compare( track->getArtist() ) == 0 && ! _album_.compare( track->getAlbum() ) == 0; } private: --- 709,717 ---- virtual ~AlbumFinder() {} bool operator () (const itunesdb::Track * track) { ! bool result = true; ! if ( !_artist_.isEmpty() ) { ! result = _artist_.compare( track->getArtist() ) == 0; ! } ! return result && _album_.compare( track->getAlbum() ) == 0; } private: *************** *** 867,876 **** - /*************************************************************************** - * - * private/protected methods - * - ***************************************************************************/ - /*! \fn ITunesDB::isChanged() --- 877,880 ---- *************** *** 881,884 **** --- 885,894 ---- + /*************************************************************************** + * + * private/protected methods + * + ***************************************************************************/ + void ITunesDB::removeFromAllPlaylists( Q_UINT32 trackid ) { for ( itunesdb::Playlist * playlist = playlists->first(); playlist; playlist = playlists->next() ) { |