mirror of https://github.com/PCSX2/pcsx2.git
Merge pull request #620 from turtleli/ui-fixes-again
More gui fixes ( Close console using X, Plugin/BIOS error dialog)
This commit is contained in:
commit
15944feea1
|
@ -60,17 +60,21 @@ DEFINE_EVENT_TYPE( pxEvt_ThreadTaskTimeout_SysExec );
|
|||
ScopedPtr<AppConfig> g_Conf;
|
||||
|
||||
template<typename DialogType>
|
||||
int AppOpenModalDialog( wxWindow* parent=NULL )
|
||||
int AppOpenModalDialog( wxString panel_name, wxWindow* parent=NULL )
|
||||
{
|
||||
if( wxWindow* window = wxFindWindowByName( L"Dialog:" + DialogType::GetNameStatic() ) )
|
||||
{
|
||||
window->SetFocus();
|
||||
if( wxDialog* dialog = wxDynamicCast( window, wxDialog ) )
|
||||
{
|
||||
// Switch to the requested panel.
|
||||
wxCommandEvent evt(pxEvt_SetSettingsPage);
|
||||
evt.SetString(panel_name);
|
||||
dialog->GetEventHandler()->ProcessEvent(evt);
|
||||
|
||||
// It's legal to call ShowModal on a non-modal dialog, therefore making
|
||||
// it modal in nature for the needs of whatever other thread of action wants
|
||||
// to block against it:
|
||||
|
||||
if( !dialog->IsModal() )
|
||||
{
|
||||
int result = dialog->ShowModal();
|
||||
|
@ -87,19 +91,23 @@ int AppOpenModalDialog( wxWindow* parent=NULL )
|
|||
|
||||
static bool HandlePluginError( BaseException& ex )
|
||||
{
|
||||
if( !pxDialogExists( L"CoreSettings" ) )
|
||||
if (!pxDialogExists(L"Dialog:" + Dialogs::ComponentsConfigDialog::GetNameStatic()))
|
||||
{
|
||||
if( !Msgbox::OkCancel( ex.FormatDisplayMessage() +
|
||||
_("\n\nPress Ok to go to the Plugin Configuration Panel.")
|
||||
) )
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Msgbox::Alert(ex.FormatDisplayMessage());
|
||||
}
|
||||
|
||||
g_Conf->ComponentsTabName = L"Plugins";
|
||||
|
||||
// TODO: Send a message to the panel to select the failed plugin.
|
||||
|
||||
return AppOpenModalDialog<Dialogs::ComponentsConfigDialog>() != wxID_CANCEL;
|
||||
return AppOpenModalDialog<Dialogs::ComponentsConfigDialog>(L"Plugins") != wxID_CANCEL;
|
||||
}
|
||||
|
||||
class PluginErrorEvent : public pxExceptionEvent
|
||||
|
@ -188,16 +196,20 @@ protected:
|
|||
|
||||
static bool HandleBIOSError(BaseException& ex)
|
||||
{
|
||||
if (!pxDialogExists(L"CoreSettings"))
|
||||
if (!pxDialogExists(L"Dialog:" + Dialogs::ComponentsConfigDialog::GetNameStatic()))
|
||||
{
|
||||
if (!Msgbox::OkCancel(ex.FormatDisplayMessage() + L"\n\n" + BIOS_GetMsg_Required()
|
||||
+ L"\n\n" + _("Press Ok to go to the BIOS Configuration Panel."), _("PS2 BIOS Error")))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
Msgbox::Alert(ex.FormatDisplayMessage() + L"\n\n" + BIOS_GetMsg_Required(), _("PS2 BIOS Error"));
|
||||
}
|
||||
|
||||
g_Conf->ComponentsTabName = L"BIOS";
|
||||
|
||||
return AppOpenModalDialog<Dialogs::ComponentsConfigDialog>() != wxID_CANCEL;
|
||||
return AppOpenModalDialog<Dialogs::ComponentsConfigDialog>(L"BIOS") != wxID_CANCEL;
|
||||
}
|
||||
|
||||
void BIOSLoadErrorEvent::InvokeEvent()
|
||||
|
|
|
@ -764,10 +764,9 @@ void ConsoleLogFrame::OnCloseWindow(wxCloseEvent& event)
|
|||
// instead of closing just hide the window to be able to Show() it later
|
||||
Show( false );
|
||||
|
||||
// Can't do this via a Connect() on the MainFrame because Close events are not commands,
|
||||
// and thus do not propagate up/down the event chain.
|
||||
if( wxWindow* main = GetParent() )
|
||||
wxStaticCast( main, MainEmuFrame )->OnLogBoxHidden();
|
||||
// In the nogui case there might not be a Main frame window.
|
||||
if (MainEmuFrame* mainframe = GetMainFramePtr())
|
||||
mainframe->OnLogBoxHidden();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue