mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-06-13 05:37:42 +02:00
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:

committed by
Soup of the tomato kind

parent
c1b460fa05
commit
b9a1fa3645
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user