text: // Copyright (c) 2011-2015 The Bitcoin Core developers
  // Copyright (c) 2017-2019 The Raven Core developers
  // Distributed under the MIT software license, see the accompanying
  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
  
  #ifndef AVIAN_QT_EDITADDRESSDIALOG_H
  #define AVIAN_QT_EDITADDRESSDIALOG_H
  
  #include <QDialog>
  
  class AddressTableModel;
  
  namespace Ui {
      class EditAddressDialog;
  }
  
  QT_BEGIN_NAMESPACE
  class QDataWidgetMapper;
  QT_END_NAMESPACE
  
  /** Dialog for editing an address and associated information.
   */
  class EditAddressDialog : public QDialog
  {
      Q_OBJECT
  
  public:
      enum Mode {
          NewReceivingAddress,
          NewSendingAddress,
          EditReceivingAddress,
          EditSendingAddress
      };
  
      explicit EditAddressDialog(Mode mode, QWidget *parent);
      ~EditAddressDialog();
  
      void setModel(AddressTableModel *model);
      void loadRow(int row);
  
      QString getAddress() const;
      void setAddress(const QString &address);
  
  public Q_SLOTS:
      void accept();
  
  private:
      bool saveCurrentRow();
  
      Ui::EditAddressDialog *ui;
      QDataWidgetMapper *mapper;
      Mode mode;
      AddressTableModel *model;
  
      QString address;
  };
  
  #endif // AVIAN_QT_EDITADDRESSDIALOG_H
  