Qt: Clean up some path canonicalization

This commit is contained in:
Jeffrey Pfau 2016-05-22 22:48:12 -07:00
parent 0080fab314
commit 210ef6db50
3 changed files with 13 additions and 8 deletions

View File

@ -42,6 +42,7 @@ Misc:
- Libretro: Disable logging game errors, BIOS calls and stubs in release builds - Libretro: Disable logging game errors, BIOS calls and stubs in release builds
- ARM7: Support forcing Thumb mode via MSR - ARM7: Support forcing Thumb mode via MSR
- ARM7: Flush prefetch cache when loading CPSR via MSR - ARM7: Flush prefetch cache when loading CPSR via MSR
- Qt: Canonicalize file paths when loading games
0.4.0: (2016-02-02) 0.4.0: (2016-02-02)
Features: Features:

View File

@ -288,14 +288,12 @@ void GameController::setDebugger(mDebugger* debugger) {
void GameController::loadGame(const QString& path) { void GameController::loadGame(const QString& path) {
closeGame(); closeGame();
QFile file(path); QFileInfo info(path);
if (!file.open(QIODevice::ReadOnly)) { if (!info.isReadable()) {
LOG(QT, ERROR) << tr("Failed to open game file: %1").arg(path); LOG(QT, ERROR) << tr("Failed to open game file: %1").arg(path);
return; return;
} }
file.close(); m_fname = info.canonicalFilePath();
m_fname = path;
openGame(); openGame();
} }
@ -406,7 +404,12 @@ void GameController::replaceGame(const QString& path) {
return; return;
} }
m_fname = path; QFileInfo info(path);
if (!info.isReadable()) {
LOG(QT, ERROR) << tr("Failed to open game file: %1").arg(path);
return;
}
m_fname = info.canonicalFilePath();
threadInterrupt(); threadInterrupt();
mCoreLoadFile(m_threadContext.core, m_fname.toLocal8Bit().constData()); mCoreLoadFile(m_threadContext.core, m_fname.toLocal8Bit().constData());
threadContinue(); threadContinue();

View File

@ -333,11 +333,12 @@ void Window::multiplayerChanged() {
void Window::selectBIOS() { void Window::selectBIOS() {
QString filename = GBAApp::app()->getOpenFileName(this, tr("Select BIOS")); QString filename = GBAApp::app()->getOpenFileName(this, tr("Select BIOS"));
if (!filename.isEmpty()) { if (!filename.isEmpty()) {
m_config->setOption("bios", filename); QFileInfo info(filename);
m_config->setOption("bios", info.canonicalFilePath());
m_config->updateOption("bios"); m_config->updateOption("bios");
m_config->setOption("useBios", true); m_config->setOption("useBios", true);
m_config->updateOption("useBios"); m_config->updateOption("useBios");
m_controller->loadBIOS(filename); m_controller->loadBIOS(info.canonicalFilePath());
} }
} }