示例#1
0
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);
}
示例#2
0
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() );
  }
}