diff options
Diffstat (limited to 'xbmc/video/jobs/VideoLibraryCleaningJob.cpp')
-rw-r--r-- | xbmc/video/jobs/VideoLibraryCleaningJob.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/xbmc/video/jobs/VideoLibraryCleaningJob.cpp b/xbmc/video/jobs/VideoLibraryCleaningJob.cpp new file mode 100644 index 0000000..7f4adfd --- /dev/null +++ b/xbmc/video/jobs/VideoLibraryCleaningJob.cpp @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2014-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#include "VideoLibraryCleaningJob.h" + +#include "dialogs/GUIDialogExtendedProgressBar.h" +#include "video/VideoDatabase.h" + +CVideoLibraryCleaningJob::CVideoLibraryCleaningJob(const std::set<int>& paths /* = std::set<int>() */, bool showDialog /* = false */) + : CVideoLibraryProgressJob(NULL), + m_paths(paths), + m_showDialog(showDialog) +{ } + +CVideoLibraryCleaningJob::CVideoLibraryCleaningJob(const std::set<int>& paths, CGUIDialogProgressBarHandle* progressBar) + : CVideoLibraryProgressJob(progressBar), + m_paths(paths), + m_showDialog(false) +{ } + +CVideoLibraryCleaningJob::~CVideoLibraryCleaningJob() = default; + +bool CVideoLibraryCleaningJob::operator==(const CJob* job) const +{ + if (strcmp(job->GetType(), GetType()) != 0) + return false; + + const CVideoLibraryCleaningJob* cleaningJob = dynamic_cast<const CVideoLibraryCleaningJob*>(job); + if (cleaningJob == NULL) + return false; + + return m_paths == cleaningJob->m_paths && + m_showDialog == cleaningJob->m_showDialog; +} + +bool CVideoLibraryCleaningJob::Work(CVideoDatabase &db) +{ + db.CleanDatabase(GetProgressBar(), m_paths, m_showDialog); + return true; +} |