Changeset 148
- Timestamp:
- 10/25/08 00:38:06 (4 years ago)
- Location:
- gui
- Files:
-
- 4 edited
-
musiclibraryitem.cpp (modified) (1 diff)
-
musiclibraryitem.h (modified) (1 diff)
-
musiclibrarymodel.cpp (modified) (3 diffs)
-
musiclibrarymodel.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
gui/musiclibraryitem.cpp
r146 r148 24 24 { 25 25 childItems.append(item); 26 } 27 28 void MusicLibraryItem::removeAllChildrens() 29 { 30 while (!childItems.empty()) { 31 childItems.takeLast(); 32 } 33 } 34 35 /** 36 * Insert a new child item at a given place 37 * 38 * @param child The child item 39 * @param place The place to insert the child item 40 */ 41 void MusicLibraryItem::insertChild(MusicLibraryItem * const child, const int place) 42 { 43 childItems.insert(place, child); 26 44 } 27 45 -
gui/musiclibraryitem.h
r61 r148 18 18 19 19 void appendChild(MusicLibraryItem * const child); 20 void insertChild(MusicLibraryItem * const child, const int place); 21 void removeAllChildrens(); 20 22 21 23 MusicLibraryItem *child(int row) const; -
gui/musiclibrarymodel.cpp
r147 r148 305 305 return Qt::ItemIsDropEnabled; 306 306 } 307 #include <QDebug> 307 308 308 /** 309 309 * Convert the data at indexes into mimedata ready for transport … … 326 326 case MusicLibraryItem::Type_Artist: 327 327 for(int i = 0; i < item->childCount(); i++) { 328 for(int j = 0; j < item->child(i)->childCount(); j++) { 329 if (!filenames.contains(item->child(i)->child(j)->file())) 330 filenames << item->child(i)->child(j)->file(); 331 } 328 filenames << sortAlbumTracks(item->child(i)); 332 329 } 333 330 break; 334 331 case MusicLibraryItem::Type_Album: 335 for(int i = 0; i < item->childCount(); i++) { 336 if (!filenames.contains(item->child(i)->file())) 337 filenames << item->child(i)->file(); 338 } 332 filenames << sortAlbumTracks(item); 339 333 break; 340 334 case MusicLibraryItem::Type_Song: … … 349 343 } 350 344 351 for (int i = filenames.size() - 1; i >= 0; i--) 345 for (int i = filenames.size() - 1; i >= 0; i--) { 352 346 stream << filenames.at(i); 347 } 353 348 354 349 mimeData->setData("application/qtmpc_songs_filename_text", encodedData); 355 350 return mimeData; 356 351 } 352 353 /** 354 * Sort an album by its track numbers. All unnumberd tracks are added to the end 355 * 356 * @param album The album musiclibrary item 357 */ 358 QStringList MusicLibraryModel::sortAlbumTracks(const MusicLibraryItem *album) const 359 { 360 if (album->type() != MusicLibraryItem::Type_Album) { 361 return QStringList(); 362 } 363 364 MusicLibraryItem *orderdTracks = new MusicLibraryItem("Album", MusicLibraryItem::Type_Album); 365 QStringList unorderdTracks; 366 367 for(int i = 0; i < album->childCount(); i++) { 368 MusicLibraryItem *track = album->child(i); 369 if (track->track() == (quint32)0) { 370 unorderdTracks << track->file(); 371 } 372 373 bool insert = false; 374 for(int j = 0; j < orderdTracks->childCount(); j++) { 375 if (track->track() < orderdTracks->child(j)->track()) { 376 orderdTracks->insertChild(track, j); 377 insert = true; 378 break; 379 } 380 } 381 382 if (insert == false) { 383 orderdTracks->insertChild(track, orderdTracks->childCount()); 384 } 385 } 386 387 QStringList tracks; 388 for (int i = 0; i < orderdTracks->childCount(); i++) { 389 tracks << orderdTracks->child(i)->file(); 390 } 391 tracks << unorderdTracks; 392 393 orderdTracks->removeAllChildrens(); 394 delete orderdTracks; 395 return tracks; 396 } -
gui/musiclibrarymodel.h
r147 r148 38 38 MusicLibraryItem *rootItem; 39 39 QSettings settings; 40 QStringList sortAlbumTracks(const MusicLibraryItem *album) const; 40 41 }; 41 42
Note: See TracChangeset
for help on using the changeset viewer.
