// Copyright (c) 2011-2015 The Cryptonote developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include #include #include "CurrencyAdapter.h" #include "AddressBookModel.h" #include "AddressBookFrame.h" #include "MainWindow.h" #include "NewAddressDialog.h" #include "WalletEvents.h" #include "ui_addressbookframe.h" namespace WalletGui { AddressBookFrame::AddressBookFrame(QWidget* _parent) : QFrame(_parent), m_ui(new Ui::AddressBookFrame) { m_ui->setupUi(this); m_ui->m_addressBookView->setModel(&AddressBookModel::instance()); connect(m_ui->m_addressBookView->selectionModel(), &QItemSelectionModel::currentChanged, this, &AddressBookFrame::currentAddressChanged); } AddressBookFrame::~AddressBookFrame() { } void AddressBookFrame::addClicked() { NewAddressDialog dlg(&MainWindow::instance()); if (dlg.exec() == QDialog::Accepted) { QString label = dlg.getLabel(); QString address = dlg.getAddress(); if (!CurrencyAdapter::instance().validateAddress(address)) { QCoreApplication::postEvent(&MainWindow::instance(), new ShowMessageEvent(tr("Invalid address"), QtCriticalMsg)); return; } AddressBookModel::instance().addAddress(label, address); } } void AddressBookFrame::copyClicked() { QApplication::clipboard()->setText(m_ui->m_addressBookView->currentIndex().data(AddressBookModel::ROLE_ADDRESS).toString()); } void AddressBookFrame::deleteClicked() { int row = m_ui->m_addressBookView->currentIndex().row(); AddressBookModel::instance().removeAddress(row); } void AddressBookFrame::currentAddressChanged(const QModelIndex& _index) { m_ui->m_copyAddressButton->setEnabled(_index.isValid()); m_ui->m_deleteAddressButton->setEnabled(_index.isValid()); } }