]> git.sur5r.net Git - minitube/blobdiff - src/downloadmanager.cpp
Update upstream source from tag 'upstream/3.6'
[minitube] / src / downloadmanager.cpp
index 33d2adacf66371feae05b5679614da3ef7eec4de..4ea5d8c7b0a0f789eb137dd738286f1bdac46c7c 100644 (file)
@@ -30,6 +30,8 @@ $END_LICENSE */
 #ifdef APP_EXTRA
 #include "extra.h"
 #endif
+#include "datautils.h"
+#include "iconutils.h"
 
 static DownloadManager *downloadManagerInstance = 0;
 
@@ -51,15 +53,15 @@ void DownloadManager::clear() {
 
 int DownloadManager::activeItems() {
     int num = 0;
-    foreach (DownloadItem *item, items) {
+    for (DownloadItem *item : items) {
         if (item->status() == Downloading || item->status() == Starting) num++;
     }
     return num;
 }
 
 DownloadItem* DownloadManager::itemForVideo(Video* video) {
-    foreach (DownloadItem *item, items) {
-        if (item->getVideo()->id() == video->id()) return item;
+    for (DownloadItem *item : items) {
+        if (item->getVideo()->getId() == video->getId()) return item;
     }
     return 0;
 }
@@ -67,40 +69,13 @@ DownloadItem* DownloadManager::itemForVideo(Video* video) {
 void DownloadManager::addItem(Video *video) {
     // qDebug() << __FUNCTION__ << video->title();
 
-#ifdef APP_ACTIVATION
-    if (!Activation::instance().isActivated()) {
-        if (video->duration() >= 60*4) {
-            QMessageBox msgBox(MainWindow::instance());
-            msgBox.setIconPixmap(QPixmap(":/images/app.png").scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
-            msgBox.setText(tr("This is just the demo version of %1.").arg(Constants::NAME));
-            msgBox.setInformativeText(
-                        tr("It can only download videos shorter than %1 minutes so you can test the download functionality.")
-                        .arg(4));
-            msgBox.setModal(true);
-            // make it a "sheet" on the Mac
-            msgBox.setWindowModality(Qt::WindowModal);
-
-            msgBox.addButton(tr("Continue"), QMessageBox::RejectRole);
-            QPushButton *buyButton = msgBox.addButton(tr("Get the full version"), QMessageBox::ActionRole);
-
-            msgBox.exec();
-
-            if (msgBox.clickedButton() == buyButton) {
-                MainWindow::instance()->showActivationView();
-            }
-
-            return;
-        }
-    }
-#endif
-
     DownloadItem *item = itemForVideo(video);
     if (item != 0) {
         if (item->status() == Failed || item->status() == Idle) {
-            qDebug() << "Restarting download" << video->title();
+            qDebug() << "Restarting download" << video->getTitle();
             item->tryAgain();
         } else {
-            qDebug() << "Already downloading video" << video->title();
+            qDebug() << "Already downloading video" << video->getTitle();
         }
         return;
     }
@@ -123,24 +98,8 @@ void DownloadManager::gotStreamUrl(QUrl url) {
 
     video->disconnect(this);
 
-    QString basename = video->title();
-    basename.replace('(', '[');
-    basename.replace(')', ']');
-    basename.replace('/', ' ');
-    basename.replace('\\', ' ');
-    basename.replace('<', ' ');
-    basename.replace('>', ' ');
-    basename.replace(':', ' ');
-    basename.replace('"', ' ');
-    basename.replace('|', ' ');
-    basename.replace('?', ' ');
-    basename.replace('*', ' ');
-    basename = basename.simplified();
-
-    if (!basename.isEmpty() && basename.at(0) == '.')
-        basename = basename.mid(1).trimmed();
-
-    if (basename.isEmpty()) basename = video->id();
+    QString basename = DataUtils::stringToFilename(video->getTitle());
+    if (basename.isEmpty()) basename = video->getId();
 
     QString filename = currentDownloadFolder() + "/" + basename + ".mp4";
 
@@ -161,17 +120,17 @@ void DownloadManager::gotStreamUrl(QUrl url) {
 void DownloadManager::itemFinished() {
     if (activeItems() == 0) emit finished();
 #ifdef APP_EXTRA
-        DownloadItem *item = static_cast<DownloadItem*>(sender());
-        if (!item) {
-            qDebug() << "Cannot get item in" << __FUNCTION__;
-            return;
-        }
-        Video *video = item->getVideo();
-        if (!video) return;
-        QString stats = tr("%1 downloaded in %2").arg(
-                    DownloadItem::formattedFilesize(item->bytesTotal()),
-                    DownloadItem::formattedTime(item->totalTime(), false));
-        Extra::notify(tr("Download finished"), video->title(), stats);
+    DownloadItem *item = static_cast<DownloadItem*>(sender());
+    if (!item) {
+        qDebug() << "Cannot get item in" << __FUNCTION__;
+        return;
+    }
+    Video *video = item->getVideo();
+    if (!video) return;
+    QString stats = tr("%1 downloaded in %2").arg(
+                DownloadItem::formattedFilesize(item->bytesTotal()),
+                DownloadItem::formattedTime(item->totalTime(), false));
+    Extra::notify(tr("Download finished"), video->getTitle(), stats);
 #endif
 }
 
@@ -182,16 +141,17 @@ void DownloadManager::updateStatusMessage() {
 
 QString DownloadManager::defaultDownloadFolder() {
     // download in the Movies system folder
-    QString path = QDesktopServices::storageLocation(QDesktopServices::MoviesLocation);
-    QDir moviesDir(path);
+    QString path = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation);
+
+    const QDir moviesDir(path);
     if (!moviesDir.exists()) {
         // fallback to Desktop
-        path = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
+        path = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
 
-        QDir desktopDir(path);
+        const QDir desktopDir(path);
         if (!desktopDir.exists()) {
             // fallback to Home
-            path = QDesktopServices::storageLocation(QDesktopServices::HomeLocation);
+            path = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
         }
     }
     return path;