diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 19aa035e6f..c289b86751 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -594,16 +594,6 @@ void GameSettingsScreen::CreateViews() { networkingSettings->Add(new CheckBox(&g_Config.bEnableAdhocServer, n->T("Enable built-in PRO Adhoc Server", "Enable built-in PRO Adhoc Server"))); networkingSettings->Add(new ChoiceWithValueDisplay(&g_Config.sMACAddress, n->T("Change Mac Address"), nullptr))->OnClick.Handle(this, &GameSettingsScreen::OnChangeMacAddress); networkingSettings->Add(new PopupSliderChoice(&g_Config.iPortOffset, 0, 60000, n->T("Port offset", "Port offset(0 = PSP compatibility)"), 100, screenManager())); - networkingSettings->Add(new ItemHeader(ms->T("Remote Disc Streaming"))); - networkingSettings->Add(new CheckBox(&g_Config.bRemoteISOManual , n->T("Manual Mode Client", "Manual Mode Client"))); - PopupTextInputChoice *remoteServer = networkingSettings->Add(new PopupTextInputChoice(&g_Config.sLastRemoteISOServer, n->T("Remote Server"), "", 255, screenManager())); - remoteServer->SetEnabledPtr(&g_Config.bRemoteISOManual); - PopupSliderChoice *remotePort = networkingSettings->Add(new PopupSliderChoice(&g_Config.iLastRemoteISOPort , 0, 65535, n->T("Remote Port", "Remote Port"), 100, screenManager())); - remotePort->SetEnabledPtr(&g_Config.bRemoteISOManual); - PopupTextInputChoice *remoteSubdir = networkingSettings->Add(new PopupTextInputChoice(&g_Config.sRemoteISOSubdir , n->T("Remote Subdirectory"), "", 255, screenManager())); - remoteSubdir->SetEnabledPtr(&g_Config.bRemoteISOManual); - remoteSubdir->OnChange.Handle(this, &GameSettingsScreen::OnChangeRemoteISOSubdir); - networkingSettings->Add(new PopupSliderChoice(&g_Config.iRemoteISOPort , 0, 65535, n->T("Local Server Port", "Local Server Port"), 100, screenManager())); ViewGroup *toolsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); toolsScroll->SetTag("GameSettingsTools"); @@ -1087,25 +1077,6 @@ UI::EventReturn GameSettingsScreen::OnChangeMacAddress(UI::EventParams &e) { return UI::EVENT_DONE; } -UI::EventReturn GameSettingsScreen::OnChangeRemoteISOSubdir(UI::EventParams &e) { - //Conform to HTTP standards - for (size_t i = 0; i < g_Config.sRemoteISOSubdir.length(); i++) - { - if (g_Config.sRemoteISOSubdir[i] == ' ') g_Config.sRemoteISOSubdir[i] = '+'; - if (g_Config.sRemoteISOSubdir[i] == '\\') g_Config.sRemoteISOSubdir[i] = '/'; - if (g_Config.sRemoteISOSubdir[i] == '?') { - g_Config.sRemoteISOSubdir.erase(i); //truncate for safety - break; - } - } - //Make sure it begins and ends with / - if (g_Config.sRemoteISOSubdir[0] != '/') - g_Config.sRemoteISOSubdir = "/" + g_Config.sRemoteISOSubdir; - if (g_Config.sRemoteISOSubdir[g_Config.sRemoteISOSubdir.length() - 1] != '/') - g_Config.sRemoteISOSubdir += "/"; - return UI::EVENT_DONE; -} - UI::EventReturn GameSettingsScreen::OnCombo_key(UI::EventParams &e) { screenManager()->push(new Combo_keyScreen(&g_Config.iComboMode)); return UI::EVENT_DONE; diff --git a/UI/GameSettingsScreen.h b/UI/GameSettingsScreen.h index 4f9f05b401..f37e6284fe 100644 --- a/UI/GameSettingsScreen.h +++ b/UI/GameSettingsScreen.h @@ -78,7 +78,6 @@ private: UI::EventReturn OnChangeNickname(UI::EventParams &e); UI::EventReturn OnChangeproAdhocServerAddress(UI::EventParams &e); UI::EventReturn OnChangeMacAddress(UI::EventParams &e); - UI::EventReturn OnChangeRemoteISOSubdir(UI::EventParams &e); UI::EventReturn OnClearRecents(UI::EventParams &e); UI::EventReturn OnFullscreenChange(UI::EventParams &e); UI::EventReturn OnDisplayLayoutEditor(UI::EventParams &e); diff --git a/UI/RemoteISOScreen.cpp b/UI/RemoteISOScreen.cpp index 3674f215db..90d67f3f36 100644 --- a/UI/RemoteISOScreen.cpp +++ b/UI/RemoteISOScreen.cpp @@ -370,6 +370,8 @@ void RemoteISOScreen::CreateViews() { rightColumnItems->Add(new Choice(sy->T("Share Games (Server)")))->OnClick.Handle(this, &RemoteISOScreen::HandleStartServer); browseChoice->SetEnabled(true); } + Choice *settingsChoice = new Choice(sy->T("Settings")); + rightColumnItems->Add(settingsChoice)->OnClick.Handle(this, &RemoteISOScreen::HandleSettings); rightColumnItems->Add(new Spacer(25.0)); rightColumnItems->Add(new Choice(di->T("Back"), "", false, new AnchorLayoutParams(150, WRAP_CONTENT, 10, NONE, NONE, 10)))->OnClick.Handle(this, &UIScreen::OnBack); @@ -415,6 +417,11 @@ UI::EventReturn RemoteISOScreen::HandleBrowse(UI::EventParams &e) { return EVENT_DONE; } +UI::EventReturn RemoteISOScreen::HandleSettings(UI::EventParams &e) { + screenManager()->push(new RemoteISOSettingsScreen()); + return EVENT_DONE; +} + RemoteISOConnectScreen::RemoteISOConnectScreen() : status_(ScanStatus::SCANNING), nextRetry_(0.0) { scanCancelled = false; @@ -614,3 +621,50 @@ void RemoteISOBrowseScreen::CreateViews() { upgradeBar_ = 0; } + +void RemoteISOSettingsScreen::CreateViews() { + I18NCategory *di = GetI18NCategory("Dialog"); + I18NCategory *n = GetI18NCategory("Networking"); + I18NCategory *ms = GetI18NCategory("MainSettings"); + + ViewGroup *remoteisoSettingsScroll = new ScrollView(ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, FILL_PARENT)); + remoteisoSettingsScroll->SetTag("GameSettingsNetworking"); + LinearLayout *remoteisoSettings = new LinearLayout(ORIENT_VERTICAL); + remoteisoSettings->SetSpacing(0); + remoteisoSettingsScroll->Add(remoteisoSettings); + + remoteisoSettings->Add(new ItemHeader(ms->T("Remote Disc Streaming"))); + remoteisoSettings->Add(new CheckBox(&g_Config.bRemoteISOManual, n->T("Manual Mode Client", "Manual Mode Client"))); + PopupTextInputChoice *remoteServer = remoteisoSettings->Add(new PopupTextInputChoice(&g_Config.sLastRemoteISOServer, n->T("Remote Server"), "", 255, screenManager())); + remoteServer->SetEnabledPtr(&g_Config.bRemoteISOManual); + PopupSliderChoice *remotePort = remoteisoSettings->Add(new PopupSliderChoice(&g_Config.iLastRemoteISOPort, 0, 65535, n->T("Remote Port", "Remote Port"), 100, screenManager())); + remotePort->SetEnabledPtr(&g_Config.bRemoteISOManual); + PopupTextInputChoice *remoteSubdir = remoteisoSettings->Add(new PopupTextInputChoice(&g_Config.sRemoteISOSubdir, n->T("Remote Subdirectory"), "", 255, screenManager())); + remoteSubdir->SetEnabledPtr(&g_Config.bRemoteISOManual); + remoteSubdir->OnChange.Handle(this, &RemoteISOSettingsScreen::OnChangeRemoteISOSubdir); + remoteisoSettings->Add(new PopupSliderChoice(&g_Config.iRemoteISOPort, 0, 65535, n->T("Local Server Port", "Local Server Port"), 100, screenManager())); + remoteisoSettings->Add(new Spacer(25.0)); + remoteisoSettings->Add(new Choice(di->T("Back"), "", false, new AnchorLayoutParams(150, WRAP_CONTENT, 10, NONE, NONE, 10)))->OnClick.Handle(this, &UIScreen::OnBack); + + root_ = new AnchorLayout(new LayoutParams(FILL_PARENT, FILL_PARENT)); + root_->Add(remoteisoSettings); +} + +UI::EventReturn RemoteISOSettingsScreen::OnChangeRemoteISOSubdir(UI::EventParams &e) { + //Conform to HTTP standards + for (size_t i = 0; i < g_Config.sRemoteISOSubdir.length(); i++) + { + if (g_Config.sRemoteISOSubdir[i] == ' ') g_Config.sRemoteISOSubdir[i] = '+'; + if (g_Config.sRemoteISOSubdir[i] == '\\') g_Config.sRemoteISOSubdir[i] = '/'; + if (g_Config.sRemoteISOSubdir[i] == '?') { + g_Config.sRemoteISOSubdir.erase(i); //truncate for safety + break; + } + } + //Make sure it begins and ends with / + if (g_Config.sRemoteISOSubdir[0] != '/') + g_Config.sRemoteISOSubdir = "/" + g_Config.sRemoteISOSubdir; + if (g_Config.sRemoteISOSubdir[g_Config.sRemoteISOSubdir.length() - 1] != '/') + g_Config.sRemoteISOSubdir += "/"; + return UI::EVENT_DONE; +} diff --git a/UI/RemoteISOScreen.h b/UI/RemoteISOScreen.h index d4bcd4074e..5effe8c34d 100644 --- a/UI/RemoteISOScreen.h +++ b/UI/RemoteISOScreen.h @@ -36,6 +36,7 @@ protected: UI::EventReturn HandleStartServer(UI::EventParams &e); UI::EventReturn HandleStopServer(UI::EventParams &e); UI::EventReturn HandleBrowse(UI::EventParams &e); + UI::EventReturn HandleSettings(UI::EventParams &e); bool serverRunning_; bool serverStopping_; @@ -83,3 +84,14 @@ protected: std::vector games_; }; + +class RemoteISOSettingsScreen : public UIScreenWithBackground { +public: +// RemoteISOSettingsScreen(); + +protected: + void CreateViews() override; + + UI::EventReturn OnChangeRemoteISOSubdir(UI::EventParams &e); + +}; \ No newline at end of file