git / moonbite-core / src/qt/addressbookpage.h · raw

// Copyright (c) 2011-2018 The Bitcoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#ifndef BITCOIN_QT_ADDRESSBOOKPAGE_H#define BITCOIN_QT_ADDRESSBOOKPAGE_H#include <QDialog>class AddressBookSortFilterProxyModel;class AddressTableModel;class PlatformStyle;namespace Ui {    class AddressBookPage;}QT_BEGIN_NAMESPACEclass QItemSelection;class QMenu;class QModelIndex;QT_END_NAMESPACE/** Widget that shows a list of sending or receiving addresses.  */class AddressBookPage : public QDialog{    Q_OBJECTpublic:    enum Tabs {        SendingTab = 0,        ReceivingTab = 1    };    enum Mode {        ForSelection, /**< Open address book to pick address */        ForEditing  /**< Open address book for editing */    };    explicit AddressBookPage(const PlatformStyle *platformStyle, Mode mode, Tabs tab, QWidget *parent = nullptr);    ~AddressBookPage();    void setModel(AddressTableModel *model);    const QString &getReturnValue() const { return returnValue; }public Q_SLOTS:    void done(int retval) override;private:    Ui::AddressBookPage *ui;    AddressTableModel *model;    Mode mode;    Tabs tab;    QString returnValue;    AddressBookSortFilterProxyModel *proxyModel;    QMenu *contextMenu;    QAction *deleteAction; // to be able to explicitly disable it    QString newAddressToSelect;private Q_SLOTS:    /** Delete currently selected address entry */    void on_deleteAddress_clicked();    /** Create a new address for receiving coins and / or add a new address book entry */    void on_newAddress_clicked();    /** Copy address of currently selected address entry to clipboard */    void on_copyAddress_clicked();    /** Copy label of currently selected address entry to clipboard (no button) */    void onCopyLabelAction();    /** Edit currently selected address entry (no button) */    void onEditAction();    /** Export button clicked */    void on_exportButton_clicked();    /** Set button states based on selected tab and selection */    void selectionChanged();    /** Spawn contextual menu (right mouse menu) for address book entry */    void contextualMenu(const QPoint &point);    /** New entry/entries were added to address table */    void selectNewAddress(const QModelIndex &parent, int begin, int /*end*/);Q_SIGNALS:    void sendCoins(QString addr);};#endif // BITCOIN_QT_ADDRESSBOOKPAGE_H