#include "videoareawidget.h"
+#include "videomimedata.h"
VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent) {
stackedLayout = new QStackedLayout(this);
setLayout(stackedLayout);
+ setAcceptDrops(true);
}
void VideoAreaWidget::setVideoWidget(QWidget *videoWidget) {
stackedLayout->setCurrentWidget(videoWidget);
}
+void VideoAreaWidget::showError(QString message) {
+ loadingWidget->setError(message);
+ stackedLayout->setCurrentWidget(loadingWidget);
+}
+
void VideoAreaWidget::showLoading(Video *video) {
this->loadingWidget->setVideo(video);
stackedLayout->setCurrentWidget(loadingWidget);
}
void VideoAreaWidget::mouseDoubleClickEvent(QMouseEvent *event) {
- switch(event->button()) {
- case Qt::LeftButton:
+ if (event->button() == Qt::LeftButton)
emit doubleClicked();
- break;
- case Qt::RightButton:
+}
+
+void VideoAreaWidget::mousePressEvent(QMouseEvent *event) {
+ switch(event->button() == Qt::RightButton)
+ emit rightClicked();
+}
- break;
+void VideoAreaWidget::dragEnterEvent(QDragEnterEvent *event) {
+ qDebug() << event->mimeData()->formats();
+ if (event->mimeData()->hasFormat("application/x-minitube-video")) {
+ event->acceptProposedAction();
}
}
-void VideoAreaWidget::mousePressEvent(QMouseEvent *event) {
- switch(event->button()) {
- case Qt::LeftButton:
- break;
- case Qt::RightButton:
- emit rightClicked();
- break;
+void VideoAreaWidget::dropEvent(QDropEvent *event) {
+
+ const VideoMimeData* videoMimeData = dynamic_cast<const VideoMimeData*>( event->mimeData() );
+ if(!videoMimeData ) return;
+
+ QList<Video*> droppedVideos = videoMimeData->videos();
+ foreach( Video *video, droppedVideos) {
+ int row = listModel->rowForVideo(video);
+ if (row != -1)
+ listModel->setActiveRow(row);
}
+ event->acceptProposedAction();
}