Utils: Introduce a TemporaryDirectory and TemporaryFile class

Both wrap the corresponding Qt class, but make sure all temporary files
or directories are created inside a "master temporary directory".

Change-Id: I55461be507c828c965224c02863ea5ed9bbf9498
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2017-01-19 16:44:22 +01:00
committed by Tim Jenssen
parent e6017c40fc
commit c6f90e575e
64 changed files with 324 additions and 153 deletions

View File

@@ -55,6 +55,7 @@
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/synchronousprocess.h>
#include <utils/temporarydirectory.h>
#include <QDateTime>
#include <QFile>
@@ -62,7 +63,6 @@
#include <QMessageBox>
#include <QRegularExpression>
#include <QSet>
#include <QTemporaryDir>
using namespace ProjectExplorer;
@@ -91,10 +91,9 @@ const Utils::FileName BuildDirManager::workDirectory() const
if (bdir.exists())
return bdir;
if (!m_tempDir) {
const QString path = QDir::tempPath() + QLatin1String("/qtc-cmake-XXXXXX");
m_tempDir.reset(new QTemporaryDir(path));
m_tempDir.reset(new Utils::TemporaryDirectory("qtc-cmake-XXXXXXXX"));
if (!m_tempDir->isValid())
emit errorOccured(tr("Failed to create temporary directory using template \"%1\".").arg(path));
emit errorOccured(tr("Failed to create temporary directory \"%1\".").arg(m_tempDir->path()));
}
return Utils::FileName::fromString(m_tempDir->path());
}

View File

@@ -29,9 +29,9 @@
#include "cmakeconfigitem.h"
#include <utils/fileutils.h>
#include <utils/temporarydirectory.h>
#include <QObject>
#include <QTemporaryDir>
#include <QTimer>
#include <functional>
@@ -104,7 +104,7 @@ private:
void becameDirty();
CMakeBuildConfiguration *m_buildConfiguration = nullptr;
mutable std::unique_ptr<QTemporaryDir> m_tempDir = nullptr;
mutable std::unique_ptr<Utils::TemporaryDirectory> m_tempDir = nullptr;
mutable CMakeConfig m_cmakeCache;
QTimer m_reparseTimer;

View File

@@ -33,6 +33,7 @@
#include <QByteArray>
#include <QCryptographicHash>
#include <QFile>
#include <QJsonDocument>
#include <QJsonObject>
#include <QLocalSocket>

View File

@@ -28,7 +28,6 @@
#include <utils/qtcprocess.h>
#include <QLoggingCategory>
#include <QTemporaryDir>
#include <QTimer>
#include <QVariantMap>

View File

@@ -31,7 +31,6 @@
#include <utils/qtcprocess.h>
#include <QSet>
#include <QTemporaryDir>
#include <QTimer>
#include <memory>