void FileView::contextMenuEvent( QContextMenuEvent *e ) { if( !model() ) return; //trying to do fancy stuff while showing places only leads to tears! if( model()->objectName() == "PLACESMODEL" ) { e->accept(); return; } QModelIndexList indices = selectedIndexes(); // Abort if nothing is selected if( indices.isEmpty() ) return; KMenu menu; foreach( QAction *action, actionsForIndices( indices, PlaylistAction ) ) menu.addAction( action ); menu.addSeparator(); // Create Copy/Move to menu items // ported from old filebrowser QList<Collections::Collection*> writableCollections; QHash<Collections::Collection*, CollectionManager::CollectionStatus> hash = CollectionManager::instance()->collections(); QHash<Collections::Collection*, CollectionManager::CollectionStatus>::const_iterator it = hash.constBegin(); while( it != hash.constEnd() ) { Collections::Collection *coll = it.key(); if( coll && coll->isWritable() ) writableCollections.append( coll ); ++it; } if( !writableCollections.isEmpty() ) { QMenu *copyMenu = new QMenu( i18n( "Copy to Collection" ), &menu ); copyMenu->setIcon( KIcon( "edit-copy" ) ); foreach( Collections::Collection *coll, writableCollections ) { CollectionAction *copyAction = new CollectionAction( coll, &menu ); connect( copyAction, SIGNAL(triggered()), this, SLOT(slotPrepareCopyTracks()) ); copyMenu->addAction( copyAction ); }
foreach( Collections::Collection *coll, writableCollections ) { CollectionAction *copyAction = new CollectionAction( coll, this ); connect( copyAction, SIGNAL( triggered() ), this, SLOT( slotPrepareCopyTracks() ) ); copyMenu->addAction( copyAction ); }