monospace font for bitcoin addresses
authorWladimir J. van der Laan <laanwj@gmail.com>
Wed, 1 Jun 2011 18:08:21 +0000 (20:08 +0200)
committerWladimir J. van der Laan <laanwj@gmail.com>
Wed, 1 Jun 2011 18:08:21 +0000 (20:08 +0200)
gui/include/addresstablemodel.h
gui/include/guiutil.h
gui/src/addressbookdialog.cpp
gui/src/addresstablemodel.cpp
gui/src/bitcoingui.cpp
gui/src/guiutil.cpp

index 81fad6d..6617bb3 100644 (file)
@@ -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;
index a73eadc..eaa8199 100644 (file)
@@ -2,7 +2,10 @@
 #define GUIUTIL_H
 
 #include <QString>
+#include <QFont>
 
 QString DateTimeStr(qint64 nTime);
+/* Render bitcoin addresses in monospace font */
+QFont bitcoinAddressFont();
 
 #endif // GUIUTIL_H
index 4ca863b..ba6fdb5 100644 (file)
@@ -5,6 +5,7 @@
 #include "editaddressdialog.h"
 
 #include <QSortFilterProxyModel>
+#include <QClipboard>
 #include <QDebug>
 
 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();
 }
index d1f1a9c..21a9044 100644 (file)
@@ -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();
+}
index 6689122..0dc895d 100644 (file)
@@ -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);
     
index d27a8e1..59b4de3 100644 (file)
@@ -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;
+}