[Kpod-devel] ipodslave/src/libqtpod itunesdb.h,1.10,1.11 itunesdb.cpp,1.12,1.13
Status: Beta
Brought to you by:
fry26
From: Michael S. <fr...@us...> - 2006-02-24 19:16:38
|
Update of /cvsroot/kpod/ipodslave/src/libqtpod In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11270/src/libqtpod Modified Files: itunesdb.h itunesdb.cpp Log Message: store track as ITunesDB own Track implementtaion to keep track of changes Index: itunesdb.h =================================================================== RCS file: /cvsroot/kpod/ipodslave/src/libqtpod/itunesdb.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** itunesdb.h 21 Feb 2006 21:19:50 -0000 1.10 --- itunesdb.h 24 Feb 2006 19:16:34 -0000 1.11 *************** *** 26,31 **** #include <qstringlist.h> - #include "ItunesDBListener.h" - #include "itunesdbdatasource.h" #include "playlist.h" #include "playlistitem.h" --- 26,29 ---- *************** *** 55,58 **** --- 53,57 ---- class ItunesDBReaderAdapter; // Adapter class for reading the itunesdb file class ItunesDBWriterAdapter; // Adapter class for writing the itunesdb file + class ITunesDBTrack; // internal representation of a track typedef QMap<Q_UINT32,itunesdb::Track *> TrackMap; *************** *** 251,255 **** Q_UINT64 maxTrackDBID; ! void insertTrackToDataBase(itunesdb::Track& track); private: --- 250,254 ---- Q_UINT64 maxTrackDBID; ! itunesdb::Track * insertTrackToDataBase(const itunesdb::Track& track); private: Index: itunesdb.cpp =================================================================== RCS file: /cvsroot/kpod/ipodslave/src/libqtpod/itunesdb.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** itunesdb.cpp 21 Feb 2006 21:19:50 -0000 1.12 --- itunesdb.cpp 24 Feb 2006 19:16:34 -0000 1.13 *************** *** 26,29 **** --- 26,32 ---- #include "containerutils.h" + #include "ItunesDBListener.h" + #include "itunesdbdatasource.h" + #include <qfile.h> #include <qdir.h> *************** *** 41,44 **** --- 44,63 ---- }; + class ITunesDB::ITunesDBTrack : public itunesdb::Track { + ITunesDB& m_itunesdb; + public: + ITunesDBTrack(ITunesDB& itunesdb, const itunesdb::Track& track) + : itunesdb::Track( track ), m_itunesdb( itunesdb ) {} + virtual ~ITunesDBTrack() {} + + protected: + void setDirty( bool dirtyFlag = true ) { + itunesdb::Track::setDirty( dirtyFlag ); + if ( dirtyFlag ) { + m_itunesdb.setDirty(); + } + } + }; + TrackPtrList::TrackPtrList() : QPtrList<itunesdb::Track> () { setAutoDelete( false ); *************** *** 132,136 **** void handleTrack(const Track& track ) { ! m_itunesdb.insertTrackToDataBase( *( new itunesdb::Track( track ) ) ); } --- 151,155 ---- void handleTrack(const Track& track ) { ! m_itunesdb.insertTrackToDataBase( track ); } *************** *** 481,487 **** return; } ! itunesdb::Track * newtrack = new itunesdb::Track( track ); ! ! insertTrackToDataBase( *newtrack); TrackPtrList album; --- 500,504 ---- return; } ! itunesdb::Track * newtrack = insertTrackToDataBase( track ); TrackPtrList album; *************** *** 871,891 **** \fn ITunesDB::insertTrackToDataBase() */ ! void ITunesDB::insertTrackToDataBase(itunesdb::Track& track) ! { ! if ( track.getDBID() == 0 ) { ! track.setDBID( maxTrackDBID + 2); } ! if ( maxtrackid < track.getID() ) { ! maxtrackid = track.getID(); } ! if ( maxTrackDBID < track.getDBID() ) { ! maxTrackDBID = track.getDBID(); } ! mainlist.addPlaylistItem( track.getID() ); ! trackmap.insert(track.getID(), &track); } --- 888,920 ---- \fn ITunesDB::insertTrackToDataBase() */ ! itunesdb::Track * ITunesDB::insertTrackToDataBase( const itunesdb::Track& trackData ) { ! ITunesDBTrack * track = new ITunesDBTrack( *this, trackData ); ! ! if ( track->getDBID() == 0 ) { ! track->setDBID( maxTrackDBID + 2); } ! if ( maxtrackid < track->getID() ) { ! maxtrackid = track->getID(); } ! if ( maxTrackDBID < track->getDBID() ) { ! maxTrackDBID = track->getDBID(); } ! // some checks ! if( track->getArtist().isEmpty() ) { ! track->setArtist( "_no_artist_" ); ! } ! if( track->getAlbum().isEmpty() ) { ! track->setAlbum( "_no_album_" ); ! } ! if( track->getTitle().isEmpty() ) { ! track->setTitle( "_no_title_" ); ! } ! mainlist.addPlaylistItem( track->getID() ); ! ! trackmap.insert(track->getID(), track); } |