Implement popup for metacache

someone in the Discord ran into an issue somewhat related to the metacache button not working (folder in use err), so this warning makes it more obvious when this happens, though it would be better to find out why it ran into a process conflict

Signed-off-by: Soup <43444191+Soup-64@users.noreply.github.com>
This commit is contained in:
Soup
2025-04-05 22:26:58 -04:00
committed by Soup of the tomato kind
parent c1b460fa05
commit b9a1fa3645
4 changed files with 10 additions and 4 deletions

View File

@ -55,6 +55,7 @@
#include "DesktopServices.h"
#include "PSaveFile.h"
#include "StringUtils.h"
#include "ui/dialogs/CustomMessageBox.h"
#if defined Q_OS_WIN32
#define NOMINMAX

View File

@ -166,8 +166,9 @@ auto HttpMetaCache::evictEntry(MetaEntryPtr entry) -> bool
return true;
}
void HttpMetaCache::evictAll()
bool HttpMetaCache::evictAll()
{
bool ret;
for (QString& base : m_entries.keys()) {
EntryMap& map = m_entries[base];
qCDebug(taskHttpMetaCacheLogC) << "Evicting base" << base;
@ -176,8 +177,9 @@ void HttpMetaCache::evictAll()
qCWarning(taskHttpMetaCacheLogC) << "Unexpected missing cache entry" << entry->m_basePath;
}
map.entry_list.clear();
FS::deletePath(map.base_path);
ret = FS::deletePath(map.base_path);
}
return ret;
}
auto HttpMetaCache::staleEntry(QString base, QString resource_path) -> MetaEntryPtr

View File

@ -113,7 +113,7 @@ class HttpMetaCache : public QObject {
// evict selected entry from cache
auto evictEntry(MetaEntryPtr entry) -> bool;
void evictAll();
bool evictAll();
void addBase(QString base, QString base_root);

View File

@ -1318,7 +1318,10 @@ void MainWindow::on_actionReportBug_triggered()
void MainWindow::on_actionClearMetadata_triggered()
{
APPLICATION->metacache()->evictAll();
if(!APPLICATION->metacache()->evictAll()){
CustomMessageBox::selectable(this, tr("Error"), tr("Metadata cache clear Failed!\n To clear the metadata cache manually, press Folders -> View Launcher Root Folder, and after closing the launcher delete the folder named \"meta\"\n"), QMessageBox::Warning)->show();
}
APPLICATION->metacache()->SaveNow();
}