[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::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_);
|
ImGui::BeginDisabled(!valid_gamertag_);
|
||||||
bool valid = profile_manager->IsGamertagValid(gamertag_string);
|
|
||||||
|
|
||||||
ImGui::BeginDisabled(!valid);
|
|
||||||
if (ImGui::Button("Create")) {
|
if (ImGui::Button("Create")) {
|
||||||
bool autologin = (profile_manager->GetAccountCount() == 0);
|
bool autologin = (profile_manager->GetAccountCount() == 0);
|
||||||
if (profile_manager->CreateProfile(gamertag_string, autologin,
|
if (profile_manager->CreateProfile(std::string(gamertag_), autologin,
|
||||||
migration_) &&
|
migration_) &&
|
||||||
migration_) {
|
migration_) {
|
||||||
emulator_->DataMigration(0xB13EBABEBABEBABE);
|
emulator_->DataMigration(0xB13EBABEBABEBABE);
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ class CreateProfileUI final : public XamDialog {
|
|||||||
bool has_opened_ = false;
|
bool has_opened_ = false;
|
||||||
bool migration_ = false;
|
bool migration_ = false;
|
||||||
char gamertag_[16] = "";
|
char gamertag_[16] = "";
|
||||||
|
bool valid_gamertag_ = false;
|
||||||
Emulator* emulator_;
|
Emulator* emulator_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -148,14 +148,14 @@ void SigninUI::OnDraw(ImGuiIO& io) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ImGui::TextUnformatted("Gamertag:");
|
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_;
|
ImGui::BeginDisabled(!valid_gamertag_);
|
||||||
bool valid = profile_manager_->IsGamertagValid(gamertag_string);
|
|
||||||
|
|
||||||
ImGui::BeginDisabled(!valid);
|
|
||||||
if (ImGui::Button("Create")) {
|
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');
|
std::fill(std::begin(gamertag_), std::end(gamertag_), '\0');
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
creating_profile_ = false;
|
creating_profile_ = false;
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ class SigninUI final : public XamDialog {
|
|||||||
|
|
||||||
bool creating_profile_ = false;
|
bool creating_profile_ = false;
|
||||||
char gamertag_[16] = "";
|
char gamertag_[16] = "";
|
||||||
|
bool valid_gamertag_ = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ui
|
} // namespace ui
|
||||||
|
|||||||
Reference in New Issue
Block a user