void PlayerManager::play(const QString &file) { CollectionListItem *item = CollectionList::instance()->lookup(file); if(item) { Playlist::setPlaying(item); play(item->file()); } }
void TreeViewItemPlaylist::retag(const QStringList &files, Playlist *) { CollectionList *collection = CollectionList::instance(); if(files.isEmpty()) return; QString changedTag = i18n("artist"); if(m_columnType == PlaylistItem::GenreColumn) changedTag = i18n("genre"); else if(m_columnType == PlaylistItem::AlbumColumn) changedTag = i18n("album"); if(KMessageBox::warningContinueCancelList( this, i18n("You are about to change the %1 on these files.").arg(changedTag), files, i18n("Changing Track Tags"), KStdGuiItem::cont(), "dragDropRetagWarn" ) == KMessageBox::Cancel) { return; } QStringList::ConstIterator it; for(it = files.begin(); it != files.end(); ++it) { CollectionListItem *item = collection->lookup(*it); if(!item) continue; Tag *tag = TagTransactionManager::duplicateTag(item->file().tag()); switch(m_columnType) { case PlaylistItem::ArtistColumn: tag->setArtist(name()); break; case PlaylistItem::AlbumColumn: tag->setAlbum(name()); break; case PlaylistItem::GenreColumn: tag->setGenre(name()); break; default: kdDebug() << "Unhandled column type editing " << *it << endl; } TagTransactionManager::instance()->changeTagOnItem(item, tag); } }
void CollectionList::slotRefreshItems(const KFileItemList &items) { for(KFileItemListIterator it(items); it.current(); ++it) { CollectionListItem *item = lookup((*it)->url().path()); if(item) { item->refreshFromDisk(); // If the item is no longer on disk, remove it from the collection. if(item->file().fileInfo().exists()) item->repaint(); else delete item; } } update(); }
CollectionListItem *CollectionList::createItem(const FileHandle &file, Q3ListViewItem *, bool) { // It's probably possible to optimize the line below away, but, well, right // now it's more important to not load duplicate items. if(m_itemsDict.contains(file.absFilePath())) return 0; CollectionListItem *item = new CollectionListItem(this, file); if(!item->isValid()) { kError() << "CollectionList::createItem() -- A valid tag was not created for \"" << file.absFilePath() << "\"" << endl; delete item; return 0; } setupItem(item); return item; }