diff --git a/src/blackmisc/filedeleter.cpp b/src/blackmisc/filedeleter.cpp new file mode 100644 index 000000000..0f8377e01 --- /dev/null +++ b/src/blackmisc/filedeleter.cpp @@ -0,0 +1,14 @@ +#include +#include "filedeleter.h" + +namespace BlackMisc +{ + CFileDeleter::~CFileDeleter() + { + foreach(const QString fn, this->m_fileNames) + { + QFile f(fn); + f.remove(); + } + } +} diff --git a/src/blackmisc/filedeleter.h b/src/blackmisc/filedeleter.h new file mode 100644 index 000000000..feec4583e --- /dev/null +++ b/src/blackmisc/filedeleter.h @@ -0,0 +1,38 @@ +#ifndef BLACKMISC_CFILEDELETER_H +#define BLACKMISC_CFILEDELETER_H + +#include +#include + +namespace BlackMisc +{ + + /*! + * \brief Utility class, deleting files when it is destroyed + */ + class CFileDeleter : public QObject + { + Q_OBJECT + + private: + QStringList m_fileNames; + + public: + /*! + * \brief File deleter + * \param parent + */ + explicit CFileDeleter(QObject *parent = nullptr) : QObject(parent) {} + + //! \brief add given file for deletion + void addFileForDeletion(const QString &file) + { + if (!this->m_fileNames.contains(file)) this->m_fileNames.append(file); + } + + //! \brief Destructor + ~CFileDeleter(); + }; +} + +#endif // guard