@ -229,6 +229,7 @@ GMainWindow::GMainWindow(Core::System& system_)
SetDefaultUIGeometry ( ) ;
RestoreUIState ( ) ;
ConnectAppEvents ( ) ;
ConnectMenuEvents ( ) ;
ConnectWidgetEvents ( ) ;
@ -761,6 +762,21 @@ void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) {
}
}
bool GApplicationEventFilter : : eventFilter ( QObject * object , QEvent * event ) {
if ( event - > type ( ) = = QEvent : : FileOpen ) {
emit FileOpen ( static_cast < QFileOpenEvent * > ( event ) ) ;
return true ;
}
return false ;
}
void GMainWindow : : ConnectAppEvents ( ) {
const auto filter = new GApplicationEventFilter ( ) ;
QGuiApplication : : instance ( ) - > installEventFilter ( filter ) ;
connect ( filter , & GApplicationEventFilter : : FileOpen , this , & GMainWindow : : OnFileOpen ) ;
}
void GMainWindow : : ConnectWidgetEvents ( ) {
connect ( game_list , & GameList : : GameChosen , this , & GMainWindow : : OnGameListLoadFile ) ;
connect ( game_list , & GameList : : OpenDirectory , this , & GMainWindow : : OnGameListOpenDirectory ) ;
@ -2752,6 +2768,10 @@ bool GMainWindow::DropAction(QDropEvent* event) {
return true ;
}
void GMainWindow : : OnFileOpen ( const QFileOpenEvent * event ) {
BootGame ( event - > file ( ) ) ;
}
void GMainWindow : : dropEvent ( QDropEvent * event ) {
DropAction ( event ) ;
}