Lomiri
Loading...
Searching...
No Matches
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
26ScreenshotDirectory::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
47QString 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
60QString ScreenshotDirectory::format() const
61{
62 //TODO: This should be configurable (perhaps through gsettings?)
63 return QStringLiteral("png");
64}