mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	added drag n drop feature
This commit is contained in:
		
							parent
							
								
									5472528202
								
							
						
					
					
						commit
						6bcd5ce047
					
				@ -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
 | 
			
		||||
 | 
			
		||||
@ -110,6 +110,7 @@ private:
 | 
			
		||||
     * @return true if the user confirmed
 | 
			
		||||
     */
 | 
			
		||||
    bool ConfirmClose();
 | 
			
		||||
    bool ConfirmChangeGame();
 | 
			
		||||
    void closeEvent(QCloseEvent* event) override;
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
@ -155,6 +156,11 @@ private:
 | 
			
		||||
    WaitTreeWidget* waitTreeWidget;
 | 
			
		||||
 | 
			
		||||
    QAction* actions_recent_files[max_recent_files_item];
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    void dropEvent(QDropEvent* event) override;
 | 
			
		||||
    void dragEnterEvent(QDragEnterEvent* event) override;
 | 
			
		||||
    void dragMoveEvent(QDragMoveEvent* event) override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // _CITRA_QT_MAIN_HXX_
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user