monospace font for bitcoin addresses

This commit is contained in:
Wladimir J. van der Laan 2011-06-01 20:08:21 +02:00
parent df6dfb4ab8
commit ef1b844e7b
6 changed files with 40 additions and 10 deletions

View File

@ -29,7 +29,9 @@ public:
int columnCount(const QModelIndex &parent) const; int columnCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role) const; QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation, 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: private:
AddressTablePriv *priv; AddressTablePriv *priv;
QStringList columns; QStringList columns;

View File

@ -2,7 +2,10 @@
#define GUIUTIL_H #define GUIUTIL_H
#include <QString> #include <QString>
#include <QFont>
QString DateTimeStr(qint64 nTime); QString DateTimeStr(qint64 nTime);
/* Render bitcoin addresses in monospace font */
QFont bitcoinAddressFont();
#endif // GUIUTIL_H #endif // GUIUTIL_H

View File

@ -5,6 +5,7 @@
#include "editaddressdialog.h" #include "editaddressdialog.h"
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
#include <QClipboard>
#include <QDebug> #include <QDebug>
AddressBookDialog::AddressBookDialog(QWidget *parent) : AddressBookDialog::AddressBookDialog(QWidget *parent) :
@ -72,13 +73,21 @@ QTableView *AddressBookDialog::getCurrentTable()
void AddressBookDialog::on_copyToClipboard_clicked() 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() void AddressBookDialog::on_editButton_clicked()
{ {
/* Double click should trigger edit button */ /* Double click triggers edit button */
EditAddressDialog dlg; EditAddressDialog dlg;
dlg.exec(); dlg.exec();
} }

View File

@ -1,4 +1,5 @@
#include "addresstablemodel.h" #include "addresstablemodel.h"
#include "guiutil.h"
#include "main.h" #include "main.h"
const QString AddressTableModel::Send = "S"; const QString AddressTableModel::Send = "S";
@ -28,10 +29,6 @@ struct AddressTablePriv
{ {
cachedAddressTable.clear(); cachedAddressTable.clear();
}
void updateAddressTable()
{
CRITICAL_BLOCK(cs_mapKeys) CRITICAL_BLOCK(cs_mapKeys)
CRITICAL_BLOCK(cs_mapAddressBook) CRITICAL_BLOCK(cs_mapAddressBook)
{ {
@ -48,7 +45,6 @@ struct AddressTablePriv
} }
} }
int size() int size()
{ {
return cachedAddressTable.size(); return cachedAddressTable.size();
@ -108,6 +104,12 @@ QVariant AddressTableModel::data(const QModelIndex &index, int role) const
case Address: case Address:
return rec->address; return rec->address;
} }
} else if (role == Qt::FontRole)
{
if(index.column() == Address)
{
return bitcoinAddressFont();
}
} else if (role == TypeRole) } else if (role == TypeRole)
{ {
switch(rec->type) switch(rec->type)
@ -134,7 +136,7 @@ QVariant AddressTableModel::headerData(int section, Qt::Orientation orientation,
return QVariant(); 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); Q_UNUSED(parent);
AddressTableEntry *data = priv->index(row); 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();
}

View File

@ -83,7 +83,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
hbox_balance->addSpacing(5);/* Add some spacing between the label and the text */ hbox_balance->addSpacing(5);/* Add some spacing between the label and the text */
labelBalance = new QLabel(); labelBalance = new QLabel();
labelBalance->setFont(QFont("Teletype")); labelBalance->setFont(QFont("Monospace"));
hbox_balance->addWidget(labelBalance); hbox_balance->addWidget(labelBalance);
hbox_balance->addStretch(1); hbox_balance->addStretch(1);

View File

@ -7,3 +7,10 @@ QString DateTimeStr(qint64 nTime)
QDateTime date = QDateTime::fromMSecsSinceEpoch(nTime*1000); QDateTime date = QDateTime::fromMSecsSinceEpoch(nTime*1000);
return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm"); return date.date().toString(Qt::SystemLocaleShortDate) + QString(" ") + date.toString("hh:mm");
} }
QFont bitcoinAddressFont()
{
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
return font;
}