void ContactView::publicKeyEdited(const QString& public_key_string) { ui->id_edit->clear(); //clear keyhotee id field if (gMiningIsPossible) lookupPublicKey(); //check for validly hashed public key and enable/disable save button accordingly bool publicKeySemanticallyValid = false; bool public_key_is_valid = public_key_address::is_valid(public_key_string.toStdString(), &publicKeySemanticallyValid); ui->public_key->setStyleSheet("QLineEdit { color : black; }"); bool doubleContact = false; if (public_key_is_valid) { if (!publicKeySemanticallyValid) { ui->public_key->setStyleSheet("QLineEdit { color : red; }"); } if (! (doubleContact = existContactWithPublicKey(public_key_string.toStdString()))) { ui->id_status->setText(tr("Public Key Only Mode: valid key") ); ui->id_status->setStyleSheet("QLabel { color : green; }"); } } else { ui->id_status->setText(tr("Public Key Only Mode: not a valid key") ); ui->id_status->setStyleSheet("QLabel { color : red; }"); } setValid (public_key_is_valid && ! doubleContact && publicKeySemanticallyValid); }
void ContactView::lookupId() { try { std::string current_id = ui->id_edit->text().toUtf8().constData(); setValid (false); if (current_id.empty() ) { ui->id_status->setText(QString() ); return; } _current_record = bts::application::instance()->lookup_name(current_id); if (_current_record) { ui->id_status->setStyleSheet("QLabel { color : green; }"); ui->id_status->setText(tr("Registered") ); std::string public_key_string = public_key_address(_current_record->active_key); ui->public_key->setText(public_key_string.c_str() ); if (_address_book != nullptr) { if (! existContactWithPublicKey (public_key_string)) setValid (true); } } else { ui->id_status->setStyleSheet("QLabel { color : red; }"); ui->id_status->setText(tr("Unable to find ID") ); ui->public_key->setText(QString()); } } catch (const fc::exception& e) { ui->id_status->setText(e.to_string().c_str() ); } }