6 #include "ui_addresseswidget.h"
16 #include <QModelIndex>
17 #include <QRegExpValidator>
19 #define DECORATION_SIZE 60
34 void init(QWidget* holder,
const QModelIndex &index,
bool isHovered,
bool isSelected)
const override
40 QString address = index.data(Qt::DisplayRole).toString();
42 address = address.left(26) +
"..." + address.right(26);
45 QString label = sibling.data(Qt::DisplayRole).toString();
50 QColor
rectColor(
bool isHovered,
bool isSelected)
override
68 this->setStyleSheet(parent->styleSheet());
78 ui->left->setContentsMargins(0,20,0,20);
80 ui->right->setContentsMargins(20,10,20,20);
88 ui->btnAddContact->setTitleClassAndText(
"btn-title-grey", tr(
"Add new contact"));
89 ui->btnAddContact->setSubTitleClassAndText(
"text-subtitle", tr(
"Generate a new address to receive tokens."));
90 ui->btnAddContact->setRightIconClass(
"ic-arrow-down");
96 ui->listAddresses->setAttribute(Qt::WA_MacShowFocusRect,
false);
97 ui->listAddresses->setSelectionBehavior(QAbstractItemView::SelectRows);
98 ui->listAddresses->setUniformItemSizes(
true);
110 ui->emptyContainer->setVisible(
false);
124 ui->lineEditAddress->setValidator(
new QRegExpValidator(QRegExp(
"^[A-Za-z0-9]+"),
ui->lineEditName));
136 ui->listAddresses->setCurrentIndex(_index);
137 QRect rect =
ui->listAddresses->visualRect(_index);
138 QPoint pos = rect.topRight();
142 QModelIndex rIndex =
filter->mapToSource(_index);
167 ui->listAddresses->setModel(this->
filter);
177 ui->emptyContainer->setVisible(empty);
178 ui->listAddresses->setVisible(!empty);
184 QString label =
ui->lineEditName->text();
185 QString address =
ui->lineEditAddress->text();
187 bool isStaking =
false, isExchange =
false, isShield =
false;
192 inform(tr(
"Invalid Contact Address"));
198 inform(tr(
"Cannot store your own address as contact"));
204 if (!storedLabel.isEmpty()) {
205 inform(tr(
"Address already stored, label: %1").arg(
"\'"+storedLabel+
"\'"));
214 ui->lineEditAddress->setText(
"");
215 ui->lineEditName->setText(
"");
219 if (
ui->emptyContainer->isVisible()) {
220 ui->emptyContainer->setVisible(
false);
221 ui->listAddresses->setVisible(
true);
223 inform(tr(
"New Contact Stored"));
225 inform(tr(
"Error Storing Contact"));
232 QString address =
index.data(Qt::DisplayRole).toString();
236 dialog->
setData(address, currentLabel);
240 inform(tr(
"Contact edited"));
242 inform(tr(
"Contact edit failed"));
245 dialog->deleteLater();
251 if (
ask(tr(
"Delete Contact"),
252 tr(
"You are just about to remove the contact:\n\n%1\n\nAre you sure?")
253 .arg(
index.data(Qt::DisplayRole).toString().toUtf8().constData()))) {
256 inform(tr(
"Contact Deleted"));
258 inform(tr(
"Error deleting a contact"));
267 inform(tr(
"Address copied"));
272 if (!
ui->layoutNewContact->isVisible()){
273 ui->btnAddContact->setRightIconClass(
"btn-dropdown",
true);
274 ui->layoutNewContact->setVisible(
true);
276 ui->btnAddContact->setRightIconClass(
"ic-arrow",
true);
277 ui->layoutNewContact->setVisible(
false);
289 sortOrder = (Qt::SortOrder)
ui->comboBoxSortOrder->itemData(idx).toInt();
void updateState(bool isLightTheme, bool isHovered, bool isSelected)
void init(bool isLightTheme, bool isHover)
void updateView(const QString &address, const QString &label)
@ TypeRole
Type of address (Send, Receive, ColdStaking, ColdStakingSend, Delegator, Delegable)
static const QString ColdStakingSend
Specifies send cold staking addresses (simil 'contacts')
static const QString ShieldedSend
Specifies shielded receive address.
@ Address
Bitcoin address.
@ Label
User specified label.
std::string purposeForAddress(const std::string &address) const
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex())
static const QString Send
Specifies send address.
QString labelForAddress(const QString &address) const
FurListRow * getRowFactory()
bool isMine(const CWDestination &address)
bool updateAddressBookLabels(const CWDestination &address, const std::string &strName, const std::string &strPurpose)
AddressTableModel * getAddressTableModel()
bool IsShieldedDestination(const CWDestination &address)
const std::string COLD_STAKING_SEND
const std::string SHIELDED_SEND
void setClipboard(const QString &str)
bool IsValidDestination(const CWDestination &address)
CWDestination DecodeDestination(const std::string &strAddress)
void setCssTitleScreen(QLabel *label)
bool openDialogWithOpaqueBackground(QDialog *widget, PIVXGUI *gui, double posX)
void setCssProperty(std::initializer_list< QWidget * > args, const QString &value)
QColor getRowColor(bool isLightTheme, bool isHovered, bool isSelected)
void setCssSubtitleScreen(QWidget *wid)
void setCssBtnPrimary(QPushButton *btn, bool forceUpdate)
void setCssEditLine(QLineEdit *edit, bool isValid, bool forceUpdate)
void fillAddressSortControls(SortEdit *seType, SortEdit *seOrder, QComboBox *boxType, QComboBox *boxOrder)