summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt2/MainWindow.cpp
diff options
context:
space:
mode:
authorspycrab <spycrab@users.noreply.github.com>2018-03-23 01:18:53 +0100
committerspycrab <spycrab@users.noreply.github.com>2018-03-23 10:58:54 +0100
commit95a5a51e55bd36a8d23c8a95ea7b7ca560110041 (patch)
tree3ccea6851c70ef0f7ee63939a4bf76c550dad309 /Source/Core/DolphinQt2/MainWindow.cpp
parent5e76f3a6d4a29df6b2794c4f6c790bd92e47f17d (diff)
Qt: Implement missing "File" menu items
Diffstat (limited to 'Source/Core/DolphinQt2/MainWindow.cpp')
-rw-r--r--Source/Core/DolphinQt2/MainWindow.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/Source/Core/DolphinQt2/MainWindow.cpp b/Source/Core/DolphinQt2/MainWindow.cpp
index 1afa2bafdd..46060db385 100644
--- a/Source/Core/DolphinQt2/MainWindow.cpp
+++ b/Source/Core/DolphinQt2/MainWindow.cpp
@@ -28,6 +28,7 @@
#include "Core/Config/NetplaySettings.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
+#include "Core/HW/DVD/DVDInterface.h"
#include "Core/HW/GCKeyboard.h"
#include "Core/HW/GCPad.h"
#include "Core/HW/ProcessorInterface.h"
@@ -231,6 +232,10 @@ void MainWindow::ConnectMenuBar()
// File
connect(m_menu_bar, &MenuBar::Open, this, &MainWindow::Open);
connect(m_menu_bar, &MenuBar::Exit, this, &MainWindow::close);
+ connect(m_menu_bar, &MenuBar::EjectDisc, this, &MainWindow::EjectDisc);
+ connect(m_menu_bar, &MenuBar::ChangeDisc, this, &MainWindow::ChangeDisc);
+ connect(m_menu_bar, &MenuBar::BootDVDBackup, this,
+ [this](const QString& drive) { StartGame(drive); });
// Emulation
connect(m_menu_bar, &MenuBar::Pause, this, &MainWindow::Pause);
@@ -406,12 +411,30 @@ void MainWindow::ConnectStack()
tabifyDockWidget(m_log_widget, m_breakpoint_widget);
}
-void MainWindow::Open()
+QString MainWindow::PromptFileName()
{
- QString file = QFileDialog::getOpenFileName(
+ return QFileDialog::getOpenFileName(
this, tr("Select a File"), QDir::currentPath(),
tr("All GC/Wii files (*.elf *.dol *.gcm *.iso *.tgc *.wbfs *.ciso *.gcz *.wad);;"
"All Files (*)"));
+}
+
+void MainWindow::ChangeDisc()
+{
+ QString file = PromptFileName();
+
+ if (!file.isEmpty())
+ Core::RunAsCPUThread([&file] { DVDInterface::ChangeDisc(file.toStdString()); });
+}
+
+void MainWindow::EjectDisc()
+{
+ Core::RunAsCPUThread(DVDInterface::EjectDisc);
+}
+
+void MainWindow::Open()
+{
+ QString file = PromptFileName();
if (!file.isEmpty())
StartGame(file);
}