1 #include "videoareawidget.h"
2 #include "videomimedata.h"
4 VideoAreaWidget::VideoAreaWidget(QWidget *parent) : QWidget(parent) {
5 QBoxLayout *vLayout = new QVBoxLayout(this);
7 vLayout->setSpacing(0);
9 // hidden message widget
10 messageLabel = new QLabel(this);
11 messageLabel->setOpenExternalLinks(true);
12 messageLabel->setMargin(7);
13 messageLabel->setBackgroundRole(QPalette::ToolTipBase);
14 messageLabel->setForegroundRole(QPalette::ToolTipText);
15 messageLabel->setAutoFillBackground(true);
16 messageLabel->setWordWrap(true);
18 vLayout->addWidget(messageLabel);
20 stackedLayout = new QStackedLayout();
21 vLayout->addLayout(stackedLayout);
27 setMouseTracking(true);
28 mouseTimer = new QTimer(this);
29 mouseTimer->setInterval(3000);
30 mouseTimer->setSingleShot(true);
31 connect(mouseTimer, SIGNAL(timeout()), SLOT(hideMouse()));
34 void VideoAreaWidget::setVideoWidget(QWidget *videoWidget) {
35 this->videoWidget = videoWidget;
36 stackedLayout->addWidget(videoWidget);
39 void VideoAreaWidget::setLoadingWidget(LoadingWidget *loadingWidget) {
40 this->loadingWidget = loadingWidget;
41 stackedLayout->addWidget(loadingWidget);
44 void VideoAreaWidget::showVideo() {
45 stackedLayout->setCurrentWidget(videoWidget);
48 void VideoAreaWidget::showError(QString message) {
49 // loadingWidget->setError(message);
50 messageLabel->setText(message);
52 stackedLayout->setCurrentWidget(loadingWidget);
55 void VideoAreaWidget::showLoading(Video *video) {
56 this->loadingWidget->setVideo(video);
57 stackedLayout->setCurrentWidget(loadingWidget);
59 messageLabel->clear();
62 void VideoAreaWidget::mouseDoubleClickEvent(QMouseEvent *event) {
63 if (event->button() == Qt::LeftButton)
67 void VideoAreaWidget::mousePressEvent(QMouseEvent *event) {
68 switch(event->button() == Qt::RightButton)
72 void VideoAreaWidget::mouseMoveEvent(QMouseEvent * /* event */) {
73 // show the normal cursor
75 // then hide it again after a few seconds
79 void VideoAreaWidget::hideMouse() {
80 setCursor(QCursor(Qt::BlankCursor));
83 void VideoAreaWidget::dragEnterEvent(QDragEnterEvent *event) {
84 qDebug() << event->mimeData()->formats();
85 if (event->mimeData()->hasFormat("application/x-minitube-video")) {
86 event->acceptProposedAction();
90 void VideoAreaWidget::dropEvent(QDropEvent *event) {
92 const VideoMimeData* videoMimeData = dynamic_cast<const VideoMimeData*>( event->mimeData() );
93 if(!videoMimeData ) return;
95 QList<Video*> droppedVideos = videoMimeData->videos();
96 foreach( Video *video, droppedVideos) {
97 int row = listModel->rowForVideo(video);
99 listModel->setActiveRow(row);
101 event->acceptProposedAction();