NOISSUE fix log-related legacy instance crash and show hidden log files

This commit is contained in:
Petr Mrázek 2015-08-19 02:04:56 +02:00
parent 96fdaebb5c
commit 5bc29b06a9
6 changed files with 21 additions and 4 deletions

View File

@ -56,12 +56,11 @@ public:
values.append(new NotesPage(legacy.get())); values.append(new NotesPage(legacy.get()));
values.append(new ScreenshotsPage(PathCombine(legacy->minecraftRoot(), "screenshots"))); values.append(new ScreenshotsPage(PathCombine(legacy->minecraftRoot(), "screenshots")));
values.append(new InstanceSettingsPage(legacy.get())); values.append(new InstanceSettingsPage(legacy.get()));
values.append(new OtherLogsPage(legacy->minecraftRoot(), inst->getLogFileMatcher()));
} }
auto logMatcher = inst->getLogFileMatcher(); auto logMatcher = inst->getLogFileMatcher();
if(logMatcher) if(logMatcher)
{ {
values.append(new OtherLogsPage(onesix->minecraftRoot(), logMatcher)); values.append(new OtherLogsPage(inst->getLogFileRoot(), logMatcher));
} }
return values; return values;
} }

View File

@ -169,6 +169,11 @@ public:
*/ */
virtual IPathMatcher::Ptr getLogFileMatcher() = 0; virtual IPathMatcher::Ptr getLogFileMatcher() = 0;
/*!
* Returns the root folder to use for looking up log files
*/
virtual QString getLogFileRoot() = 0;
/*! /*!
* does any necessary cleanups after the instance finishes. also runs before\ * does any necessary cleanups after the instance finishes. also runs before\
* TODO: turn into a task that can run asynchronously * TODO: turn into a task that can run asynchronously

View File

@ -74,4 +74,8 @@ public:
{ {
return nullptr; return nullptr;
} }
virtual QString getLogFileRoot()
{
return instanceRoot();
}
}; };

View File

@ -86,11 +86,11 @@ QStringList RecursiveFileSystemWatcher::scanRecursive(const QDir &directory)
{ {
return {}; return {};
} }
for (const QString &dir : directory.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) for (const QString &dir : directory.entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden))
{ {
ret.append(scanRecursive(directory.absoluteFilePath(dir))); ret.append(scanRecursive(directory.absoluteFilePath(dir)));
} }
for (const QString &file : directory.entryList(QDir::Files)) for (const QString &file : directory.entryList(QDir::Files | QDir::Hidden))
{ {
auto relPath = m_root.relativeFilePath(directory.absoluteFilePath(file)); auto relPath = m_root.relativeFilePath(directory.absoluteFilePath(file));
if (m_matcher->matches(relPath)) if (m_matcher->matches(relPath))

View File

@ -284,7 +284,14 @@ IPathMatcher::Ptr MinecraftInstance::getLogFileMatcher()
auto combined = std::make_shared<MultiMatcher>(); auto combined = std::make_shared<MultiMatcher>();
combined->add(std::make_shared<RegexpMatcher>(".*\\.log(\\.[0-9]*)?(\\.gz)?$")); combined->add(std::make_shared<RegexpMatcher>(".*\\.log(\\.[0-9]*)?(\\.gz)?$"));
combined->add(std::make_shared<RegexpMatcher>("crash-.*\\.txt")); combined->add(std::make_shared<RegexpMatcher>("crash-.*\\.txt"));
combined->add(std::make_shared<RegexpMatcher>("IDMap dump.*\\.txt$"));
combined->add(std::make_shared<RegexpMatcher>("ModLoader\\.txt(\\..*)?$"));
return combined; return combined;
} }
QString MinecraftInstance::getLogFileRoot()
{
return minecraftRoot();
}
#include "MinecraftInstance.moc" #include "MinecraftInstance.moc"

View File

@ -46,6 +46,8 @@ public:
virtual IPathMatcher::Ptr getLogFileMatcher() override; virtual IPathMatcher::Ptr getLogFileMatcher() override;
virtual QString getLogFileRoot() override;
protected: protected:
QMap<QString, QString> createCensorFilterFromSession(AuthSessionPtr session); QMap<QString, QString> createCensorFilterFromSession(AuthSessionPtr session);
}; };