]> git.sur5r.net Git - minitube/blob - src/temporary.cpp
Imported Upstream version 2.4
[minitube] / src / temporary.cpp
1 /* $BEGIN_LICENSE
2
3 This file is part of Minitube.
4 Copyright 2009, Flavio Tordini <flavio.tordini@gmail.com>
5
6 Minitube is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 Minitube is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
18
19 $END_LICENSE */
20
21 #include "temporary.h"
22 #include "constants.h"
23
24 static QList<QString> paths;
25 #ifdef Q_OS_LINUX
26 static QString userName;
27 #endif
28
29 Temporary::Temporary() { }
30
31 QString Temporary::filename() {
32 #if QT_VERSION >= 0x050000
33     static const QString tempDir = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
34 #else
35     static const QString tempDir = QDesktopServices::storageLocation(QDesktopServices::TempLocation);
36 #endif
37
38     QString tempFile = tempDir + "/" + Constants::UNIX_NAME + "-" + QString::number(qrand());
39
40 #ifdef Q_OS_LINUX
41     if (userName.isNull()) {
42         userName = QString(getenv("USERNAME"));
43         if (userName.isEmpty())
44             userName = QString(getenv("USER"));
45     }
46     if (!userName.isEmpty())
47         tempFile += "-" + userName;
48 #endif
49
50     // tempFile += ".mp4";
51
52     if (QFile::exists(tempFile) && !QFile::remove(tempFile)) {
53         qDebug() << "Cannot remove temp file" << tempFile;
54     }
55
56     paths << tempFile;
57
58     if (paths.size() > 1) {
59         QString removedFile = paths.takeFirst();
60         if (QFile::exists(removedFile) && !QFile::remove(removedFile)) {
61             qDebug() << "Cannot remove temp file" << removedFile;
62         }
63     }
64
65     return tempFile;
66
67 }
68
69 void Temporary::deleteAll() {
70     foreach(QString path, paths) {
71         if (QFile::exists(path) && !QFile::remove(path)) {
72             qDebug() << "Cannot remove temp file" << path;
73         }
74     }
75 }