]> git.sur5r.net Git - minitube/blobdiff - src/downloaditem.cpp
Imported Upstream version 1.7
[minitube] / src / downloaditem.cpp
index c919e2aaa74a041ad6aa09eb4680c5b945282a5a..fe8b3b654a8f0869016a670bbd58c2b8028f432b 100644 (file)
@@ -5,6 +5,10 @@
 #include <QDesktopServices>
 #include <QDebug>
 
+#ifdef APP_MAC
+#include "macutils.h"
+#endif
+
 namespace The {
     NetworkAccess* http();
 }
@@ -27,8 +31,14 @@ DownloadItem::DownloadItem(Video *video, QUrl url, QString filename, QObject *pa
 }
 
 DownloadItem::~DownloadItem() {
-    if (m_reply) delete m_reply;
-    if (video) delete video;
+    if (m_reply) {
+        delete m_reply;
+        m_reply = 0;
+    }
+    if (video) {
+        delete video;
+        video = 0;
+    }
 }
 
 void DownloadItem::start() {
@@ -86,8 +96,12 @@ void DownloadItem::open() {
 
 void DownloadItem::openFolder() {
     QFileInfo info(m_file);
+#ifdef APP_MAC
+    mac::showInFinder(info.absoluteFilePath());
+#else
     QUrl url = QUrl::fromLocalFile(info.absolutePath());
     QDesktopServices::openUrl(url);
+#endif
 }
 
 void DownloadItem::tryAgain() {
@@ -103,6 +117,7 @@ void DownloadItem::tryAgain() {
 }
 
 void DownloadItem::downloadReadyRead() {
+    if (!m_reply) return;
 
     if (!m_file.isOpen()) {
         if (!m_file.open(QIODevice::ReadWrite)) {
@@ -148,6 +163,7 @@ QString DownloadItem::errorMessage() const {
 }
 
 void DownloadItem::metaDataChanged() {
+    if (!m_reply) return;
     QVariant locationHeader = m_reply->header(QNetworkRequest::LocationHeader);
     if (locationHeader.isValid()) {
         m_url = locationHeader.toUrl();