diff --git a/gui/include/addresstablemodel.h b/gui/include/addresstablemodel.h index 81fad6db..6617bb3e 100644 --- a/gui/include/addresstablemodel.h +++ b/gui/include/addresstablemodel.h @@ -29,7 +29,9 @@ public: int columnCount(const QModelIndex &parent) const; QVariant data(const QModelIndex &index, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role) const; - QModelIndex index ( int row, int column, const QModelIndex & parent ) const; + QModelIndex index(int row, int column, const QModelIndex & parent) const; + + void updateList(); private: AddressTablePriv *priv; QStringList columns; diff --git a/gui/include/guiutil.h b/gui/include/guiutil.h index a73eadc0..eaa81999 100644 --- a/gui/include/guiutil.h +++ b/gui/include/guiutil.h @@ -2,7 +2,10 @@ #define GUIUTIL_H #include +#include QString DateTimeStr(qint64 nTime); +/* Render bitcoin addresses in monospace font */ +QFont bitcoinAddressFont(); #endif // GUIUTIL_H diff --git a/gui/src/addressbookdialog.cpp b/gui/src/addressbookdialog.cpp index 4ca863bd..ba6fdb51 100644 --- a/gui/src/addressbookdialog.cpp +++ b/gui/src/addressbookdialog.cpp @@ -5,6 +5,7 @@ #include "editaddressdialog.h" #include +#include #include AddressBookDialog::AddressBookDialog(QWidget *parent) : @@ -72,13 +73,21 @@ QTableView *AddressBookDialog::getCurrentTable() void AddressBookDialog::on_copyToClipboard_clicked() { - /* Copy currently selected address to clipboard */ + /* Copy currently selected address to clipboard + (or nothing, if nothing selected) + */ + QTableView *table = getCurrentTable(); + QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address); + foreach (QModelIndex index, indexes) { + QVariant address = table->model()->data(index); + QApplication::clipboard()->setText(address.toString()); + } } void AddressBookDialog::on_editButton_clicked() { - /* Double click should trigger edit button */ + /* Double click triggers edit button */ EditAddressDialog dlg; dlg.exec(); } diff --git a/gui/src/addresstablemodel.cpp b/gui/src/addresstablemodel.cpp index d1f1a9c8..21a90442 100644 --- a/gui/src/addresstablemodel.cpp +++ b/gui/src/addresstablemodel.cpp @@ -1,4 +1,5 @@ #include "addresstablemodel.h" +#include "guiutil.h" #include "main.h" const QString AddressTableModel::Send = "S"; @@ -28,10 +29,6 @@ struct AddressTablePriv { cachedAddressTable.clear(); - } - - void updateAddressTable() - { CRITICAL_BLOCK(cs_mapKeys) CRITICAL_BLOCK(cs_mapAddressBook) { @@ -48,7 +45,6 @@ struct AddressTablePriv } } - int size() { return cachedAddressTable.size(); @@ -108,6 +104,12 @@ QVariant AddressTableModel::data(const QModelIndex &index, int role) const case Address: return rec->address; } + } else if (role == Qt::FontRole) + { + if(index.column() == Address) + { + return bitcoinAddressFont(); + } } else if (role == TypeRole) { switch(rec->type) @@ -134,7 +136,7 @@ QVariant AddressTableModel::headerData(int section, Qt::Orientation orientation, return QVariant(); } -QModelIndex AddressTableModel::index ( int row, int column, const QModelIndex & parent ) const +QModelIndex AddressTableModel::index(int row, int column, const QModelIndex & parent) const { Q_UNUSED(parent); AddressTableEntry *data = priv->index(row); @@ -146,3 +148,10 @@ QModelIndex AddressTableModel::index ( int row, int column, const QModelIndex & } } +void AddressTableModel::updateList() +{ + /* Update internal model from Bitcoin core */ + beginResetModel(); + priv->refreshAddressTable(); + endResetModel(); +} diff --git a/gui/src/bitcoingui.cpp b/gui/src/bitcoingui.cpp index 66891222..0dc895dc 100644 --- a/gui/src/bitcoingui.cpp +++ b/gui/src/bitcoingui.cpp @@ -83,7 +83,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): hbox_balance->addSpacing(5);/* Add some spacing between the label and the text */ labelBalance = new QLabel(); - labelBalance->setFont(QFont("Teletype")); + labelBalance->setFont(QFont("Monospace")); hbox_balance->addWidget(labelBalance); hbox_balance->addStretch(1); diff --git a/gui/src/guiutil.cpp b/gui/src/guiutil.cpp index d27a8e10..59b4de30 100644 --- a/gui/src/guiutil.cpp +++ b/gui/src/guiutil.cpp @@ -7,3 +7,10 @@ QString DateTimeStr(qint64 nTime) QDateTime date = QDateTime::fromMSecsSinceEpoch(nTime*1000); return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm"); } + +QFont bitcoinAddressFont() +{ + QFont font("Monospace"); + font.setStyleHint(QFont::TypeWriter); + return font; +}