void PlayerWidget::dropEvent(QDropEvent* event) { qDebug() << "PlayerWidget: dragEnterEvent: " << event->mimeData(); if (event->mimeData()->hasUrls()) { QList<QUrl> urlList = event->mimeData()->urls(); // returns list of QUrls event->ignore(); if (urlList.size() > 0) // if at least one QUrl is present in list { //load first loadFile(urlList.at(1)); } } else if (event->mimeData()->hasFormat("text/playlistitem")) { //decode playlistitem QByteArray itemData = event->mimeData()->data("text/playlistitem"); QDataStream stream(&itemData, QIODevice::ReadOnly); QVector<QStringList> tags; stream >> tags; event->setDropAction(Qt::MoveAction); event->accept(); //publish dropped Tracks to connected playlist foreach (QStringList tag, tags) { Track* track = new Track(tag); Q_EMIT trackDropped(track); }
void WTrackProperty::dropEvent(QDropEvent *event) { if (DragAndDropHelper::allowLoadToPlayer(m_pGroup, m_pConfig)) { QList<QFileInfo> files = DragAndDropHelper::dropEventFiles( *event->mimeData(), m_pGroup, true, false); if (!files.isEmpty()) { event->accept(); emit(trackDropped(files.at(0).absoluteFilePath(), m_pGroup)); return; } } event->ignore(); }
void WSpinny::dropEvent(QDropEvent * event) { if (event->mimeData()->hasUrls()) { QList<QFileInfo> files = DragAndDropHelper::supportedTracksFromUrls( event->mimeData()->urls(), true, false); if (!files.isEmpty()) { event->accept(); emit(trackDropped(files.at(0).canonicalFilePath(), m_group)); return; } } event->ignore(); }
void WTrackText::dropEvent(QDropEvent *event) { if (event->mimeData()->hasUrls() && event->mimeData()->urls().size() > 0) { QUrl url = event->mimeData()->urls().first(); QString fileName = url.toLocalFile(); // If the file is on a network share, try just converting the URL to a string if (fileName == "") { fileName = url.toString(); } event->accept(); emit(trackDropped(fileName, m_pGroup)); } else { event->ignore(); } }
void WWaveformViewer::dropEvent(QDropEvent * event) { if (event->mimeData()->hasUrls() && event->mimeData()->urls().size() > 0) { QList<QUrl> urls(event->mimeData()->urls()); QUrl url = urls.first(); QString name = url.toLocalFile(); //If the file is on a network share, try just converting the URL to a string... if (name == "") name = url.toString(); event->accept(); emit(trackDropped(name, m_pGroup)); } else { event->ignore(); } }
CollectionWidget::CollectionWidget( QWidget* parent ): QWidget(parent) { p = new CollectionWidgetPrivate; QPushButton *pushRandom =new QPushButton(); QPixmap pixmap2(":shuffle.png"); pushRandom->setIcon(QIcon(pixmap2)); pushRandom->setIconSize(QSize(27,27)); pushRandom->setMaximumWidth(40); pushRandom->setStyleSheet("QPushButton { border: none; padding: 0px; margin-left: 10px;max-height: 20px; margin-right: 4px;}"); pushRandom->setToolTip(tr( "Random Tracks" )); p->searchEdit = new SearchEdit(); p->searchEdit->setToolTip(tr( "Enter space-separated terms to filter collection" )); QVBoxLayout *mainLayout = new QVBoxLayout; QWidget *headWidget = new QWidget(this); headWidget->setMaximumHeight(38); QHBoxLayout *headWidgetLayout = new QHBoxLayout; headWidgetLayout->setMargin(0); headWidgetLayout->setSpacing(1); headWidgetLayout->addSpacerItem(new QSpacerItem(10, 0, QSizePolicy::Fixed, QSizePolicy::Expanding)); headWidgetLayout->addWidget(p->searchEdit); headWidgetLayout->addWidget(pushRandom); headWidget->setLayout(headWidgetLayout); p->updater = new CollectionUpdater(); p->timer = new QTimer( this ); p->timer->setInterval(300); p->timer->setSingleShot(true); p->collectiontree = new CollectionTree(this); p->modeSelect = new ModeSelector(p->collectiontree); headWidget->raise(); mainLayout->addWidget(headWidget); mainLayout->setMargin(0); mainLayout->setSpacing(0); connect(pushRandom,SIGNAL(clicked()), p->collectiontree,SLOT(triggerRandomSelection()) ); connect ( p->modeSelect , SIGNAL(modeChanged(ModeSelector::modeType)), this, SLOT(onModeSelected(ModeSelector::modeType))); connect( p->searchEdit, SIGNAL( textChanged( const QString& ) ), this, SLOT( onSetFilterTimeout() ) ); connect( p->searchEdit, SIGNAL( trackDropped(QString)), this, SIGNAL( trackDropped(QString)) ); connect( p->collectiontree, SIGNAL(selectionChanged(QList<Track*>)), this, SIGNAL(selectionChanged(QList<Track*>))); connect( p->collectiontree, SIGNAL(wantLoad(QList<Track*>,QString)), this, SIGNAL(wantLoad(QList<Track*>,QString))); connect( p->updater, SIGNAL(changesDone()), p->collectiontree, SLOT(createTrunk())); connect( p->collectiontree, SIGNAL(rescan()), p->updater, SLOT(scan())); connect( p->timer, SIGNAL(timeout()), SLOT(onSetFilter()) ); setFocusProxy( p->collectiontree ); //default object to get focus setMaximumWidth(400); //Pogressbar for re-read collection p->progress = new ProgressBar(this); p->progress->setValue(0); p->progress->setStyleSheet("* { margin-bottom: 3px; }"); mainLayout->addWidget(p->collectiontree); // Read config values QSettings settings; p->modeSelect->setMode( static_cast<ModeSelector::modeType>(settings.value("TreeMode",ModeSelector::MODENONE).toUInt())); p->collectiontree->createTrunk(); setLayout(mainLayout); connect(p->updater, SIGNAL(progressChanged(int)), p->progress,SLOT(setValue(int))); connect(p->progress, SIGNAL(stopped()), p->updater,SLOT(stop())); p->modeSelect->show(); }