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

@@ -30,6 +30,8 @@
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/idocument.h>
#include <utils/temporaryfile.h>
#include <QAction>
#include <QLabel>
#include <QMenu>
@@ -41,7 +43,6 @@
#include <QApplication>
#include <QPainter>
#include <QDir>
#include <QTemporaryFile>
// Widget showing the image in a 1-pixel frame with context menu.
class ImageWidget : public QWidget
@@ -131,12 +132,9 @@ void ImageViewer::clicked(const QString &message)
// Open Qt Creator's image viewer
static void openImageViewer(const QImage &image)
{
QString fileName = QDir::tempPath();
if (!fileName.endsWith(QLatin1Char('/')))
fileName += QLatin1Char('/');
fileName += QLatin1String("qtcreatorXXXXXX.png");
QString fileName;
{
QTemporaryFile temporaryFile(fileName);
Utils::TemporaryFile temporaryFile("qtcreatorXXXXXX.png");
temporaryFile.setAutoRemove(false);
image.save(&temporaryFile);
fileName = temporaryFile.fileName();