diff --git a/app/backend/boxartmanager.cpp b/app/backend/boxartmanager.cpp index 4f01d0bf..bb474d53 100644 --- a/app/backend/boxartmanager.cpp +++ b/app/backend/boxartmanager.cpp @@ -87,6 +87,16 @@ QUrl BoxArtManager::loadBoxArt(NvComputer* computer, NvApp& app) return QUrl("qrc:/res/no_app_image.png"); } +void BoxArtManager::deleteBoxArt(NvComputer* computer) +{ + QDir dir(Path::getBoxArtCacheDir()); + + // Delete everything in this computer's box art directory + if (dir.cd(computer->uuid)) { + dir.removeRecursively(); + } +} + void BoxArtManager::handleBoxArtLoadComplete(NvComputer* computer, NvApp app, QUrl image) { if (!image.isEmpty()) { diff --git a/app/backend/boxartmanager.h b/app/backend/boxartmanager.h index 110f4fce..96ac47ee 100644 --- a/app/backend/boxartmanager.h +++ b/app/backend/boxartmanager.h @@ -18,6 +18,10 @@ public: QUrl loadBoxArt(NvComputer* computer, NvApp& app); + static + void + deleteBoxArt(NvComputer* computer); + signals: void boxArtLoadComplete(NvComputer* computer, NvApp app, QUrl image); diff --git a/app/backend/computermanager.cpp b/app/backend/computermanager.cpp index ec00918b..879ce63f 100644 --- a/app/backend/computermanager.cpp +++ b/app/backend/computermanager.cpp @@ -1,4 +1,5 @@ #include "computermanager.h" +#include "boxartmanager.h" #include "nvhttp.h" #include "settings/streamingpreferences.h" @@ -399,6 +400,9 @@ public: // Delete the polling entry first. This will stop all polling threads too. delete pollingEntry; + // Delete cached box art + BoxArtManager::deleteBoxArt(m_Computer); + // Finally, delete the computer itself. This must be done // last because the polling thread might be using it. delete m_Computer;