Lomiri
ScreenshotDirectory.cpp
1 /*
2  * Copyright (C) 2014-2016 Canonical Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #include "ScreenshotDirectory.h"
18 
19 #include <QDir>
20 #include <QDateTime>
21 #include <QStandardPaths>
22 #include <QTemporaryDir>
23 
24 #include <QDebug>
25 
26 ScreenshotDirectory::ScreenshotDirectory(QObject *parent)
27  : QObject(parent)
28 {
29  QDir screenshotsDir;
30  if (qEnvironmentVariableIsSet("LOMIRI_TESTING")) {
31  QTemporaryDir tDir;
32  tDir.setAutoRemove(false);
33  screenshotsDir = tDir.path();
34  } else {
35  screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
36  }
37  screenshotsDir.mkpath(QStringLiteral("Screenshots"));
38  screenshotsDir.cd(QStringLiteral("Screenshots"));
39  if (screenshotsDir.exists()) {
40  m_fileNamePrefix = screenshotsDir.absolutePath();
41  m_fileNamePrefix.append("/screenshot");
42  } else {
43  qWarning() << "ScreenshotDirectory: failed to create directory at:" << screenshotsDir.absolutePath();
44  }
45 }
46 
47 QString ScreenshotDirectory::makeFileName() const
48 {
49  if (m_fileNamePrefix.isEmpty()) {
50  return QString();
51  }
52 
53  QString fileName(m_fileNamePrefix);
54  fileName.append(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmsszzz")));
55  fileName.append(".");
56  fileName.append(format());
57  return fileName;
58 }
59 
60 QString ScreenshotDirectory::format() const
61 {
62  //TODO: This should be configurable (perhaps through gsettings?)
63  return QStringLiteral("png");
64 }