void LoginPage::init() { QMap<QString, QString> countryCodes = Utils::GetCountryCodes(); combobox_->setEditBoxClass("CountrySearchEdit"); combobox_->setComboboxViewClass("CountrySearchView"); combobox_->setClass("CountySearchWidgetInternal"); combobox_->setPlaceholder(QT_TRANSLATE_NOOP("login_page","Type country or code")); country_search_widget_->layout()->addWidget(combobox_); combobox_->setSources(countryCodes); connect(combobox_, SIGNAL(selected(QString)), this, SLOT(countrySelected(QString)), Qt::QueuedConnection); connect(this, SIGNAL(country(QString)), this, SLOT(redrawCountryCode()), Qt::QueuedConnection); connect(next_page_link_, SIGNAL(clicked()), this, SLOT(nextPage()), Qt::QueuedConnection); connect(prev_page_link_, SIGNAL(clicked()), this, SLOT(prevPage()), Qt::QueuedConnection); connect(edit_phone_button_, SIGNAL(clicked()), this, SLOT(prevPage()), Qt::QueuedConnection); connect(edit_phone_button_, SIGNAL(clicked()), this, SLOT(stats_edit_phone()), Qt::QueuedConnection); connect(switch_login_link_, SIGNAL(clicked()), this, SLOT(switchLoginType()), Qt::QueuedConnection); connect(resend_button_, SIGNAL(clicked()), this, SLOT(sendCode()), Qt::QueuedConnection); connect(resend_button_, SIGNAL(clicked()), this, SLOT(stats_resend_sms()), Qt::QueuedConnection); connect(timer_, SIGNAL(timeout()), this, SLOT(updateTimer()), Qt::QueuedConnection); connect(proxy_settings_link_, SIGNAL(clicked()), this, SLOT(openProxySettings()), Qt::QueuedConnection); country_code_->setProperty("CountryCodeEdit", true); phone_->setProperty("PhoneNumberEdit", true); phone_->setAttribute(Qt::WA_MacShowFocusRect, false); phone_->setPlaceholderText(QT_TRANSLATE_NOOP("login_page","your phone number")); phone_widget_->layout()->addWidget(country_code_); phone_widget_->layout()->addWidget(phone_); Testing::setAccessibleName(phone_, "StartWindowPhoneNumberField"); connect(country_code_, SIGNAL(focusIn()), this, SLOT(setPhoneFocusIn()), Qt::QueuedConnection); connect(country_code_, SIGNAL(focusOut()), this, SLOT(setPhoneFocusOut()), Qt::QueuedConnection); connect(phone_, SIGNAL(focusIn()), this, SLOT(setPhoneFocusIn()), Qt::QueuedConnection); connect(phone_, SIGNAL(focusOut()), this, SLOT(setPhoneFocusOut()), Qt::QueuedConnection); connect(uin_login_edit_, SIGNAL(textChanged(QString)), this, SLOT(clearErrors()), Qt::QueuedConnection); connect(uin_password_edit_, SIGNAL(textEdited(QString)), this, SLOT(clearErrors()), Qt::QueuedConnection); connect(code_edit_, SIGNAL(textChanged(QString)), this, SLOT(clearErrors()), Qt::QueuedConnection); connect(code_edit_, SIGNAL(textChanged(QString)), this, SLOT(codeEditChanged(QString)), Qt::QueuedConnection); connect(country_code_, SIGNAL(textChanged(QString)), this, SLOT(clearErrors()), Qt::QueuedConnection); connect(country_code_, SIGNAL(textEdited(QString)), this, SLOT(countryCodeChanged(QString)), Qt::QueuedConnection); connect(phone_, SIGNAL(textChanged(QString)), this, SLOT(clearErrors()), Qt::QueuedConnection); connect(phone_, SIGNAL(emptyTextBackspace()), this, SLOT(emptyPhoneRemove()), Qt::QueuedConnection); QObject::connect(Ui::GetDispatcher(), SIGNAL(getSmsResult(int64_t, int, int)), this, SLOT(getSmsResult(int64_t, int, int)), Qt::DirectConnection); QObject::connect(Ui::GetDispatcher(), SIGNAL(loginResult(int64_t, int)), this, SLOT(loginResult(int64_t, int)), Qt::DirectConnection); QObject::connect(Ui::GetDispatcher(), SIGNAL(loginResultAttachUin(int64_t, int)), this, SLOT(loginResultAttachUin(int64_t, int)), Qt::DirectConnection); QObject::connect(Ui::GetDispatcher(), SIGNAL(loginResultAttachPhone(int64_t, int)), this, SLOT(loginResultAttachPhone(int64_t, int)), Qt::DirectConnection); country_code_->setValidator(new QRegExpValidator(QRegExp("[\\+\\d]\\d*"))); phone_->setValidator(new QRegExpValidator(QRegExp("\\d*"))); code_edit_->setValidator(new QRegExpValidator(QRegExp("\\d*"))); combobox_->selectItem(Utils::GetTranslator()->getCurrentPhoneCode()); error_label_->hide(); phone_->setFocus(); country_code_->setFocusPolicy(Qt::ClickFocus); initLoginSubPage(SUBPAGE_PHONE_LOGIN_INDEX); }
void LoginPage::countrySelected(QString code) { if (prev_country_code_ == code) return; if (!prev_country_code_.isEmpty()) { core::stats::event_props_type props; props.push_back(std::make_pair("prev_code", prev_country_code_.toStdString())); props.push_back(std::make_pair("next_code", code.toStdString())); GetDispatcher()->post_stats_to_core(core::stats::stats_event_names::reg_edit_country, props); } prev_country_code_ = code; country_code_->setText(code); redrawCountryCode(); phone_->setFocus(); }