From 59ff750b4ac6d2f0f6dc9642286897d86978e50f Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 20 Feb 2014 15:08:48 +0100 Subject: [PATCH] refs #144 , improved file deleter , no dependency of QObject anymore, now using single deleter object --- src/blackmisc/filedeleter.cpp | 11 +++++++++++ src/blackmisc/filedeleter.h | 24 ++++++++++++------------ src/blacksound/soundgenerator.cpp | 3 +-- src/blacksound/soundgenerator.h | 1 - 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/blackmisc/filedeleter.cpp b/src/blackmisc/filedeleter.cpp index 0f8377e01..20db7cd5d 100644 --- a/src/blackmisc/filedeleter.cpp +++ b/src/blackmisc/filedeleter.cpp @@ -3,6 +3,17 @@ namespace BlackMisc { + void CFileDeleter::addFile(const QString &file) + { + if (file.isEmpty()) return; + if (!this->m_fileNames.contains(file)) this->m_fileNames.append(file); + } + + void CFileDeleter::addFileForDeletion(const QString &file) + { + CFileDeleter::fileDeleter().addFile(file); + } + CFileDeleter::~CFileDeleter() { foreach(const QString fn, this->m_fileNames) diff --git a/src/blackmisc/filedeleter.h b/src/blackmisc/filedeleter.h index feec4583e..221d3bb69 100644 --- a/src/blackmisc/filedeleter.h +++ b/src/blackmisc/filedeleter.h @@ -10,25 +10,25 @@ namespace BlackMisc /*! * \brief Utility class, deleting files when it is destroyed */ - class CFileDeleter : public QObject + class CFileDeleter { - Q_OBJECT private: QStringList m_fileNames; - public: - /*! - * \brief File deleter - * \param parent - */ - explicit CFileDeleter(QObject *parent = nullptr) : QObject(parent) {} + //! \brief File deleter + CFileDeleter() {} //! \brief add given file for deletion - void addFileForDeletion(const QString &file) - { - if (!this->m_fileNames.contains(file)) this->m_fileNames.append(file); - } + void addFile(const QString &file); + + public: + + //! \brief file deleter + static CFileDeleter &fileDeleter() { static CFileDeleter f; return f;} + + //! \brief add a file (name) + static void addFileForDeletion(const QString &file); //! \brief Destructor ~CFileDeleter(); diff --git a/src/blacksound/soundgenerator.cpp b/src/blacksound/soundgenerator.cpp index 40c09eb89..48758b737 100644 --- a/src/blacksound/soundgenerator.cpp +++ b/src/blacksound/soundgenerator.cpp @@ -19,7 +19,6 @@ using namespace BlackMisc::Voice; namespace BlackSound { QDateTime CSoundGenerator::s_selcalStarted = QDateTime::currentDateTimeUtc(); - BlackMisc::CFileDeleter CSoundGenerator::s_fileDeleter = BlackMisc::CFileDeleter(); CSoundGenerator::CSoundGenerator(const QAudioDeviceInfo &device, const QAudioFormat &format, const QList &tones, PlayMode mode, QObject *parent) : QIODevice(parent), @@ -459,6 +458,6 @@ namespace BlackSound mediaPlayer->setVolume(volume); // 0-100 mediaPlayer->play(); // I cannot delete the file here, only after it has been played - if (removeFileAfterPlaying) CSoundGenerator::s_fileDeleter.addFileForDeletion(file); + if (removeFileAfterPlaying) BlackMisc::CFileDeleter::addFileForDeletion(file); } } // namespace diff --git a/src/blacksound/soundgenerator.h b/src/blacksound/soundgenerator.h index 5166bf46e..c5f364a87 100644 --- a/src/blacksound/soundgenerator.h +++ b/src/blacksound/soundgenerator.h @@ -290,7 +290,6 @@ namespace BlackSound QIODevice *m_pushModeIODevice; /*!< IO device when used in push mode */ QThread *m_ownThread; static QDateTime s_selcalStarted; - static BlackMisc::CFileDeleter s_fileDeleter; //! \brief Header for saving .wav files struct chunk