+/* $BEGIN_LICENSE
+
+This file is part of Minitube.
+Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
+
+Minitube is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Minitube is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Minitube. If not, see <http://www.gnu.org/licenses/>.
+
+$END_LICENSE */
+
#include "downloadmanager.h"
#include "downloaditem.h"
#include "downloadmodel.h"
#ifdef APP_ACTIVATION
#include "activation.h"
#endif
-#ifdef Q_WS_MAC
-#include "macutils.h"
+#ifdef APP_EXTRA
+#include "extra.h"
#endif
+#include "datautils.h"
+#include "compatibility/pathsservice.h"
+#include "iconutils.h"
static DownloadManager *downloadManagerInstance = 0;
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.setIconPixmap(IconUtils::pixmap(":/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.")
video->disconnect(this);
- QString path = currentDownloadFolder();
-
- // TODO ensure all chars are filename compatible
- 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();
-
- QString filename = path + "/" + basename + ".mp4";
+ QString basename = DataUtils::stringToFilename(video->title());
+ if (basename.isEmpty()) basename = video->id();
+
+ QString filename = currentDownloadFolder() + "/" + basename + ".mp4";
Video *videoCopy = video->clone();
DownloadItem *item = new DownloadItem(videoCopy, url, filename, this);
void DownloadManager::itemFinished() {
if (activeItems() == 0) emit finished();
-#ifdef Q_WS_MAC
- if (mac::canNotify()) {
- 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));
- mac::notify(tr("Download finished"), video->title(), stats);
+#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);
#endif
}
QString DownloadManager::defaultDownloadFolder() {
// download in the Movies system folder
- QString path = QDesktopServices::storageLocation(QDesktopServices::MoviesLocation);
- QDir moviesDir(path);
+ QString path = Paths::getMoviesLocation();
+
+ const QDir moviesDir(path);
if (!moviesDir.exists()) {
// fallback to Desktop
- path = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
+ path = Paths::getDesktopLocation();
- QDir desktopDir(path);
+ const QDir desktopDir(path);
if (!desktopDir.exists()) {
// fallback to Home
- path = QDesktopServices::storageLocation(QDesktopServices::HomeLocation);
+ path = Paths::getHomeLocation();
}
}
return path;