citra-emu
/
citra-canary
Archived
1
0
Fork 0

Register ROM started through the gamelist in the list of ROM recently started

This commit is contained in:
LittleWhite 2016-03-06 11:22:45 +01:00
parent f62935d278
commit 5912c9c327
2 changed files with 4 additions and 5 deletions

View File

@ -310,6 +310,7 @@ bool GMainWindow::LoadROM(const std::string& filename) {
void GMainWindow::BootGame(const std::string& filename) { void GMainWindow::BootGame(const std::string& filename) {
LOG_INFO(Frontend, "Citra starting..."); LOG_INFO(Frontend, "Citra starting...");
StoreRecentFile(filename); // Put the filename on top of the list
if (!InitializeSystem()) if (!InitializeSystem())
return; return;
@ -374,11 +375,11 @@ void GMainWindow::ShutdownGame() {
emulation_running = false; emulation_running = false;
} }
void GMainWindow::StoreRecentFile(const QString& filename) void GMainWindow::StoreRecentFile(const std::string& filename)
{ {
QSettings settings; QSettings settings;
QStringList recent_files = settings.value("recentFiles").toStringList(); QStringList recent_files = settings.value("recentFiles").toStringList();
recent_files.prepend(filename); recent_files.prepend(QString::fromStdString(filename));
recent_files.removeDuplicates(); recent_files.removeDuplicates();
while (recent_files.size() > max_recent_files_item) { while (recent_files.size() > max_recent_files_item) {
recent_files.removeLast(); recent_files.removeLast();
@ -426,7 +427,6 @@ void GMainWindow::OnMenuLoadFile() {
QString filename = QFileDialog::getOpenFileName(this, tr("Load File"), rom_path, tr("3DS executable (*.3ds *.3dsx *.elf *.axf *.cci *.cxi)")); QString filename = QFileDialog::getOpenFileName(this, tr("Load File"), rom_path, tr("3DS executable (*.3ds *.3dsx *.elf *.axf *.cci *.cxi)"));
if (!filename.isEmpty()) { if (!filename.isEmpty()) {
settings.setValue("romsPath", QFileInfo(filename).path()); settings.setValue("romsPath", QFileInfo(filename).path());
StoreRecentFile(filename);
BootGame(filename.toLocal8Bit().data()); BootGame(filename.toLocal8Bit().data());
} }
@ -462,7 +462,6 @@ void GMainWindow::OnMenuRecentFile() {
QFileInfo file_info(filename); QFileInfo file_info(filename);
if (file_info.exists()) { if (file_info.exists()) {
BootGame(filename.toLocal8Bit().data()); BootGame(filename.toLocal8Bit().data());
StoreRecentFile(filename); // Put the filename on top of the list
} else { } else {
// Display an error message and remove the file from the list. // Display an error message and remove the file from the list.
QMessageBox::information(this, tr("File not found"), tr("File \"%1\" not found").arg(filename)); QMessageBox::information(this, tr("File not found"), tr("File \"%1\" not found").arg(filename));

View File

@ -75,7 +75,7 @@ private:
* *
* @param filename the filename to store * @param filename the filename to store
*/ */
void StoreRecentFile(const QString& filename); void StoreRecentFile(const std::string& filename);
/** /**
* Updates the recent files menu. * Updates the recent files menu.