Remove code for no longer existing edit button in address book dialog
[novacoin.git] / src / qt / 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 #include <QClipboard>
9 #include <QDebug>
10
11 AddressBookDialog::AddressBookDialog(Mode mode, QWidget *parent) :
12     QDialog(parent),
13     ui(new Ui::AddressBookDialog),
14     model(0),
15     mode(mode)
16 {
17     ui->setupUi(this);
18     switch(mode)
19     {
20     case ForSending:
21         connect(ui->receiveTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_buttonBox_accepted()));
22         connect(ui->sendTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_buttonBox_accepted()));
23         ui->sendTableView->setFocus();
24         break;
25     }
26 }
27
28 AddressBookDialog::~AddressBookDialog()
29 {
30     delete ui;
31 }
32
33 void AddressBookDialog::setModel(AddressTableModel *model)
34 {
35     this->model = model;
36     // Refresh list from core
37     model->updateList();
38
39     // Receive filter
40     QSortFilterProxyModel *receive_model = new QSortFilterProxyModel(this);
41     receive_model->setSourceModel(model);
42     receive_model->setDynamicSortFilter(true);
43     receive_model->setFilterRole(AddressTableModel::TypeRole);
44     receive_model->setFilterFixedString(AddressTableModel::Receive);
45     ui->receiveTableView->setModel(receive_model);
46     ui->receiveTableView->sortByColumn(0, Qt::AscendingOrder);
47
48     // Send filter
49     QSortFilterProxyModel *send_model = new QSortFilterProxyModel(this);
50     send_model->setSourceModel(model);
51     send_model->setDynamicSortFilter(true);
52     send_model->setFilterRole(AddressTableModel::TypeRole);
53     send_model->setFilterFixedString(AddressTableModel::Send);
54     ui->sendTableView->setModel(send_model);
55     ui->sendTableView->sortByColumn(0, Qt::AscendingOrder);
56
57     // Set column widths
58     ui->receiveTableView->horizontalHeader()->resizeSection(
59             AddressTableModel::Address, 320);
60     ui->receiveTableView->horizontalHeader()->setResizeMode(
61             AddressTableModel::Label, QHeaderView::Stretch);
62     ui->sendTableView->horizontalHeader()->resizeSection(
63             AddressTableModel::Address, 320);
64     ui->sendTableView->horizontalHeader()->setResizeMode(
65             AddressTableModel::Label, QHeaderView::Stretch);
66
67     if(mode == ForSending)
68     {
69         // Auto-select first row when in sending mode
70         ui->sendTableView->selectRow(0);
71     }
72 }
73
74 void AddressBookDialog::setTab(int tab)
75 {
76     ui->tabWidget->setCurrentIndex(tab);
77     on_tabWidget_currentChanged(tab);
78 }
79
80 QTableView *AddressBookDialog::getCurrentTable()
81 {
82     switch(ui->tabWidget->currentIndex())
83     {
84     case SendingTab:
85         return ui->sendTableView;
86     case ReceivingTab:
87         return ui->receiveTableView;
88     default:
89         return 0;
90     }
91 }
92
93 void AddressBookDialog::on_copyToClipboard_clicked()
94 {
95     // Copy currently selected address to clipboard
96     //   (or nothing, if nothing selected)
97     QTableView *table = getCurrentTable();
98     QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
99
100     foreach (QModelIndex index, indexes)
101     {
102         QVariant address = index.data();
103         QApplication::clipboard()->setText(address.toString());
104     }
105 }
106
107 void AddressBookDialog::on_newAddressButton_clicked()
108 {
109     EditAddressDialog dlg(
110             ui->tabWidget->currentIndex() == SendingTab ?
111             EditAddressDialog::NewSendingAddress :
112             EditAddressDialog::NewReceivingAddress);
113     dlg.setModel(model);
114     dlg.exec();
115 }
116
117 void AddressBookDialog::on_tabWidget_currentChanged(int index)
118 {
119     // Enable/disable buttons based on selected tab
120     switch(index)
121     {
122     case SendingTab:
123         ui->deleteButton->setEnabled(true);
124         break;
125     case ReceivingTab:
126         ui->deleteButton->setEnabled(false);
127         break;
128     }
129 }
130
131 void AddressBookDialog::on_deleteButton_clicked()
132 {
133     QTableView *table = getCurrentTable();
134     QModelIndexList indexes = table->selectionModel()->selectedRows();
135     if(!indexes.isEmpty())
136     {
137         table->model()->removeRow(indexes.at(0).row());
138     }
139 }
140
141 void AddressBookDialog::on_buttonBox_accepted()
142 {
143     QTableView *table = getCurrentTable();
144     QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
145
146     foreach (QModelIndex index, indexes)
147     {
148         QVariant address = table->model()->data(index);
149         returnValue = address.toString();
150     }
151     if(!returnValue.isEmpty())
152     {
153         accept();
154     }
155     else
156     {
157         reject();
158     }
159 }
160