1 #include "addressbookdialog.h"
2 #include "ui_addressbookdialog.h"
4 #include "addresstablemodel.h"
5 #include "editaddressdialog.h"
7 #include <QSortFilterProxyModel>
9 AddressBookDialog::AddressBookDialog(QWidget *parent) :
11 ui(new Ui::AddressBookDialog),
16 model = new AddressTableModel(this);
20 AddressBookDialog::~AddressBookDialog()
25 void AddressBookDialog::setModel(AddressTableModel *model)
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);
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);
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);
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);
60 void AddressBookDialog::setTab(int tab)
62 ui->tabWidget->setCurrentIndex(tab);
65 void AddressBookDialog::on_OKButton_clicked()
70 void AddressBookDialog::on_copyToClipboard_clicked()
72 /* Copy currently selected address to clipboard */
75 void AddressBookDialog::on_editButton_clicked()
77 /* Double click should trigger edit button */
78 EditAddressDialog dlg;
82 void AddressBookDialog::on_newAddressButton_clicked()
84 EditAddressDialog dlg;