diff options
-rw-r--r-- | src/gui/charselectdialog.cpp | 10 | ||||
-rw-r--r-- | src/gui/charselectdialog.h | 2 | ||||
-rw-r--r-- | src/gui/logindialog.cpp | 10 | ||||
-rw-r--r-- | src/gui/logindialog.h | 2 | ||||
-rw-r--r-- | src/gui/registerdialog.cpp | 10 | ||||
-rw-r--r-- | src/gui/registerdialog.h | 2 | ||||
-rw-r--r-- | src/gui/serverdialog.cpp | 1 |
7 files changed, 33 insertions, 4 deletions
diff --git a/src/gui/charselectdialog.cpp b/src/gui/charselectdialog.cpp index fd9eb1e88..f87bb6b93 100644 --- a/src/gui/charselectdialog.cpp +++ b/src/gui/charselectdialog.cpp @@ -153,7 +153,7 @@ CharSelectDialog::CharSelectDialog(LoginData *const data): mDeleteDialog(nullptr), mDeleteIndex(-1) { - setCloseButton(false); + setCloseButton(true); const int optionalActions = Net::getLoginHandler() ->supportedOptionalActions(); @@ -250,7 +250,7 @@ void CharSelectDialog::action(const gcn::ActionEvent &event) } else if (eventId == "switch") { - Client::setState(STATE_SWITCH_LOGIN); + close(); } else if (eventId == "change_password") { @@ -557,6 +557,12 @@ bool CharSelectDialog::selectByName(const std::string &name, return false; } +void CharSelectDialog::close() +{ + Client::setState(STATE_SWITCH_LOGIN); + Window::close(); +} + CharacterDisplay::CharacterDisplay(const Widget2 *const widget, CharSelectDialog *const charSelectDialog) : diff --git a/src/gui/charselectdialog.h b/src/gui/charselectdialog.h index 87716f78e..c43bcca09 100644 --- a/src/gui/charselectdialog.h +++ b/src/gui/charselectdialog.h @@ -91,6 +91,8 @@ class CharSelectDialog final : public Window, void askPasswordForDeletion(const int index); + void close() override; + private: void attemptCharacterDelete(const int index); diff --git a/src/gui/logindialog.cpp b/src/gui/logindialog.cpp index c8304a61e..6d349243e 100644 --- a/src/gui/logindialog.cpp +++ b/src/gui/logindialog.cpp @@ -152,6 +152,8 @@ LoginDialog::LoginDialog(LoginData *const data, std::string serverName, mUpdateHost(updateHost), mServerName(serverName) { + setCloseButton(true); + Label *const serverLabel1 = new Label(this, _("Server:")); Label *const serverLabel2 = new Label(this, serverName); serverLabel2->adjustSize(); @@ -255,7 +257,7 @@ void LoginDialog::action(const gcn::ActionEvent &event) } else if (event.getId() == "server") { - Client::setState(STATE_SWITCH_SERVER); + close(); } else if (event.getId() == "register") { @@ -370,3 +372,9 @@ void LoginDialog::prepareUpdate() else LoginDialog::savedPasswordKey = "-"; } + +void LoginDialog::close() +{ + Client::setState(STATE_SWITCH_SERVER); + Window::close(); +} diff --git a/src/gui/logindialog.h b/src/gui/logindialog.h index bf22e01e6..dbe2fa167 100644 --- a/src/gui/logindialog.h +++ b/src/gui/logindialog.h @@ -72,6 +72,8 @@ class LoginDialog final : public Window, public gcn::ActionListener, */ void keyPressed(gcn::KeyEvent &keyEvent) override; + void close() override; + static std::string savedPasswordKey; static std::string savedPassword; diff --git a/src/gui/registerdialog.cpp b/src/gui/registerdialog.cpp index d803bd89e..53ce9b3d3 100644 --- a/src/gui/registerdialog.cpp +++ b/src/gui/registerdialog.cpp @@ -78,6 +78,8 @@ RegisterDialog::RegisterDialog(LoginData *const data): mOtherButton(nullptr), mWrongDataNoticeListener(new WrongDataNoticeListener) { + setCloseButton(true); + const int optionalActions = Net::getLoginHandler()-> supportedOptionalActions(); @@ -168,7 +170,7 @@ void RegisterDialog::action(const gcn::ActionEvent &event) { if (event.getId() == "cancel") { - Client::setState(STATE_LOGIN); + close(); } else if (event.getId() == "register" && canSubmit()) { @@ -301,3 +303,9 @@ bool RegisterDialog::canSubmit() const !mConfirmField->getText().empty() && Client::getState() == STATE_REGISTER; } + +void RegisterDialog::close() +{ + Client::setState(STATE_LOGIN); + Window::close(); +} diff --git a/src/gui/registerdialog.h b/src/gui/registerdialog.h index 83d76d772..02995de85 100644 --- a/src/gui/registerdialog.h +++ b/src/gui/registerdialog.h @@ -89,6 +89,8 @@ class RegisterDialog final : public Window, public gcn::ActionListener, */ void keyPressed(gcn::KeyEvent &keyEvent) override; + void close() override; + private: /** * Returns whether submit can be enabled. This is true in the register diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp index e07a222e2..9e3372dca 100644 --- a/src/gui/serverdialog.cpp +++ b/src/gui/serverdialog.cpp @@ -830,4 +830,5 @@ void ServerDialog::close() if (mDownload) mDownload->cancel(); Client::setState(STATE_FORCE_QUIT); + Window::close(); } |