|
|
|
@ -54,7 +54,7 @@ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin); |
|
|
|
|
|
|
|
GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) { |
|
|
|
Pica::g_debug_context = Pica::DebugContext::Construct(); |
|
|
|
|
|
|
|
setAcceptDrops(true); |
|
|
|
ui.setupUi(this); |
|
|
|
statusBar()->hide(); |
|
|
|
|
|
|
|
@ -625,6 +625,40 @@ void GMainWindow::closeEvent(QCloseEvent* event) { |
|
|
|
QWidget::closeEvent(event); |
|
|
|
} |
|
|
|
|
|
|
|
bool IsSingleFileDropEvent(QDropEvent* event) { |
|
|
|
const QMimeData* mimeData = event->mimeData(); |
|
|
|
return mimeData->hasUrls() && mimeData->urls().length() == 1; |
|
|
|
} |
|
|
|
|
|
|
|
void GMainWindow::dropEvent(QDropEvent* event) { |
|
|
|
if (IsSingleFileDropEvent(event) && ConfirmChangeGame()) { |
|
|
|
const QMimeData* mimeData = event->mimeData(); |
|
|
|
QString filename = mimeData->urls().at(0).toLocalFile(); |
|
|
|
BootGame(filename.toStdString()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void GMainWindow::dragEnterEvent(QDragEnterEvent* event) { |
|
|
|
if (IsSingleFileDropEvent(event)) { |
|
|
|
event->acceptProposedAction(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void GMainWindow::dragMoveEvent(QDragMoveEvent* event) { |
|
|
|
event->acceptProposedAction(); |
|
|
|
} |
|
|
|
|
|
|
|
bool GMainWindow::ConfirmChangeGame() { |
|
|
|
if (emu_thread == nullptr) |
|
|
|
return true; |
|
|
|
|
|
|
|
auto answer = QMessageBox::question( |
|
|
|
this, tr("Citra"), |
|
|
|
tr("Are you sure you want to stop the emulation? Any unsaved progress will be lost."), |
|
|
|
QMessageBox::Yes | QMessageBox::No, QMessageBox::No); |
|
|
|
return answer != QMessageBox::No; |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef main
|
|
|
|
#undef main
|
|
|
|
#endif
|
|
|
|
|