Exemplo n.º 1
0
void ContactView::ToDialog()
{
  if (isAddingNewContact ()) 
  {
    setValid(false);
    ui->firstname->setText("");
    ui->lastname->setText("");
    ui->khid_pubkey->setKeyhoteeID("");
    ui->icon_view->setIcon( QIcon(":/images/user.png") );
    ui->notes->setPlainText("");
    ui->email->setText("");
    ui->phone->setText("");
    ui->khid_pubkey->setPublicKey("");
    ui->privacy_comboBox->setCurrentIndex (0);
    ui->contact_pages->setCurrentIndex(info);
  }
  else 
  {
    setValid(true);

    refreshDialog(_current_contact);

    bool is_owner = _current_contact.isOwn();
    ui->keyhoteeID_status->setVisible(!_editing && is_owner);
    ui->authorization_status->setVisible(!_editing && !is_owner);
    ui->mining_effort->setVisible(is_owner);
    ui->mining_effort_slider->setVisible(is_owner);
    ui->mining_effort_slider->setDisabled(!_editing);
    ui->mining_effort_label->setVisible(is_owner);
    ui->mining_effort_label_2->setVisible(is_owner);
  }
  setEnabledSaveContact();
}
Exemplo n.º 2
0
void ContactView::keyEdit(bool enable)
{
  _editing = enable;
  ui->firstname->setEnabled(enable);
  ui->lastname->setEnabled(enable);
  setEnabledSaveContact ();
  if (isAddingNewContact ())
  {
    //keyhoteeIds don't function when mining is not possible
    ui->id_edit->setEnabled(enable && gMiningIsPossible);
    ui->public_key->setReadOnly(!enable);
    send_mail->setVisible(false);
    chat_contact->setVisible(false);
    edit_contact->setVisible(false);
    share_contact->setVisible(false);
    request_contact->setVisible(false);
    separatorToolBar->setVisible(false);
    label_createContact->setVisible(true);
  }
  else
  {
    /// note: you cannot change the id of a contact once it has been
    /// set... you must create a new contact anytime their public key
    /// changes.
    ui->id_edit->setEnabled(false);
    ui->public_key->setReadOnly (true);
    send_mail->setVisible(true);
    chat_contact->setVisible(true);
    edit_contact->setVisible(true);
    share_contact->setVisible(true);
    request_contact->setVisible(true);
    separatorToolBar->setVisible(true);
    label_createContact->setVisible(false);
  }
   
  ui->privacy_comboBox->setEnabled(enable);
  ui->email->setEnabled(enable);
  ui->phone->setEnabled(enable);
  ui->notes->setEnabled(enable);
  ui->icon_view->setEnabled(enable);

  ui->id_status->setVisible(enable);
  ui->keyhotee_founder->setVisible(!enable && _current_contact.isKeyhoteeFounder());
  cancel_edit_contact->setEnabled(enable);
  send_mail->setEnabled(!enable);
  chat_contact->setEnabled(!enable);
  edit_contact->setEnabled(!enable);
  share_contact->setEnabled(false);
  request_contact->setEnabled(false);

  ui->contact_pages->setTabEnabled(chat, !enable);

  if (enable)
  {
    ui->firstname->setFocus();
    setModyfied(false);
  }
}
Exemplo n.º 3
0
void ContactView::contactEditable(bool enable)
{
  _editing = enable;
  ui->firstname->setEnabled(enable);
  ui->lastname->setEnabled(enable);
  ui->khid_pubkey->setEditable(enable);
  setEnabledSaveContact ();
  if (isAddingNewContact ())
  {
    send_mail->setVisible(false);
    chat_contact->setVisible(false);
    edit_contact->setVisible(false);
    share_contact->setVisible(false);
    request_contact->setVisible(false);
    separatorToolBar->setVisible(false);
    label_createContact->setVisible(true);
  }
  else
  {
    send_mail->setVisible(true);
    chat_contact->setVisible(true);
    edit_contact->setVisible(true);
    share_contact->setVisible(true);
    request_contact->setVisible(true);
    separatorToolBar->setVisible(true);
    label_createContact->setVisible(false);
  }
   
  ui->privacy_comboBox->setEnabled(enable);
  ui->email->setEnabled(enable);
  ui->phone->setEnabled(enable);
  ui->notes->setEnabled(enable);
  ui->icon_view->setEnabled(enable);

  ui->keyhotee_founder->setVisible(!enable && _current_contact.isKeyhoteeFounder());
  bool is_owner = _current_contact.isOwn();
  ui->keyhoteeID_status->setVisible(!enable && is_owner);
  ui->authorization_status->setVisible(!enable && !is_owner);
  ui->mining_effort_slider->setDisabled(!enable && is_owner);
  
  cancel_edit_contact->setEnabled(enable);
  send_mail->setEnabled(!enable);
  chat_contact->setEnabled(!enable);
  edit_contact->setEnabled(!enable);
  share_contact->setEnabled(!enable);
  request_contact->setEnabled(!enable && !is_owner);

  ui->contact_pages->setTabEnabled(chat, !enable);

  if (enable)
  {
    ui->firstname->setFocus();
    setModified(false);
  }
  checkSendMailButton();
}
Exemplo n.º 4
0
void ContactView::ToDialog()
{
  if (isAddingNewContact ()) 
  {
    setValid(false);
    ui->firstname->setText("");
    ui->lastname->setText("");
    ui->khid_pubkey->setKeyhoteeID("");
    ui->icon_view->setIcon( QIcon(":/images/user.png") );
    ui->notes->setPlainText("");
    ui->email->setText("");
    ui->phone->setText("");
    ui->khid_pubkey->setPublicKey("");
    ui->privacy_comboBox->setCurrentIndex (0);
    ui->contact_pages->setCurrentIndex(info);
  }
  else 
  {
    setValid(true);
    /** TODO... restore this kind of check
    if( _current_contact.bit_id_public_key != _current_contact.public_key  )
    {
      ui->id_status->setText(
                  tr( "Warning! Keyhotee ID %1 no longer matches known public key!" ).arg(_current_contact.bit_id) );
    }
    */
    ui->firstname->setText( _current_contact.first_name.c_str() );
    ui->lastname->setText( _current_contact.last_name.c_str() );

    //set public key from contact record initially
    std::string public_key_string = public_key_address( _current_contact.public_key );
    ui->khid_pubkey->setPublicKey( public_key_string.c_str() );
    //set keyhoteeID from contact record, this may override public key from contact record
    //if mining is enabled and ID is registered in blockchain
    ui->khid_pubkey->setKeyhoteeID(_current_contact.dac_id_string.c_str());

    ui->icon_view->setIcon( _current_contact.getIcon() );
    ui->notes->setPlainText( _current_contact.notes.c_str() );
    //ui->email->setText( _current_contact.email_address );
    //ui->phone->setText( _current_contact.phone_number );
    //privacy_comboBox
    //DLNFIX TODO: add check to see if we are synced on blockchain. If not synched,
    //             display "Keyhotee ledger not accessible"
    checkKeyhoteeIdStatus();
    bool is_owner = _current_contact.isOwn();
    ui->keyhoteeID_status->setVisible(!_editing && is_owner);
    ui->authorization_status->setVisible(!_editing && !is_owner);
    ui->mining_effort->setVisible(is_owner);
    ui->mining_effort_slider->setVisible(is_owner);
    ui->mining_effort_slider->setDisabled(!_editing);
    ui->mining_effort_label->setVisible(is_owner);
    ui->mining_effort_label_2->setVisible(is_owner);
  }
  setEnabledSaveContact();
}
Exemplo n.º 5
0
void ContactView::onCancel()
{
  setModified(false);
  ToDialog();
  contactEditable(false);
  if (isAddingNewContact())
  {
    emit canceledNewContact();
  }
  else  //editing contact
  {    
  }
}
Exemplo n.º 6
0
void ContactView::onCancel()
{
  setModyfied(false);
  doDataExchange (false);
  keyEdit(false);
  if (isAddingNewContact())
  {
    emit canceledNewContact();
  }
  else  //editing contact
  {    
  }
}
Exemplo n.º 7
0
bool ContactView::doDataExchange (bool valid)
{
  if (! valid)
  {
    if (isAddingNewContact ()) 
    {
       setValid(false);
       ui->firstname->setText("");
       ui->lastname->setText("");
       ui->id_edit->setText("");
       ui->icon_view->setIcon( QIcon(":/images/user.png") );
       ui->notes->setPlainText("");
       ui->email->setText("");
       ui->phone->setText("");
       ui->public_key->setText ("");
       ui->privacy_comboBox->setCurrentIndex (0);      
       ui->contact_pages->setCurrentIndex(info);
   
       if (gMiningIsPossible)
         ui->id_status->setText(tr("Please provide a valid ID or public key") );
       else
         ui->id_status->setText(tr("Public Key Only Mode") );
     }
     else 
     {
       setValid(true);
       /** TODO... restore this kind of check
          if( _current_contact.bit_id_public_key != _current_contact.public_key  )
        {
          ui->id_status->setText(
                   tr( "Warning! Keyhotee ID %1 no longer matches known public key!" ).arg(_current_contact.bit_id) );
        }
        */
       ui->firstname->setText( _current_contact.first_name.c_str() );
       ui->lastname->setText( _current_contact.last_name.c_str() );
       ui->id_edit->setText( _current_contact.dac_id_string.c_str() );      
       ui->icon_view->setIcon( _current_contact.getIcon() );
       ui->notes->setPlainText( _current_contact.notes.c_str() );
       //ui->email->setText( _current_contact.email_address );
       //ui->phone->setText( _current_contact.phone_number );
       //privacy_comboBox
       std::string public_key_string = public_key_address( _current_contact.public_key );
       ui->public_key->setText( public_key_string.c_str() );
       ui->keyhotee_founder->setVisible(!_editing && _current_contact.isKeyhoteeFounder());
       //DLNFIX TODO: add check to see if we are synced on blockchain. If not synched,
       //             display "Keyhotee ledger not accessible"
       bool is_owner = _current_contact.isOwn();
       if(is_owner)
         {
         ui->mining_effort_slider->setValue( static_cast<int>(_current_contact.getMiningEffort()));
         //if registered keyhoteeId
         auto name_record = bts::application::instance()->lookup_name(_current_contact.dac_id_string);
         if (name_record)
           {
           //  if keyhoteeId's public key matches ours.
           if (name_record->active_key == _current_contact.public_key)
             { //Registered to us
             ui->keyhoteeID_status->setStyleSheet("QLabel { background-color : green; color : black; }");
             ui->keyhoteeID_status->setText(tr("Registered"));
             }
           else //Not Available (someone else owns it)
             {
             ui->keyhoteeID_status->setStyleSheet("QLabel { background-color : red; color : black; }");
             ui->keyhoteeID_status->setText(tr("Not Available"));
             }
           }
         else //Unregistered (no one has it yet)
           {
           ui->keyhoteeID_status->setStyleSheet("QLabel { background-color : yellow; color : black; }");
           ui->keyhoteeID_status->setText(tr("Unregistered"));
           }
         }
       ui->keyhoteeID_status->setVisible(!_editing && is_owner);
       ui->mining_effort->setVisible(is_owner);
       ui->mining_effort_slider->setVisible(is_owner);
       ui->mining_effort_slider->setDisabled(!_editing);
       ui->mining_effort_label->setVisible(is_owner);
       ui->mining_effort_label_2->setVisible(is_owner);

       ui->id_status->setText(QString());
     }
   }
   else
   {
     _current_contact.first_name     = ui->firstname->text().toUtf8().constData();
     _current_contact.last_name      = ui->lastname->text().toUtf8().constData();
     _current_contact.dac_id_string  = ui->id_edit->text().toUtf8().constData();
     _current_contact.setIcon (ui->icon_view->icon());
     _current_contact.notes  = ui->notes->toPlainText().toUtf8().constData();
     //_current_contact.email_address = ui->email->text().toStdString();
     //_current_contact.phone_number = ui->phone->text().toStdString();
     //privacy_comboBox
   }
   setEnabledSaveContact ();
   return true;
}
Exemplo n.º 8
0
bool ContactView::doDataExchange (bool valid)
{
  if (! valid)
  {
    if (isAddingNewContact ()) 
    {
       setValid(false);
       ui->firstname->setText("");
       ui->lastname->setText("");
       ui->id_edit->setText("");
       ui->icon_view->setIcon( QIcon(":/images/user.png") );
       ui->notes->setPlainText("");
       ui->email->setText("");
       ui->phone->setText("");
       ui->public_key->setText ("");
       ui->privacy_comboBox->setCurrentIndex (0);      
       ui->contact_pages->setCurrentIndex(info);
   
       if (gMiningIsPossible)
         ui->id_status->setText(tr("Please provide a valid ID or public key") );
       else
         ui->id_status->setText(tr("Public Key Only Mode") );
     }
     else 
     {
       setValid(true);
       /** TODO... restore this kind of check
          if( _current_contact.bit_id_public_key != _current_contact.public_key  )
        {
          ui->id_status->setText(
                   tr( "Warning! Keyhotee ID %1 no longer matches known public key!" ).arg(_current_contact.bit_id) );
        }
        */
       ui->firstname->setText( _current_contact.first_name.c_str() );
       ui->lastname->setText( _current_contact.last_name.c_str() );
       ui->id_edit->setText( _current_contact.dac_id_string.c_str() );      
       ui->icon_view->setIcon( _current_contact.getIcon() );
       ui->notes->setPlainText( _current_contact.notes.c_str() );
       //ui->email->setText( _current_contact.email_address );
       //ui->phone->setText( _current_contact.phone_number );
       //privacy_comboBox
       std::string public_key_string = public_key_address( _current_contact.public_key );
       ui->public_key->setText( public_key_string.c_str() );
       ui->keyhotee_founder->setVisible(!_editing && _current_contact.isKeyhoteeFounder());
       ui->id_status->setText(QString());
     }
   }
   else
   {
     _current_contact.first_name     = ui->firstname->text().toUtf8().constData();
     _current_contact.last_name      = ui->lastname->text().toUtf8().constData();
     _current_contact.dac_id_string  = ui->id_edit->text().toUtf8().constData();
     _current_contact.setIcon (ui->icon_view->icon());
     _current_contact.notes  = ui->notes->toPlainText().toUtf8().constData();
     //_current_contact.email_address = ui->email->text().toStdString();
     //_current_contact.phone_number = ui->phone->text().toStdString();
     //privacy_comboBox
   }
   setEnabledSaveContact ();
   return true;
}