void TextCommandEditor::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "magic") { mIsMagicCommand = true; showControls(Visible_true); } else if (eventId == "other") { mIsMagicCommand = false; showControls(Visible_false); } else if (eventId == "save") { save(); scheduleDelete(); } else if (eventId == "cancel") { scheduleDelete(); } else if (eventId == "delete") { deleteCommand(); scheduleDelete(); } }
void MailViewWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "close") { scheduleDelete(); } else if (eventId == "attach") { if (mGetAttachButton) mailHandler->getAttach(mMessage->id); } else if (eventId == "next") { if (mMessage) mailWindow->viewNext(mMessage->id); } else if (eventId == "prev") { if (mMessage) mailWindow->viewPrev(mMessage->id); } else if (eventId == "reply") { if (!mMessage) return; if (mailEditWindow) mailEditWindow->scheduleDelete(); CREATEWIDGETV0(mailEditWindow, MailEditWindow); mailEditWindow->setTo(mMessage->sender); mailEditWindow->setSubject("Re:" + mMessage->title); mailEditWindow->setMessage(">" + mMessage->text); scheduleDelete(); } }
void Wellcome::action(const gcn::ActionEvent &event) { //ResourceManager *resman = ResourceManager::getInstance(); if (event.getId() == "close") { if (mAgain->isSelected()) { config.setValue("Wellcome", 1); logger->log("Wellcome : 1"); } else { config.setValue("Wellcome", 0); logger->log("Wellcome : 0"); } scheduleDelete(); } else if (event.getId() == "next") { if (mCurrentSlide< mList.size()-1) { mCurrentSlide++; load(); } } else if (event.getId() == "prev") { if (mCurrentSlide> 0) { mCurrentSlide--; load(); } } }
void NpcPostDialog::setVisible(bool visible) { Window::setVisible(visible); if (!visible) scheduleDelete(); }
void CharCreateDialog::action(const gcn::ActionEvent &event) { const int numberOfColors = ColorDB::size(); const int numberOfHair = mPlayer->getNumOfHairstyles(); if (event.getId() == "create") { if (getName().length() >= 4) { // Attempt to create the character mCreateButton->setEnabled(false); attemptCharCreate(); } else { new OkDialog("Error", "Your name needs to be at least 4 characters.", this); } } else if (event.getId() == "cancel") scheduleDelete(); else if (event.getId() == "nextcolor") mPlayer->setHairStyle(mPlayer->getHairStyle(), (mPlayer->getHairColor() + 1) % numberOfColors); else if (event.getId() == "prevcolor") mPlayer->setHairStyle(mPlayer->getHairStyle(), (mPlayer->getHairColor() + numberOfColors - 1) % numberOfColors); else if (event.getId() == "nextstyle") mPlayer->setHairStyle((mPlayer->getHairStyle() + 1) % numberOfHair, mPlayer->getHairColor()); else if (event.getId() == "prevstyle") mPlayer->setHairStyle((mPlayer->getHairStyle() + numberOfHair - 1) % numberOfHair, mPlayer->getHairColor()); }
void ItemAmountWindow::action(const gcn::ActionEvent &event) { int amount = mItemAmountTextField->getValue(); if (event.getId() == "cancel") { close(); } else if (event.getId() == "plus" && amount < mMax) { amount++; } else if (event.getId() == "minus" && amount > 1) { amount--; } else if (event.getId() == "all") { amount = mMax; } else if (event.getId() == "slide") { amount = static_cast<int>(mItemAmountSlide->getValue()); } else if (event.getId() == "ok") { finish(mItem, amount, mUsage); scheduleDelete(); return; } mItemAmountTextField->setValue(amount); mItemAmountSlide->setValue(amount); }
void QuitDialog::action(const gcn::ActionEvent &event) { if (event.getId() == "ok") { if (mForceQuit->isSelected()) { Client::setState(STATE_FORCE_QUIT); } else if (mLogoutQuit->isSelected()) { Client::setState(STATE_EXIT); } else if (mSwitchAccountServer->isSelected()) { Client::setState(STATE_SWITCH_SERVER); } else if (mSwitchCharacter->isSelected()) { assert(Client::getState() == STATE_GAME); Net::getCharHandler()->switchCharacter(); } } scheduleDelete(); }
void EditDialog::action(const gcn::ActionEvent &event) { // Proxy button events to our listeners FOR_EACH (ActionListenerIterator, i, mActionListeners) (*i)->action(event); if (event.getId() == mEventOk) scheduleDelete(); }
void QuitDialog::action(const ActionEvent &event) { soundManager.playGuiSound(SOUND_HIDE_WINDOW); if (event.getId() == "ok") { if (viewport) { const Map *const map = viewport->getMap(); if (map) map->saveExtraLayer(); } if (mForceQuit->isSelected()) { client->setState(STATE_FORCE_QUIT); } else if (mLogoutQuit->isSelected()) { DialogsManager::closeDialogs(); client->setState(STATE_EXIT); } else if (mRate && mRate->isSelected()) { openBrowser("https://play.google.com/store/apps/details?" "id=org.evolonline.beta.manaplus"); config.setValue("rated", true); if (mNeedForceQuit) { client->setState(STATE_FORCE_QUIT); } else { DialogsManager::closeDialogs(); client->setState(STATE_EXIT); } } else if (Net::getGameHandler()->isConnected() && mSwitchAccountServer->isSelected()) { DialogsManager::closeDialogs(); client->setState(STATE_SWITCH_SERVER); } else if (mSwitchCharacter->isSelected()) { if (client->getState() == STATE_GAME) { Net::getCharServerHandler()->switchCharacter(); DialogsManager::closeDialogs(); serverConfig.write(); } } } scheduleDelete(); }
void InventoryWindow::close() { if (this == inventoryWindow) { setVisible(false); } else { Net::getInventoryHandler()->closeStorage(Inventory::STORAGE); scheduleDelete(); } }
void OkDialog::action(const gcn::ActionEvent &event) { // Proxy button events to our listeners ActionListenerIterator i; for (i = mActionListeners.begin(); i != mActionListeners.end(); ++i) { (*i)->action(event); } // Can we receive anything else anyway? if (event.getId() == "ok") scheduleDelete(); }
void SellDialog::setVisible(bool visible) { Window::setVisible(visible); if (visible) { mShopItemList->requestFocus(); } else { scheduleDelete(); } }
void BuySellDialog::setVisible(bool visible) { Window::setVisible(visible); if (visible) { if (mBuyButton) mBuyButton->requestFocus(); } else { scheduleDelete(); } }
void EditServerDialog::keyPressed(gcn::KeyEvent &keyEvent) { int actionId = static_cast<KeyEvent*>(&keyEvent)->getActionId(); if (actionId == Input::KEY_GUI_CANCEL) { scheduleDelete(); } else if (actionId == Input::KEY_GUI_SELECT || actionId == Input::KEY_GUI_SELECT2) { action(gcn::ActionEvent(nullptr, mOkButton->getActionEventId())); } }
void MailEditWindow::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "close") { scheduleDelete(); } else if (eventId == "send") { const int money = mMoneyField->getValue(); if (money) mailHandler->setAttachMoney(money); const Item *const tempItem = mInventory->getItem(0); if (tempItem) { const Inventory *const inv = PlayerInfo::getInventory(); if (inv) { const Item *const item = inv->findItem( tempItem->getId(), ItemColor_one); if (item) { mailHandler->setAttach(item->getInvIndex(), tempItem->getQuantity()); } } } std::string subject = mSubjectField->getText(); if (subject.empty()) { // TRANSLATORS: empty mail message subject subject.append(_("empty subject")); } mailHandler->send(mToField->getText(), subject, mMessageField->getText()); } else if (eventId == "add") { Item *const item = inventoryWindow->getSelectedItem(); if (!item) return; ItemAmountWindow::showWindow(ItemAmountWindowUsage::MailAdd, this, item); } }
void EditServerDialog::keyPressed(KeyEvent &event) { if (event.isConsumed()) return; const InputActionT actionId = event.getActionId(); if (actionId == InputAction::GUI_CANCEL) { scheduleDelete(); } else if (actionId == InputAction::GUI_SELECT || actionId == InputAction::GUI_SELECT2) { action(ActionEvent(nullptr, mOkButton->getActionEventId())); } }
void CallChatWidget::handleStateChanged (IMediaCall::State state) { switch (state) { case IMediaCall::SConnecting: Ui_.StatusLabel_->setText (tr ("Connecting...")); break; case IMediaCall::SActive: Ui_.StatusLabel_->setText (tr ("Active")); break; case IMediaCall::SDisconnecting: Ui_.StatusLabel_->setText (tr ("Disconnecting")); break; case IMediaCall::SFinished: scheduleDelete (); break; } }
CallChatWidget::CallChatWidget (QObject *call, QWidget *parent) : QWidget (parent) , CallObject_ (call) , Call_ (qobject_cast<IMediaCall*> (call)) { Ui_.setupUi (this); Ui_.StatusLabel_->setText (tr ("Initializing...")); connect (call, SIGNAL (destroyed ()), this, SLOT (scheduleDelete ())); connect (call, SIGNAL (stateChanged (LeechCraft::Azoth::IMediaCall::State)), this, SLOT (handleStateChanged (LeechCraft::Azoth::IMediaCall::State))); }
void Connection::deref( bool threadsafe ) { TRACE_ENTERLEAVE( ); unsigned int count = sys::General::interlockedDecrement( &m_ref ); if ( count == 1 ) { // // schedule deletion // if ( threadsafe ) { scheduleDelete( ); } else { delete this; } } }
CallChatWidget::CallChatWidget (QObject *call, QWidget *parent) : QWidget { parent } , CallObject_ { call } , Call_ { qobject_cast<IMediaCall*> (call) } { Ui_.setupUi (this); Ui_.StatusLabel_->setText (tr ("Initializing...")); if (Call_->GetDirection () == IMediaCall::DOut) Ui_.AcceptButton_->hide (); connect (call, SIGNAL (destroyed ()), this, SLOT (scheduleDelete ())); connect (call, SIGNAL (stateChanged (LeechCraft::Azoth::IMediaCall::State)), this, SLOT (handleStateChanged (LeechCraft::Azoth::IMediaCall::State))); }
void EditServerDialog::action(const gcn::ActionEvent &event) { if (event.getId() == "ok") { // Give focus back to the server dialog. mServerAddressField->requestFocus(); } if (event.getId() == "addServer") { // Check the given information if (mServerAddressField->getText().empty() || mPortField->getText().empty()) { OkDialog *dlg = new OkDialog(_("Error"), _("Please at least type both the address and the port " "of the server."), DIALOG_ERROR); dlg->addActionListener(this); } else { mCancelButton->setEnabled(false); mOkButton->setEnabled(false); mServer.name = mNameField->getText(); mServer.description = mDescriptionField->getText(); mServer.hostname = mServerAddressField->getText(); mServer.port = static_cast<short>(atoi( mPortField->getText().c_str())); if (mTypeField) { switch (mTypeField->getSelected()) { case 0: mServer.type = ServerInfo::TMWATHENA; break; case 1: mServer.type = ServerInfo::EVOL; break; #ifdef EATHENA_SUPPORT case 2: mServer.type = ServerInfo::EATHENA; break; #ifdef MANASERV_SUPPORT case 3: mServer.type = ServerInfo::MANASERV; break; #endif #else #ifdef MANASERV_SUPPORT case 2: mServer.type = ServerInfo::MANASERV; break; #endif #endif default: mServer.type = ServerInfo::UNKNOWN; } } else { mServer.type = ServerInfo::TMWATHENA; } // Tell the server has to be saved mServer.save = true; //Add server mServerDialog->updateServer(mServer, mIndex); scheduleDelete(); } } else if (event.getId() == "cancel") { scheduleDelete(); } }
void ItemAmountWindow::close() { delete mItemPopup; scheduleDelete(); }
void CharCreateDialog::action(const ActionEvent &event) { const std::string &id = event.getId(); if (id == "create") { if (getName().length() >= 4) { // Attempt to create the character mCreateButton->setEnabled(false); std::vector<int> atts; for (size_t i = 0, sz = mAttributeSlider.size(); i < sz; i++) { atts.push_back(static_cast<int>( mAttributeSlider[i]->getValue())); } const int characterSlot = mSlot; charServerHandler->newCharacter(getName(), characterSlot, mGender, mHairStyle, mHairColor, static_cast<unsigned char>(mRace), static_cast<unsigned char>(mLook), atts); } else { CREATEWIDGET(OkDialog, // TRANSLATORS: char creation error _("Error"), // TRANSLATORS: char creation error _("Your name needs to be at least 4 characters."), // TRANSLATORS: ok dialog button _("OK"), DialogType::ERROR, Modal_true, ShowCenter_true, nullptr, 260); } } else if (id == "cancel") { scheduleDelete(); } else if (id == "nextcolor") { mHairColor ++; updateHair(); } else if (id == "prevcolor") { mHairColor --; updateHair(); } else if (id == "nextstyle") { mHairStyle ++; updateHair(); } else if (id == "prevstyle") { mHairStyle --; updateHair(); } else if (id == "nextrace") { mRace ++; updateRace(); } else if (id == "prevrace") { mRace --; updateRace(); } else if (id == "nextlook") { mLook ++; updateLook(); } else if (id == "prevlook") { mLook --; updateLook(); } else if (id == "statslider") { updateSliders(); } else if (id == "action") { mAction ++; if (mAction >= 5) mAction = 0; updatePlayer(); } else if (id == "rotate") { mDirection ++; if (mDirection >= 4) mDirection = 0; updatePlayer(); } else if (id == "gender_m") { mGender = Gender::MALE; mPlayer->setGender(Gender::MALE); } else if (id == "gender_f") { mGender = Gender::FEMALE; mPlayer->setGender(Gender::FEMALE); } else if (id == "gender_u") { mGender = Gender::UNSPECIFIED; mPlayer->setGender(mDefaultGender); } }
void EditServerDialog::action(const ActionEvent &event) { const std::string &eventId = event.getId(); if (eventId == "ok") { // Give focus back to the server dialog. mServerAddressField->requestFocus(); } if (eventId == "addServer" || eventId == "connect") { // Check the given information if (mServerAddressField->getText().empty() || mPortField->getText().empty()) { OkDialog *const dlg = CREATEWIDGETR(OkDialog, // TRANSLATORS: edit server dialog error header _("Error"), // TRANSLATORS: edit server dialog error message _("Please at least type both the address and the port " "of the server."), // TRANSLATORS: ok dialog button _("OK"), DialogType::ERROR, Modal_true, ShowCenter_true, nullptr, 260); dlg->addActionListener(this); } else { mCancelButton->setEnabled(false); mOkButton->setEnabled(false); mServer.name = mNameField->getText(); mServer.description = mDescriptionField->getText(); mServer.onlineListUrl = mOnlineListUrlField->getText(); mServer.hostname = mServerAddressField->getText(); mServer.packetVersion = mPacketVersionField->getValue(); mServer.port = CAST_S16(atoi( mPortField->getText().c_str())); mServer.persistentIp = mPersistentIp->isSelected(); if (mTypeField) { switch (mTypeField->getSelected()) { #ifdef TMWA_SUPPORT case 0: mServer.type = ServerType::TMWATHENA; break; case 1: mServer.type = ServerType::EATHENA; break; case 2: mServer.type = ServerType::EVOL2; break; #else // TMWA_SUPPORT case 0: mServer.type = ServerType::EATHENA; break; case 1: mServer.type = ServerType::EVOL2; break; #endif // TMWA_SUPPORT default: mServer.type = ServerType::UNKNOWN; break; } } else { mServer.type = ServerType::TMWATHENA; } // Tell the server has to be saved mServer.save = true; // Add server mServerDialog->updateServer(mServer, mIndex); if (eventId == "connect") mServerDialog->connectToSelectedServer(); scheduleDelete(); } } else if (eventId == "cancel") { scheduleDelete(); } }
void CharCreateDialog::action(const gcn::ActionEvent &event) { if (event.getId() == "create") { if (Net::getNetworkType() == ServerInfo::MANASERV || getName().length() >= 4) { // Attempt to create the character mCreateButton->setEnabled(false); std::vector<int> atts; for (unsigned i = 0; i < mAttributeSlider.size(); i++) { atts.push_back((int) mAttributeSlider[i]->getValue()); } int characterSlot = mSlot; // On Manaserv, the slots start at 1, so we offset them. if (Net::getNetworkType() == ServerInfo::MANASERV) ++characterSlot; // Should avoid the most common crash case int hairStyle = mHairStylesIds.empty() ? 0 : mHairStylesIds.at(mHairStyleId); int hairColor = mHairColorsIds.empty() ? 0 : mHairColorsIds.at(mHairColorId); Net::getCharHandler()->newCharacter(getName(), characterSlot, mFemale->isSelected(), hairStyle, hairColor, atts); } else { new OkDialog(_("Error"), _("Your name needs to be at least 4 characters."), true, this); } } else if (event.getId() == "cancel") scheduleDelete(); else if (event.getId() == "nextcolor") { ++mHairColorId; updateHair(); } else if (event.getId() == "prevcolor") { --mHairColorId; updateHair(); } else if (event.getId() == "nextstyle") { ++mHairStyleId; updateHair(); } else if (event.getId() == "prevstyle") { --mHairStyleId; updateHair(); } else if (event.getId() == "statslider") { updateSliders(); } else if (event.getId() == "gender") { if (mMale->isSelected()) mPlayer->setGender(GENDER_MALE); else mPlayer->setGender(GENDER_FEMALE); } }
void CharCreateDialog::action(const gcn::ActionEvent &event) { const std::string id = event.getId(); if (id == "create") { if ( #ifdef MANASERV_SUPPORT Net::getNetworkType() == ServerInfo::MANASERV || #endif getName().length() >= 4) { // Attempt to create the character mCreateButton->setEnabled(false); std::vector<int> atts; for (unsigned i = 0; i < mAttributeSlider.size(); i++) { atts.push_back(static_cast<int>( mAttributeSlider[i]->getValue())); } int characterSlot = mSlot; #ifdef MANASERV_SUPPORT // On Manaserv, the slots start at 1, so we offset them. if (Net::getNetworkType() == ServerInfo::MANASERV) ++characterSlot; #endif Net::getCharHandler()->newCharacter(getName(), characterSlot, mFemale->isSelected(), mHairStyle, mHairColor, mRace, atts); } else { new OkDialog(_("Error"), _("Your name needs to be at least 4 characters."), DIALOG_ERROR, true, this); } } else if (id == "cancel") { scheduleDelete(); } else if (id == "nextcolor") { mHairColor ++; updateHair(); } else if (id == "prevcolor") { mHairColor --; updateHair(); } else if (id == "nextstyle") { mHairStyle ++; updateHair(); } else if (id == "prevstyle") { mHairStyle --; updateHair(); } else if (id == "nextrace") { mRace ++; updateRace(); } else if (id == "prevrace") { mRace --; updateRace(); } else if (id == "statslider") { updateSliders(); } else if (id == "gender") { if (mMale->isSelected()) mPlayer->setGender(GENDER_MALE); else mPlayer->setGender(GENDER_FEMALE); } else if (id == "action") { mAction ++; if (mAction >= 5) mAction = 0; updatePlayer(); } else if (id == "rotate") { mDirection ++; if (mDirection >= 4) mDirection = 0; updatePlayer(); } }
void ChangePasswordDialog::action(const gcn::ActionEvent &event) { if (event.getId() == "cancel") { scheduleDelete(); } else if (event.getId() == "change_password") { const std::string username = mLoginData->username.c_str(); const std::string oldPassword = mOldPassField->getText(); const std::string newFirstPass = mFirstPassField->getText(); const std::string newSecondPass = mSecondPassField->getText(); logger->log("ChangePasswordDialog::Password change, Username is %s", username.c_str()); std::stringstream errorMessage; int error = 0; // Check old Password if (oldPassword.empty()) { // No old password errorMessage << _("Enter the old password first."); error = 1; } else if (newFirstPass.length() < LEN_MIN_PASSWORD) { // First password too short errorMessage << strprintf(_("The new password needs to be at least " "%d characters long."), LEN_MIN_PASSWORD); error = 2; } else if (newFirstPass.length() > LEN_MAX_PASSWORD - 1 ) { // First password too long errorMessage << strprintf(_("The new password needs to be less " "than %d characters long."), LEN_MAX_PASSWORD); error = 2; } else if (newFirstPass != newSecondPass) { // Second Pass mismatch errorMessage << _("The new password entries mismatch."); error = 3; } if (error > 0) { if (error == 1) { mWrongDataNoticeListener->setTarget(this->mOldPassField); } else if (error == 2) { mWrongDataNoticeListener->setTarget(this->mFirstPassField); } else if (error == 3) { mWrongDataNoticeListener->setTarget(this->mSecondPassField); } OkDialog *dlg = new OkDialog(_("Error"), errorMessage.str()); dlg->addActionListener(mWrongDataNoticeListener); } else { // No errors detected, change account password. mChangePassButton->setEnabled(false); // Set the new password mLoginData->password = oldPassword; mLoginData->newPassword = newFirstPass; state = STATE_CHANGEPASSWORD_ATTEMPT; scheduleDelete(); } } }
void ItemAmountWindow::close() { keyboard.setEnabled(mEnabledKeyboard); scheduleDelete(); }
void MailEditWindow::close() { scheduleDelete(); }
void OkDialog::action(const gcn::ActionEvent &event) { setActionEventId(event.getId()); distributeActionEvent(); scheduleDelete(); }