summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorspycrab <spycrab@users.noreply.github.com>2017-09-02 23:38:02 +0200
committerspycrab <spycrab@users.noreply.github.com>2017-09-04 10:40:47 +0200
commit4fdd4e2718c9ac2f1aec32b95d9676927607e275 (patch)
tree71250800b3a4a55c93e110289f5fe55bfbaeda20 /Source/Core
parent018ad987149196cb016d11e2ea651e36679bd994 (diff)
Qt: Support versions < 5.6
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/DolphinQt2/GameList/GameList.cpp21
-rw-r--r--Source/Core/DolphinQt2/Main.cpp3
-rw-r--r--Source/Core/DolphinQt2/MenuBar.cpp107
-rw-r--r--Source/Core/DolphinQt2/QtUtils/ActionHelper.h22
-rw-r--r--Source/Core/DolphinQt2/ToolBar.cpp19
5 files changed, 102 insertions, 70 deletions
diff --git a/Source/Core/DolphinQt2/GameList/GameList.cpp b/Source/Core/DolphinQt2/GameList/GameList.cpp
index 0b8a122b55..d59bf0bfc7 100644
--- a/Source/Core/DolphinQt2/GameList/GameList.cpp
+++ b/Source/Core/DolphinQt2/GameList/GameList.cpp
@@ -27,6 +27,7 @@
#include "DolphinQt2/GameList/GameList.h"
#include "DolphinQt2/GameList/GridProxyModel.h"
#include "DolphinQt2/GameList/ListProxyModel.h"
+#include "DolphinQt2/QtUtils/ActionHelper.h"
#include "DolphinQt2/QtUtils/DoubleClickEventFilter.h"
#include "DolphinQt2/Settings.h"
#include "DolphinQt2/WiiUpdate.h"
@@ -155,26 +156,26 @@ void GameList::ShowContextMenu(const QPoint&)
QMenu* menu = new QMenu(this);
DiscIO::Platform platform = game->GetPlatformID();
- menu->addAction(tr("&Properties"), this, &GameList::OpenProperties);
- menu->addAction(tr("&Wiki"), this, &GameList::OpenWiki);
+ AddAction(menu, tr("&Properties"), this, &GameList::OpenProperties);
+ AddAction(menu, tr("&Wiki"), this, &GameList::OpenWiki);
menu->addSeparator();
if (platform == DiscIO::Platform::GAMECUBE_DISC || platform == DiscIO::Platform::WII_DISC)
{
- menu->addAction(tr("Set as &default ISO"), this, &GameList::SetDefaultISO);
+ AddAction(menu, tr("Set as &default ISO"), this, &GameList::SetDefaultISO);
const auto blob_type = game->GetBlobType();
if (blob_type == DiscIO::BlobType::GCZ)
- menu->addAction(tr("Decompress ISO..."), this, &GameList::CompressISO);
+ AddAction(menu, tr("Decompress ISO..."), this, &GameList::CompressISO);
else if (blob_type == DiscIO::BlobType::PLAIN)
- menu->addAction(tr("Compress ISO..."), this, &GameList::CompressISO);
+ AddAction(menu, tr("Compress ISO..."), this, &GameList::CompressISO);
menu->addSeparator();
}
if (platform == DiscIO::Platform::WII_DISC)
{
- menu->addAction(tr("Perform System Update"), [this] {
+ AddAction(menu, tr("Perform System Update"), this, [this] {
WiiUpdate::PerformDiscUpdate(GetSelectedGame()->GetFilePath().toStdString(), this);
});
menu->setEnabled(!Core::IsRunning() || !SConfig::GetInstance().bWii);
@@ -206,13 +207,13 @@ void GameList::ShowContextMenu(const QPoint&)
if (platform == DiscIO::Platform::WII_WAD || platform == DiscIO::Platform::WII_DISC)
{
- menu->addAction(tr("Open Wii &save folder"), this, &GameList::OpenSaveFolder);
- menu->addAction(tr("Export Wii save (Experimental)"), this, &GameList::ExportWiiSave);
+ AddAction(menu, tr("Open Wii &save folder"), this, &GameList::OpenSaveFolder);
+ AddAction(menu, tr("Export Wii save (Experimental)"), this, &GameList::ExportWiiSave);
menu->addSeparator();
}
- menu->addAction(tr("Open &containing folder"), this, &GameList::OpenContainingFolder);
- menu->addAction(tr("Delete File..."), this, &GameList::DeleteFile);
+ AddAction(menu, tr("Open &containing folder"), this, &GameList::OpenContainingFolder);
+ AddAction(menu, tr("Delete File..."), this, &GameList::DeleteFile);
QAction* netplay_host = new QAction(tr("Host with NetPlay"), menu);
diff --git a/Source/Core/DolphinQt2/Main.cpp b/Source/Core/DolphinQt2/Main.cpp
index 47b6a0942a..c991469d28 100644
--- a/Source/Core/DolphinQt2/Main.cpp
+++ b/Source/Core/DolphinQt2/Main.cpp
@@ -52,7 +52,10 @@ bool QtMsgAlertHandler(const char* caption, const char* text, bool yes_no, MsgTy
// /SubSystem:Windows
int main(int argc, char* argv[])
{
+#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+#endif
+
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
QCoreApplication::setOrganizationName(QStringLiteral("Dolphin Emulator"));
QCoreApplication::setOrganizationDomain(QStringLiteral("dolphin-emu.org"));
diff --git a/Source/Core/DolphinQt2/MenuBar.cpp b/Source/Core/DolphinQt2/MenuBar.cpp
index 996c21b024..d5f31a37b7 100644
--- a/Source/Core/DolphinQt2/MenuBar.cpp
+++ b/Source/Core/DolphinQt2/MenuBar.cpp
@@ -25,6 +25,7 @@
#include "DiscIO/NANDImporter.h"
#include "DolphinQt2/AboutDialog.h"
#include "DolphinQt2/GameList/GameFile.h"
+#include "DolphinQt2/QtUtils/ActionHelper.h"
#include "DolphinQt2/Settings.h"
MenuBar::MenuBar(QWidget* parent) : QMenuBar(parent)
@@ -100,71 +101,75 @@ void MenuBar::EmulationStopped()
void MenuBar::AddFileMenu()
{
QMenu* file_menu = addMenu(tr("&File"));
- m_open_action = file_menu->addAction(tr("&Open..."), this, &MenuBar::Open,
- QKeySequence(QStringLiteral("Ctrl+O")));
- m_exit_action = file_menu->addAction(tr("E&xit"), this, &MenuBar::Exit,
- QKeySequence(QStringLiteral("Alt+F4")));
+ m_open_action = AddAction(file_menu, tr("&Open..."), this, &MenuBar::Open,
+ QKeySequence(QStringLiteral("Ctrl+O")));
+ m_exit_action = AddAction(file_menu, tr("E&xit"), this, &MenuBar::Exit,
+ QKeySequence(QStringLiteral("Alt+F4")));
}
void MenuBar::AddToolsMenu()
{
QMenu* tools_menu = addMenu(tr("&Tools"));
- tools_menu->addAction(tr("Import Wii Save..."), this, &MenuBar::ImportWiiSave);
- tools_menu->addAction(tr("Export All Wii Saves"), this, &MenuBar::ExportWiiSaves);
+ AddAction(tools_menu, tr("Import Wii Save..."), this, &MenuBar::ImportWiiSave);
+ AddAction(tools_menu, tr("Export All Wii Saves"), this, &MenuBar::ExportWiiSaves);
tools_menu->addSeparator();
- m_wad_install_action = tools_menu->addAction(tr("Install WAD..."), this, &MenuBar::InstallWAD);
+ m_wad_install_action = AddAction(tools_menu, tr("Install WAD..."), this, &MenuBar::InstallWAD);
tools_menu->addSeparator();
QMenu* gc_ipl = tools_menu->addMenu(tr("Load GameCube Main Menu"));
- m_ntscj_ipl = gc_ipl->addAction(tr("NTSC-J"), this,
- [this] { emit BootGameCubeIPL(DiscIO::Region::NTSC_J); });
- m_ntscu_ipl = gc_ipl->addAction(tr("NTSC-U"), this,
- [this] { emit BootGameCubeIPL(DiscIO::Region::NTSC_U); });
+ m_ntscj_ipl = AddAction(gc_ipl, tr("NTSC-J"), this,
+ [this] { emit BootGameCubeIPL(DiscIO::Region::NTSC_J); });
+ m_ntscu_ipl = AddAction(gc_ipl, tr("NTSC-U"), this,
+ [this] { emit BootGameCubeIPL(DiscIO::Region::NTSC_U); });
m_pal_ipl =
- gc_ipl->addAction(tr("PAL"), this, [this] { emit BootGameCubeIPL(DiscIO::Region::PAL); });
+ AddAction(gc_ipl, tr("PAL"), this, [this] { emit BootGameCubeIPL(DiscIO::Region::PAL); });
- tools_menu->addAction(tr("Start &NetPlay..."), this, &MenuBar::StartNetPlay);
+ AddAction(tools_menu, tr("Start &NetPlay..."), this, &MenuBar::StartNetPlay);
tools_menu->addSeparator();
// Label will be set by a NANDRefresh later
- m_boot_sysmenu = tools_menu->addAction(QStringLiteral(""), [this] { emit BootWiiSystemMenu(); });
- m_import_backup = tools_menu->addAction(tr("Import BootMii NAND Backup..."),
- [this] { emit ImportNANDBackup(); });
+ m_boot_sysmenu =
+ AddAction(gc_ipl, QStringLiteral(""), this, [this] { emit BootWiiSystemMenu(); });
+ m_import_backup = AddAction(gc_ipl, tr("Import BootMii NAND Backup..."), this,
+ [this] { emit ImportNANDBackup(); });
- m_extract_certificates = tools_menu->addAction(tr("Extract Certificates from NAND"), this,
- &MenuBar::NANDExtractCertificates);
+ m_extract_certificates = AddAction(tools_menu, tr("Extract Certificates from NAND"), this,
+ &MenuBar::NANDExtractCertificates);
m_boot_sysmenu->setEnabled(false);
connect(&Settings::Instance(), &Settings::NANDRefresh, [this] { UpdateToolsMenu(false); });
m_perform_online_update_menu = tools_menu->addMenu(tr("Perform Online System Update"));
- m_perform_online_update_for_current_region = m_perform_online_update_menu->addAction(
- tr("Current Region"), [this] { emit PerformOnlineUpdate(""); });
+ m_perform_online_update_for_current_region =
+ AddAction(m_perform_online_update_menu, tr("Current Region"), this,
+ [this] { emit PerformOnlineUpdate(""); });
m_perform_online_update_menu->addSeparator();
- m_perform_online_update_menu->addAction(tr("Europe"),
- [this] { emit PerformOnlineUpdate("EUR"); });
- m_perform_online_update_menu->addAction(tr("Japan"), [this] { emit PerformOnlineUpdate("JPN"); });
- m_perform_online_update_menu->addAction(tr("Korea"), [this] { emit PerformOnlineUpdate("KOR"); });
- m_perform_online_update_menu->addAction(tr("United States"),
- [this] { emit PerformOnlineUpdate("USA"); });
+ AddAction(m_perform_online_update_menu, tr("Europe"), this,
+ [this] { emit PerformOnlineUpdate("EUR"); });
+ AddAction(m_perform_online_update_menu, tr("Japan"), this,
+ [this] { emit PerformOnlineUpdate("JPN"); });
+ AddAction(m_perform_online_update_menu, tr("Korea"), this,
+ [this] { emit PerformOnlineUpdate("KOR"); });
+ AddAction(m_perform_online_update_menu, tr("United States"), this,
+ [this] { emit PerformOnlineUpdate("USA"); });
}
void MenuBar::AddEmulationMenu()
{
QMenu* emu_menu = addMenu(tr("&Emulation"));
- m_play_action = emu_menu->addAction(tr("&Play"), this, &MenuBar::Play);
- m_pause_action = emu_menu->addAction(tr("&Pause"), this, &MenuBar::Pause);
- m_stop_action = emu_menu->addAction(tr("&Stop"), this, &MenuBar::Stop);
- m_reset_action = emu_menu->addAction(tr("&Reset"), this, &MenuBar::Reset);
- m_fullscreen_action = emu_menu->addAction(tr("Toggle &Fullscreen"), this, &MenuBar::Fullscreen);
- m_frame_advance_action = emu_menu->addAction(tr("&Frame Advance"), this, &MenuBar::FrameAdvance);
+ m_play_action = AddAction(emu_menu, tr("&Play"), this, &MenuBar::Play);
+ m_pause_action = AddAction(emu_menu, tr("&Pause"), this, &MenuBar::Pause);
+ m_stop_action = AddAction(emu_menu, tr("&Stop"), this, &MenuBar::Stop);
+ m_reset_action = AddAction(emu_menu, tr("&Reset"), this, &MenuBar::Reset);
+ m_fullscreen_action = AddAction(emu_menu, tr("Toggle &Fullscreen"), this, &MenuBar::Fullscreen);
+ m_frame_advance_action = AddAction(emu_menu, tr("&Frame Advance"), this, &MenuBar::FrameAdvance);
- m_screenshot_action = emu_menu->addAction(tr("Take Screenshot"), this, &MenuBar::Screenshot);
+ m_screenshot_action = AddAction(emu_menu, tr("Take Screenshot"), this, &MenuBar::Screenshot);
emu_menu->addSeparator();
@@ -177,10 +182,10 @@ void MenuBar::AddEmulationMenu()
void MenuBar::AddStateLoadMenu(QMenu* emu_menu)
{
m_state_load_menu = emu_menu->addMenu(tr("&Load State"));
- m_state_load_menu->addAction(tr("Load State from File"), this, &MenuBar::StateLoad);
- m_state_load_menu->addAction(tr("Load State from Selected Slot"), this, &MenuBar::StateLoadSlot);
+ AddAction(m_state_load_menu, tr("Load State from File"), this, &MenuBar::StateLoad);
+ AddAction(m_state_load_menu, tr("Load State from Selected Slot"), this, &MenuBar::StateLoadSlot);
m_state_load_slots_menu = m_state_load_menu->addMenu(tr("Load State from Slot"));
- m_state_load_menu->addAction(tr("Undo Load State"), this, &MenuBar::StateLoadUndo);
+ AddAction(m_state_load_menu, tr("Undo Load State"), this, &MenuBar::StateLoadUndo);
for (int i = 1; i <= 10; i++)
{
@@ -193,11 +198,11 @@ void MenuBar::AddStateLoadMenu(QMenu* emu_menu)
void MenuBar::AddStateSaveMenu(QMenu* emu_menu)
{
m_state_save_menu = emu_menu->addMenu(tr("Sa&ve State"));
- m_state_save_menu->addAction(tr("Save State to File"), this, &MenuBar::StateSave);
- m_state_save_menu->addAction(tr("Save State to Selected Slot"), this, &MenuBar::StateSaveSlot);
- m_state_save_menu->addAction(tr("Save State to Oldest Slot"), this, &MenuBar::StateSaveOldest);
+ AddAction(m_state_save_menu, tr("Save State to File"), this, &MenuBar::StateSave);
+ AddAction(m_state_save_menu, tr("Save State to Selected Slot"), this, &MenuBar::StateSaveSlot);
+ AddAction(m_state_save_menu, tr("Save State to Oldest Slot"), this, &MenuBar::StateSaveOldest);
m_state_save_slots_menu = m_state_save_menu->addMenu(tr("Save State to Slot"));
- m_state_save_menu->addAction(tr("Undo Save State"), this, &MenuBar::StateSaveUndo);
+ AddAction(m_state_save_menu, tr("Undo Save State"), this, &MenuBar::StateSaveUndo);
for (int i = 1; i <= 10; i++)
{
@@ -272,12 +277,12 @@ void MenuBar::AddViewMenu()
void MenuBar::AddOptionsMenu()
{
QMenu* options_menu = addMenu(tr("&Options"));
- options_menu->addAction(tr("Co&nfiguration"), this, &MenuBar::Configure);
+ AddAction(options_menu, tr("Co&nfiguration"), this, &MenuBar::Configure);
options_menu->addSeparator();
- options_menu->addAction(tr("&Graphics Settings"), this, &MenuBar::ConfigureGraphics);
- options_menu->addAction(tr("&Audio Settings"), this, &MenuBar::ConfigureAudio);
- options_menu->addAction(tr("&Controller Settings"), this, &MenuBar::ConfigureControllers);
- options_menu->addAction(tr("&Hotkey Settings"), this, &MenuBar::ConfigureHotkeys);
+ AddAction(options_menu, tr("&Graphics Settings"), this, &MenuBar::ConfigureGraphics);
+ AddAction(options_menu, tr("&Audio Settings"), this, &MenuBar::ConfigureAudio);
+ AddAction(options_menu, tr("&Controller Settings"), this, &MenuBar::ConfigureControllers);
+ AddAction(options_menu, tr("&Hotkey Settings"), this, &MenuBar::ConfigureHotkeys);
}
void MenuBar::AddHelpMenu()
@@ -296,7 +301,7 @@ void MenuBar::AddHelpMenu()
});
help_menu->addSeparator();
- help_menu->addAction(tr("&About"), this, &MenuBar::ShowAboutDialog);
+ AddAction(help_menu, tr("&About"), this, &MenuBar::ShowAboutDialog);
}
void MenuBar::AddGameListTypeSection(QMenu* view_menu)
@@ -413,13 +418,13 @@ void MenuBar::AddMovieMenu()
{
auto* movie_menu = addMenu(tr("&Movie"));
m_recording_start =
- movie_menu->addAction(tr("Start Recording Input"), [this] { emit StartRecording(); });
+ AddAction(movie_menu, tr("Start Recording Input"), this, [this] { emit StartRecording(); });
m_recording_play =
- movie_menu->addAction(tr("Play Input Recording..."), [this] { emit PlayRecording(); });
- m_recording_stop =
- movie_menu->addAction(tr("Stop Playing/Recording Input"), [this] { emit StopRecording(); });
+ AddAction(movie_menu, tr("Play Input Recording..."), this, [this] { emit PlayRecording(); });
+ m_recording_stop = AddAction(movie_menu, tr("Stop Playing/Recording Input"), this,
+ [this] { emit StopRecording(); });
m_recording_export =
- movie_menu->addAction(tr("Export Recording..."), [this] { emit ExportRecording(); });
+ AddAction(movie_menu, tr("Export Recording..."), this, [this] { emit ExportRecording(); });
m_recording_start->setEnabled(false);
m_recording_play->setEnabled(false);
diff --git a/Source/Core/DolphinQt2/QtUtils/ActionHelper.h b/Source/Core/DolphinQt2/QtUtils/ActionHelper.h
new file mode 100644
index 0000000000..61d200d5ad
--- /dev/null
+++ b/Source/Core/DolphinQt2/QtUtils/ActionHelper.h
@@ -0,0 +1,22 @@
+// Copyright 2017 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <QAction>
+#include <QKeySequence>
+#include <QString>
+
+// Since we have to support Qt < 5.6, we need our own implementation of addAction(QString&
+// text,QObject*,PointerToMemberFunction);
+template <typename ParentClass, typename RecieverClass, typename Func>
+QAction* AddAction(ParentClass* parent, const QString& text, const RecieverClass* receiver,
+ Func slot, const QKeySequence& shortcut = 0)
+{
+ QAction* action = parent->addAction(text);
+ action->setShortcut(shortcut);
+ action->connect(action, &QAction::triggered, receiver, slot);
+
+ return action;
+}
diff --git a/Source/Core/DolphinQt2/ToolBar.cpp b/Source/Core/DolphinQt2/ToolBar.cpp
index 19a12b467b..0ea284a272 100644
--- a/Source/Core/DolphinQt2/ToolBar.cpp
+++ b/Source/Core/DolphinQt2/ToolBar.cpp
@@ -4,6 +4,7 @@
#include <QIcon>
+#include "DolphinQt2/QtUtils/ActionHelper.h"
#include "DolphinQt2/Resources.h"
#include "DolphinQt2/Settings.h"
#include "DolphinQt2/ToolBar.h"
@@ -60,33 +61,33 @@ void ToolBar::EmulationStopped()
void ToolBar::MakeActions()
{
constexpr int button_width = 65;
- m_open_action = addAction(tr("Open"), this, &ToolBar::OpenPressed);
+ m_open_action = AddAction(this, tr("Open"), this, &ToolBar::OpenPressed);
widgetForAction(m_open_action)->setMinimumWidth(button_width);
- m_play_action = addAction(tr("Play"), this, &ToolBar::PlayPressed);
+ m_play_action = AddAction(this, tr("Play"), this, &ToolBar::PlayPressed);
widgetForAction(m_play_action)->setMinimumWidth(button_width);
- m_pause_action = addAction(tr("Pause"), this, &ToolBar::PausePressed);
+ m_pause_action = AddAction(this, tr("Pause"), this, &ToolBar::PausePressed);
widgetForAction(m_pause_action)->setMinimumWidth(button_width);
- m_stop_action = addAction(tr("Stop"), this, &ToolBar::StopPressed);
+ m_stop_action = AddAction(this, tr("Stop"), this, &ToolBar::StopPressed);
widgetForAction(m_stop_action)->setMinimumWidth(button_width);
- m_fullscreen_action = addAction(tr("FullScr"), this, &ToolBar::FullScreenPressed);
+ m_fullscreen_action = AddAction(this, tr("FullScr"), this, &ToolBar::FullScreenPressed);
widgetForAction(m_fullscreen_action)->setMinimumWidth(button_width);
- m_screenshot_action = addAction(tr("ScrShot"), this, &ToolBar::ScreenShotPressed);
+ m_screenshot_action = AddAction(this, tr("ScrShot"), this, &ToolBar::ScreenShotPressed);
widgetForAction(m_screenshot_action)->setMinimumWidth(button_width);
addSeparator();
- m_config_action = addAction(tr("Config"), this, &ToolBar::SettingsPressed);
+ m_config_action = AddAction(this, tr("Config"), this, &ToolBar::SettingsPressed);
widgetForAction(m_config_action)->setMinimumWidth(button_width);
- m_graphics_action = addAction(tr("Graphics"), this, &ToolBar::GraphicsPressed);
+ m_graphics_action = AddAction(this, tr("Graphics"), this, &ToolBar::GraphicsPressed);
widgetForAction(m_graphics_action)->setMinimumWidth(button_width);
- m_controllers_action = addAction(tr("Controllers"), this, &ToolBar::ControllersPressed);
+ m_controllers_action = AddAction(this, tr("Controllers"), this, &ToolBar::ControllersPressed);
widgetForAction(m_controllers_action)->setMinimumWidth(button_width);
m_controllers_action->setEnabled(true);
}