Code Search for Developers
 
 
  

Tracklist.cpp from marsyas at Krugle


Show Tracklist.cpp syntax highlighted

#include <QtGui>
#include "Tracklist.h"

Tracklist::Tracklist(QWidget *parent)
	: QListWidget(parent)
{
        setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
        setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
        setDragEnabled(true);
	//setMouseTracking(true);
}

Tracklist::~Tracklist() {
}

void Tracklist::listTracks(MusicPlaylist *playlist) {
        clear();

        QListWidgetItem *item;
        MusicTrackIterator it = playlist->getTracks();
        while ( it.hasNext() ) {
                MusicTrack *track = it.next();
                item = new QListWidgetItem(track->getTitle());
                item->setData( Qt::UserRole, QVariant(track->getTrackId()));

		qDebug() << "adding track: " << track->getTitle() 
			 << " " << track->getTrackId();

                addItem(item);
        }
}

void Tracklist::listTracks(MusicTrackIterator *it) {
	clear();

        QListWidgetItem *item;
        while ( it->hasNext() ) {
                MusicTrack *track = it->next();
                item = new QListWidgetItem(track->getTitle());
                item->setData( Qt::UserRole, QVariant(track->getTrackId()));

		qDebug() << "adding track: " << track->getTitle() 
			 << " " << track->getTrackId();

                addItem(item);
        }
}

void Tracklist::mousePressEvent(QMouseEvent *event) {
	QListWidget::mousePressEvent(event);

	if ( event->button() == Qt::LeftButton ) {
		QListWidgetItem *item = currentItem();

		QDrag *drag = new QDrag(this);
		QMimeData *mimeData = new QMimeData();

		//Track Id, convoluted? indeed
		QByteArray trackIdba;
		trackIdba.setNum(item->data(Qt::UserRole).toInt());

		mimeData->setText(item->text());
		mimeData->setData("application/track-id", trackIdba);
		drag->setMimeData(mimeData);

		qDebug() << "Start Track Drag: " << mimeData->text() 
			 << " " << mimeData->data("application/track-id").toInt();

		Qt::DropAction dropAction = drag->start(Qt::CopyAction);
	}
}






See more files for this project here

marsyas

Marsyas (Music Analysis, Retrieval and Synthesis for Audio Signals) is a framework for developing systems for audio processing. It provides an general architecture for connecting audio, soundfiles, signal processing blocks and machine learning.

Project homepage: http://sourceforge.net/projects/marsyas
Programming language(s): C++
License: other

  Grid.cpp
  Grid.h
  Keypad.cpp
  Keypad.h
  PlayBox.cpp
  PlayBox.h
  Playlist.cpp
  Playlist.h
  PlaylistItem.cpp
  PlaylistItem.h
  PlaylistModel.cpp
  PlaylistModel.h
  Tracklist.cpp
  Tracklist.h