From 727ba2f2d05967cc5934c340587a9d4fd5ec550c Mon Sep 17 00:00:00 2001 From: FearlessTobi Date: Sat, 2 Nov 2019 19:22:36 +0100 Subject: [PATCH] citra_qt: add amiibo drag and drop support Co-Authored-By: Valentin Vanelslande --- src/yuzu/main.cpp | 21 +++++++++++++++++---- src/yuzu/main.h | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index d6bb18d24a..160613ee15 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -1839,6 +1839,10 @@ void GMainWindow::OnLoadAmiibo() { return; } + LoadAmiibo(filename); +} + +void GMainWindow::LoadAmiibo(const QString& filename) { Core::System& system{Core::System::GetInstance()}; Service::SM::ServiceManager& sm = system.ServiceManager(); auto nfc = sm.GetService("nfp:user"); @@ -2189,10 +2193,19 @@ static bool IsSingleFileDropEvent(QDropEvent* event) { } void GMainWindow::dropEvent(QDropEvent* event) { - if (IsSingleFileDropEvent(event) && ConfirmChangeGame()) { - const QMimeData* mimeData = event->mimeData(); - QString filename = mimeData->urls().at(0).toLocalFile(); - BootGame(filename); + if (!IsSingleFileDropEvent(event)) { + return; + } + + const QMimeData* mime_data = event->mimeData(); + const QString filename = mime_data->urls().at(0).toLocalFile(); + + if (emulation_running && QFileInfo(filename).suffix() == QStringLiteral("bin")) { + LoadAmiibo(filename); + } else { + if (ConfirmChangeGame()) { + BootGame(filename); + } } } diff --git a/src/yuzu/main.h b/src/yuzu/main.h index fd4b9ccf54..7f46bea2b8 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -142,6 +142,7 @@ private: void ShowTelemetryCallout(); void SetDiscordEnabled(bool state); + void LoadAmiibo(const QString& filename); void SelectAndSetCurrentUser();