#ifndef ADDRESSBOOKPAGE_H #define ADDRESSBOOKPAGE_H #include namespace Ui { class AddressBookPage; } class AddressTableModel; class OptionsModel; QT_BEGIN_NAMESPACE class QTableView; class QItemSelection; class QSortFilterProxyModel; class QMenu; class QModelIndex; QT_END_NAMESPACE /** Widget that shows a list of sending or receiving addresses. */ class AddressBookPage : public QDialog { Q_OBJECT public: enum Tabs { SendingTab = 0, ReceivingTab = 1 }; enum Mode { ForSending, /**< Open address book to pick address for sending */ ForEditing /**< Open address book for editing */ }; explicit AddressBookPage(Mode mode, Tabs tab, QWidget *parent = 0); ~AddressBookPage(); void setModel(AddressTableModel *model); void setOptionsModel(OptionsModel *optionsModel); const QString &getReturnValue() const { return returnValue; } public slots: void done(int retval); void exportClicked(); private: Ui::AddressBookPage *ui; AddressTableModel *model; OptionsModel *optionsModel; Mode mode; Tabs tab; QString returnValue; QSortFilterProxyModel *proxyModel; QMenu *contextMenu; QAction *deleteAction; QString newAddressToSelect; private slots: void on_deleteButton_clicked(); void on_newAddressButton_clicked(); /** Copy address of currently selected address entry to clipboard */ void on_copyToClipboard_clicked(); void on_signMessage_clicked(); void on_verifyMessage_clicked(); void selectionChanged(); void on_showQRCode_clicked(); /** Spawn contextual menu (right mouse menu) for address book entry */ void contextualMenu(const QPoint &point); /** Copy label of currently selected address entry to clipboard */ void onCopyLabelAction(); /** Edit currently selected address entry */ void onEditAction(); /** New entry/entries were added to address table */ void selectNewAddress(const QModelIndex &parent, int begin, int end); signals: void signMessage(QString addr); void verifyMessage(QString addr); }; #endif // ADDRESSBOOKDIALOG_H