LCOV - code coverage report
Current view: top level - src/qt - editaddressdialog.cpp (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 0 59 0.0 %
Date: 2015-10-12 22:39:14 Functions: 0 11 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // Copyright (c) 2011-2013 The Bitcoin Core developers
       2             : // Distributed under the MIT software license, see the accompanying
       3             : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       4             : 
       5             : #include "editaddressdialog.h"
       6             : #include "ui_editaddressdialog.h"
       7             : 
       8             : #include "addresstablemodel.h"
       9             : #include "guiutil.h"
      10             : 
      11             : #include <QDataWidgetMapper>
      12             : #include <QMessageBox>
      13             : 
      14           0 : EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) :
      15             :     QDialog(parent),
      16           0 :     ui(new Ui::EditAddressDialog),
      17             :     mapper(0),
      18             :     mode(mode),
      19           0 :     model(0)
      20             : {
      21           0 :     ui->setupUi(this);
      22             : 
      23           0 :     GUIUtil::setupAddressWidget(ui->addressEdit, this);
      24             : 
      25           0 :     switch(mode)
      26             :     {
      27             :     case NewReceivingAddress:
      28           0 :         setWindowTitle(tr("New receiving address"));
      29           0 :         ui->addressEdit->setEnabled(false);
      30             :         break;
      31             :     case NewSendingAddress:
      32           0 :         setWindowTitle(tr("New sending address"));
      33           0 :         break;
      34             :     case EditReceivingAddress:
      35           0 :         setWindowTitle(tr("Edit receiving address"));
      36           0 :         ui->addressEdit->setEnabled(false);
      37             :         break;
      38             :     case EditSendingAddress:
      39           0 :         setWindowTitle(tr("Edit sending address"));
      40           0 :         break;
      41             :     }
      42             : 
      43           0 :     mapper = new QDataWidgetMapper(this);
      44           0 :     mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
      45           0 : }
      46             : 
      47           0 : EditAddressDialog::~EditAddressDialog()
      48             : {
      49           0 :     delete ui;
      50           0 : }
      51             : 
      52           0 : void EditAddressDialog::setModel(AddressTableModel *model)
      53             : {
      54           0 :     this->model = model;
      55           0 :     if(!model)
      56           0 :         return;
      57             : 
      58           0 :     mapper->setModel(model);
      59           0 :     mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
      60           0 :     mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
      61             : }
      62             : 
      63           0 : void EditAddressDialog::loadRow(int row)
      64             : {
      65           0 :     mapper->setCurrentIndex(row);
      66           0 : }
      67             : 
      68           0 : bool EditAddressDialog::saveCurrentRow()
      69             : {
      70           0 :     if(!model)
      71             :         return false;
      72             : 
      73           0 :     switch(mode)
      74             :     {
      75             :     case NewReceivingAddress:
      76             :     case NewSendingAddress:
      77           0 :         address = model->addRow(
      78           0 :                 mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive,
      79             :                 ui->labelEdit->text(),
      80           0 :                 ui->addressEdit->text());
      81           0 :         break;
      82             :     case EditReceivingAddress:
      83             :     case EditSendingAddress:
      84           0 :         if(mapper->submit())
      85             :         {
      86           0 :             address = ui->addressEdit->text();
      87             :         }
      88             :         break;
      89             :     }
      90           0 :     return !address.isEmpty();
      91             : }
      92             : 
      93           0 : void EditAddressDialog::accept()
      94             : {
      95           0 :     if(!model)
      96             :         return;
      97             : 
      98           0 :     if(!saveCurrentRow())
      99             :     {
     100           0 :         switch(model->getEditStatus())
     101             :         {
     102             :         case AddressTableModel::OK:
     103             :             // Failed with unknown reason. Just reject.
     104             :             break;
     105             :         case AddressTableModel::NO_CHANGES:
     106             :             // No changes were made during edit operation. Just reject.
     107             :             break;
     108             :         case AddressTableModel::INVALID_ADDRESS:
     109             :             QMessageBox::warning(this, windowTitle(),
     110             :                 tr("The entered address \"%1\" is not a valid Bitcoin address.").arg(ui->addressEdit->text()),
     111           0 :                 QMessageBox::Ok, QMessageBox::Ok);
     112           0 :             break;
     113             :         case AddressTableModel::DUPLICATE_ADDRESS:
     114             :             QMessageBox::warning(this, windowTitle(),
     115             :                 tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
     116           0 :                 QMessageBox::Ok, QMessageBox::Ok);
     117           0 :             break;
     118             :         case AddressTableModel::WALLET_UNLOCK_FAILURE:
     119             :             QMessageBox::critical(this, windowTitle(),
     120             :                 tr("Could not unlock wallet."),
     121           0 :                 QMessageBox::Ok, QMessageBox::Ok);
     122           0 :             break;
     123             :         case AddressTableModel::KEY_GENERATION_FAILURE:
     124             :             QMessageBox::critical(this, windowTitle(),
     125             :                 tr("New key generation failed."),
     126           0 :                 QMessageBox::Ok, QMessageBox::Ok);
     127           0 :             break;
     128             : 
     129             :         }
     130             :         return;
     131             :     }
     132           0 :     QDialog::accept();
     133             : }
     134             : 
     135           0 : QString EditAddressDialog::getAddress() const
     136             : {
     137           0 :     return address;
     138             : }
     139             : 
     140           0 : void EditAddressDialog::setAddress(const QString &address)
     141             : {
     142           0 :     this->address = address;
     143           0 :     ui->addressEdit->setText(address);
     144           0 : }

Generated by: LCOV version 1.11