summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt2/MenuBar.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/MenuBar.cpp
parent5e76f3a6d4a29df6b2794c4f6c790bd92e47f17d (diff)
Qt: Implement missing "File" menu items
Diffstat (limited to 'Source/Core/DolphinQt2/MenuBar.cpp')
-rw-r--r--Source/Core/DolphinQt2/MenuBar.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt2/MenuBar.cpp b/Source/Core/DolphinQt2/MenuBar.cpp
index 8b29277a41..c9f6641a70 100644
--- a/Source/Core/DolphinQt2/MenuBar.cpp
+++ b/Source/Core/DolphinQt2/MenuBar.cpp
@@ -19,6 +19,7 @@
#include "Common/FileUtil.h"
#include "Common/StringUtil.h"
+#include "Common/CDUtils.h"
#include "Core/Boot/Boot.h"
#include "Core/CommonTitles.h"
#include "Core/ConfigManager.h"
@@ -74,6 +75,10 @@ void MenuBar::OnEmulationStateChanged(Core::State state)
bool running = state != Core::State::Uninitialized;
bool playing = running && state != Core::State::Paused;
+ // File
+ m_eject_disc->setEnabled(running);
+ m_change_disc->setEnabled(running);
+
// Emulation
m_play_action->setEnabled(!playing);
m_play_action->setVisible(!playing);
@@ -122,11 +127,34 @@ void MenuBar::OnDebugModeToggled(bool enabled)
removeAction(m_symbols->menuAction());
}
+void MenuBar::AddDVDBackupMenu(QMenu* file_menu)
+{
+ m_backup_menu = file_menu->addMenu(tr("Boot from DVD Backup"));
+
+ const std::vector<std::string> drives = cdio_get_devices();
+ // Windows Limitation of 24 character drives
+ for (size_t i = 0; i < drives.size() && i < 24; i++)
+ {
+ auto drive = QString::fromStdString(drives[i]);
+ AddAction(m_backup_menu, drive, this, [this, drive] { emit BootDVDBackup(drive); });
+ }
+}
+
void MenuBar::AddFileMenu()
{
QMenu* file_menu = addMenu(tr("&File"));
m_open_action = AddAction(file_menu, tr("&Open..."), this, &MenuBar::Open,
QKeySequence(QStringLiteral("Ctrl+O")));
+
+ file_menu->addSeparator();
+
+ m_change_disc = AddAction(file_menu, tr("Change &Disc..."), this, &MenuBar::ChangeDisc);
+ m_eject_disc = AddAction(file_menu, tr("&Eject Disc"), this, &MenuBar::EjectDisc);
+
+ AddDVDBackupMenu(file_menu);
+
+ file_menu->addSeparator();
+
m_exit_action = AddAction(file_menu, tr("E&xit"), this, &MenuBar::Exit,
QKeySequence(QStringLiteral("Alt+F4")));
}