[UI] Update gamertag input field only on change
No need to validate gamertag every frame
This commit is contained in:
@@ -39,15 +39,14 @@ void CreateProfileUI::OnDraw(ImGuiIO& io) {
|
||||
}
|
||||
|
||||
ImGui::TextUnformatted("Gamertag:");
|
||||
ImGui::InputText("##Gamertag", gamertag_, sizeof(gamertag_));
|
||||
if (ImGui::InputText("##Gamertag", gamertag_, sizeof(gamertag_))) {
|
||||
valid_gamertag_ = profile_manager->IsGamertagValid(std::string(gamertag_));
|
||||
}
|
||||
|
||||
const std::string gamertag_string = std::string(gamertag_);
|
||||
bool valid = profile_manager->IsGamertagValid(gamertag_string);
|
||||
|
||||
ImGui::BeginDisabled(!valid);
|
||||
ImGui::BeginDisabled(!valid_gamertag_);
|
||||
if (ImGui::Button("Create")) {
|
||||
bool autologin = (profile_manager->GetAccountCount() == 0);
|
||||
if (profile_manager->CreateProfile(gamertag_string, autologin,
|
||||
if (profile_manager->CreateProfile(std::string(gamertag_), autologin,
|
||||
migration_) &&
|
||||
migration_) {
|
||||
emulator_->DataMigration(0xB13EBABEBABEBABE);
|
||||
|
||||
@@ -35,6 +35,7 @@ class CreateProfileUI final : public XamDialog {
|
||||
bool has_opened_ = false;
|
||||
bool migration_ = false;
|
||||
char gamertag_[16] = "";
|
||||
bool valid_gamertag_ = false;
|
||||
Emulator* emulator_;
|
||||
};
|
||||
|
||||
|
||||
@@ -148,14 +148,14 @@ void SigninUI::OnDraw(ImGuiIO& io) {
|
||||
}
|
||||
|
||||
ImGui::TextUnformatted("Gamertag:");
|
||||
ImGui::InputText("##Gamertag", gamertag_, sizeof(gamertag_));
|
||||
if (ImGui::InputText("##Gamertag", gamertag_, sizeof(gamertag_))) {
|
||||
valid_gamertag_ =
|
||||
profile_manager_->IsGamertagValid(std::string(gamertag_));
|
||||
}
|
||||
|
||||
const std::string gamertag_string = gamertag_;
|
||||
bool valid = profile_manager_->IsGamertagValid(gamertag_string);
|
||||
|
||||
ImGui::BeginDisabled(!valid);
|
||||
ImGui::BeginDisabled(!valid_gamertag_);
|
||||
if (ImGui::Button("Create")) {
|
||||
profile_manager_->CreateProfile(gamertag_string, false);
|
||||
profile_manager_->CreateProfile(std::string(gamertag_), false);
|
||||
std::fill(std::begin(gamertag_), std::end(gamertag_), '\0');
|
||||
ImGui::CloseCurrentPopup();
|
||||
creating_profile_ = false;
|
||||
|
||||
@@ -45,6 +45,7 @@ class SigninUI final : public XamDialog {
|
||||
|
||||
bool creating_profile_ = false;
|
||||
char gamertag_[16] = "";
|
||||
bool valid_gamertag_ = false;
|
||||
};
|
||||
|
||||
} // namespace ui
|
||||
|
||||
Reference in New Issue
Block a user