improve address book, add less conspicious toolbar icon
[novacoin.git] / addressbookdialog.cpp
1 #include "addressbookdialog.h"
2 #include "ui_addressbookdialog.h"
3
4 #include "addresstablemodel.h"
5 #include "editaddressdialog.h"
6
7 #include <QSortFilterProxyModel>
8
9 AddressBookDialog::AddressBookDialog(QWidget *parent) :
10     QDialog(parent),
11     ui(new Ui::AddressBookDialog),
12     model(0)
13 {
14     ui->setupUi(this);
15
16     model = new AddressTableModel(this);
17     setModel(model);
18 }
19
20 AddressBookDialog::~AddressBookDialog()
21 {
22     delete ui;
23 }
24
25 void AddressBookDialog::setModel(AddressTableModel *model)
26 {
27     /* Receive filter */
28     QSortFilterProxyModel *receive_model = new QSortFilterProxyModel(this);
29     receive_model->setSourceModel(model);
30     receive_model->setDynamicSortFilter(true);
31     receive_model->setFilterRole(Qt::UserRole);
32     receive_model->setFilterKeyColumn(AddressTableModel::Type);
33     receive_model->setFilterFixedString(AddressTableModel::Receive);
34     ui->receiveTableView->setModel(receive_model);
35
36     /* Send filter */
37     QSortFilterProxyModel *send_model = new QSortFilterProxyModel(this);
38     send_model->setSourceModel(model);
39     send_model->setDynamicSortFilter(true);
40     send_model->setFilterRole(Qt::UserRole);
41     send_model->setFilterKeyColumn(AddressTableModel::Type);
42     send_model->setFilterFixedString(AddressTableModel::Send);
43     ui->sendTableView->setModel(send_model);
44
45     /* Set column widths */
46     ui->receiveTableView->horizontalHeader()->resizeSection(
47             AddressTableModel::Address, 320);
48     ui->receiveTableView->horizontalHeader()->setResizeMode(
49             AddressTableModel::Label, QHeaderView::Stretch);
50     ui->sendTableView->horizontalHeader()->resizeSection(
51             AddressTableModel::Address, 320);
52     ui->sendTableView->horizontalHeader()->setResizeMode(
53             AddressTableModel::Label, QHeaderView::Stretch);
54
55     /* Hide "Type" column in both views as it is only used for filtering */
56     ui->receiveTableView->setColumnHidden(AddressTableModel::Type, true);
57     ui->sendTableView->setColumnHidden(AddressTableModel::Type, true);
58 }
59
60 void AddressBookDialog::setTab(int tab)
61 {
62     ui->tabWidget->setCurrentIndex(tab);
63 }
64
65 void AddressBookDialog::on_OKButton_clicked()
66 {
67     accept();
68 }
69
70 void AddressBookDialog::on_copyToClipboard_clicked()
71 {
72    /* Copy currently selected address to clipboard */
73 }
74
75 void AddressBookDialog::on_editButton_clicked()
76 {
77     /* Double click should trigger edit button */
78     EditAddressDialog dlg;
79     dlg.exec();
80 }
81
82 void AddressBookDialog::on_newAddressButton_clicked()
83 {
84     EditAddressDialog dlg;
85     dlg.exec();
86 }