all repos — mgba @ 03984ce0859bcd47118bf406cccc1333076e013d

mGBA Game Boy Advance Emulator

Qt: Clean up some path canonicalization
Jeffrey Pfau jeffrey@endrift.com
Sun, 22 May 2016 22:48:12 -0700
commit

03984ce0859bcd47118bf406cccc1333076e013d

parent

2bfd721ea7a56026ae603ede60f852cd9aab0a24

3 files changed, 14 insertions(+), 8 deletions(-)

jump to
M CHANGESCHANGES

@@ -30,6 +30,7 @@ - FFmpeg: Update dependencies on Ubuntu

- All: Allow use of external minizip library - GBA Video: Null renderer should return proper register values - Libretro: Disable logging game errors, BIOS calls and stubs in release builds + - Qt: Canonicalize file paths when loading games 0.4.0: (2016-02-02) Features:
M src/platform/qt/GameController.cppsrc/platform/qt/GameController.cpp

@@ -13,6 +13,7 @@ #include "VFileDevice.h"

#include <QCoreApplication> #include <QDateTime> +#include <QFileInfo> #include <QThread> #include <ctime>

@@ -282,14 +283,12 @@ #endif

void GameController::loadGame(const QString& path) { closeGame(); - QFile file(path); - if (!file.open(QIODevice::ReadOnly)) { + QFileInfo info(path); + if (!info.isReadable()) { postLog(GBA_LOG_ERROR, tr("Failed to open game file: %1").arg(path)); return; } - file.close(); - - m_fname = path; + m_fname = info.canonicalFilePath(); openGame(); }

@@ -370,7 +369,12 @@ if (!m_gameOpen) {

return; } - m_fname = path; + QFileInfo info(path); + if (!info.isReadable()) { + postLog(GBA_LOG_ERROR, tr("Failed to open game file: %1").arg(path)); + return; + } + m_fname = info.canonicalFilePath(); threadInterrupt(); m_threadContext.fname = strdup(m_fname.toLocal8Bit().constData()); GBAThreadReplaceROM(&m_threadContext, m_threadContext.fname);
M src/platform/qt/Window.cppsrc/platform/qt/Window.cpp

@@ -323,11 +323,12 @@

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