6 #include "ui_receivewidget.h"
16 #include <QModelIndex>
20 #define DECORATION_SIZE 70
28 this->setStyleSheet(parent->styleSheet());
38 ui->left->setContentsMargins(20,20,20,20);
40 ui->right->setContentsMargins(0,9,0,0);
53 ui->labelSubtitle2->setContentsMargins(0,2,4,0);
59 ui->btnMyAddresses->setTitleClassAndText(
"btn-title-grey", tr(
"My Addresses"));
60 ui->btnMyAddresses->setSubTitleClassAndText(
"text-subtitle", tr(
"List your own addresses"));
61 ui->btnMyAddresses->layout()->setMargin(0);
62 ui->btnMyAddresses->setRightIconClass(
"ic-arrow");
64 ui->btnRequest->setTitleClassAndText(
"btn-title-grey", tr(
"Create Request"));
65 ui->btnRequest->setSubTitleClassAndText(
"text-subtitle", tr(
"Request payment with a fixed amount"));
66 ui->btnRequest->layout()->setMargin(0);
68 ui->pushButtonLabel->setLayoutDirection(Qt::RightToLeft);
71 ui->pushButtonNewAddress->setLayoutDirection(Qt::RightToLeft);
74 ui->pushButtonCopy->setLayoutDirection(Qt::RightToLeft);
81 ui->listViewAddress->setItemDelegate(
delegate);
84 ui->listViewAddress->setAttribute(Qt::WA_MacShowFocusRect,
false);
85 ui->listViewAddress->setSelectionBehavior(QAbstractItemView::SelectRows);
86 ui->listViewAddress->setUniformItemSizes(
true);
88 spacer =
new QSpacerItem(40, 20, QSizePolicy::Maximum, QSizePolicy::Expanding);
89 ui->btnMyAddresses->setChecked(
true);
90 ui->container_right->addItem(
spacer);
91 ui->listViewAddress->setVisible(
false);
95 ui->lineEditFilter->setStyleSheet(
"font: 14px;");
105 ui->sortWidget->setVisible(
false);
116 ui->pushLeft->setChecked(
true);
117 connect(
ui->pushLeft, &QPushButton::clicked, [
this](){onTransparentSelected(true);});
118 connect(
ui->pushRight, &QPushButton::clicked, [
this](){onTransparentSelected(false);});
128 ui->listViewAddress->setModel(this->
filter);
135 connect(this->
addressTableModel, &AddressTableModel::dataChanged, [
this](
const QModelIndex& tl,
const QModelIndex& br){
refreshView(tl, br); });
145 return refreshView(index.data(Qt::DisplayRole).toString());
152 if (latestAddress.isEmpty()) {
154 ui->labelQrImg->setText(tr(
"No available address\ntry unlocking the wallet"));
155 inform(tr(
"Error generating address"));
159 QString addressToShow = latestAddress;
162 addressToShow = addressToShow.left(20) +
"..." + addressToShow.right(19);
165 ui->labelAddress->setText(addressToShow);
169 }
catch (
const std::runtime_error&
error) {
170 ui->labelQrImg->setText(tr(
"No available address\ntry unlocking the wallet"));
171 inform(tr(
"Error generating address"));
180 if (!label.isEmpty()) {
181 ui->labelLabel->setVisible(
true);
182 ui->labelLabel->setText(label);
183 ui->pushButtonLabel->setText(tr(
"Edit Label"));
185 ui->labelLabel->setVisible(
false);
186 ui->pushButtonLabel->setText(tr(
"Add Label"));
195 ui->labelQrImg->setText(
"");
198 QColor qrColor(
"#382d4d");
200 if (!pixmap.isNull()) {
201 ui->labelQrImg->setPixmap(pixmap.scaled(
ui->labelQrImg->width(),
ui->labelQrImg->height()));
203 ui->labelQrImg->setText(!
error.isEmpty() ?
error :
"Error encoding address");
209 QModelIndex rIndex =
filter->mapToSource(index);
210 refreshView(rIndex.data(Qt::DisplayRole).toString());
219 dialog->
setTexts(tr(
"Edit Address Label"));
226 label.toUtf8().constData(),
232 inform(tr(
"Address label saved"));
234 inform(tr(
"Error storing address label"));
237 dialog->deleteLater();
248 inform(tr(
"Cannot create new address, wallet locked"));
262 inform(tr(
"New address created"));
263 }
catch (
const std::runtime_error&
error) {
265 inform(
"Error generating address");
272 inform(tr(
"Address copied"));
287 inform(tr(
"Cannot perform operation, wallet locked"));
296 if (dialog->
res == 1) {
297 inform(tr(
"URI copied to clipboard"));
298 }
else if (dialog->
res == 2) {
299 inform(tr(
"Address copied to clipboard"));
301 dialog->deleteLater();
308 bool isVisible =
ui->listViewAddress->isVisible();
310 ui->btnMyAddresses->setRightIconClass(
"btn-dropdown",
true);
311 ui->listViewAddress->setVisible(
true);
312 ui->sortWidget->setVisible(
true);
313 ui->container_right->removeItem(
spacer);
314 ui->listViewAddress->update();
316 ui->btnMyAddresses->setRightIconClass(
"ic-arrow",
true);
317 ui->container_right->addItem(
spacer);
318 ui->listViewAddress->setVisible(
false);
319 ui->sortWidget->setVisible(
false);
331 sortOrder = (Qt::SortOrder)
ui->comboBoxSortOrder->itemData(idx).toInt();
337 this->
filter->setFilterRegExp(str);
void setType(const QString &type)
@ TypeRole
Type of address (Send, Receive, ColdStaking, ColdStakingSend, Delegator, Delegable)
@ Address
Bitcoin address.
static const QString ShieldedReceive
Specifies shielded send address.
QString getAddressToShow(bool shielded=false) const
Return last unused address.
static const QString Receive
Specifies receive address.
QString labelForAddress(const QString &address) const
const Optional< T > & getObjResult() const
FurListRow * getRowFactory()
std::string getError() const
void setWalletModel(WalletModel *model)
void setPaymentRequest(bool _isPaymentRequest)
CallResult< Destination > getNewAddress(const std::string &label="") const
bool updateAddressBookLabels(const CWDestination &address, const std::string &strName, const std::string &strPurpose)
CallResult< Destination > getNewShieldedAddress(std::string strLabel="")
Return a new shielded address.
AddressTableModel * getAddressTableModel()
int64_t getKeyCreationTime(const CPubKey &key)
UnlockContext requestUnlock()
boost::variant< CTxDestination, libzcash::SaplingPaymentAddress > CWDestination
const std::string RECEIVE
QString dateTimeStr(const QDateTime &date)
QString formatBitcoinURI(const SendCoinsRecipient &info)
void setClipboard(const QString &str)
CWDestination DecodeDestination(const std::string &strAddress)
bool openDialogWithOpaqueBackgroundY(QDialog *widget, PIVXGUI *gui, double posX, int posY, bool hideOpaqueBackground)
void setCssTitleScreen(QLabel *label)
void initCssEditLine(QLineEdit *edit, bool isDialog)
void setCssProperty(std::initializer_list< QWidget * > args, const QString &value)
void setCssSubtitleScreen(QWidget *wid)
QPixmap encodeToQr(const QString &str, QString &errorStr, const QColor &qrColor)
void fillAddressSortControls(SortEdit *seType, SortEdit *seOrder, QComboBox *boxType, QComboBox *boxOrder)
bool error(const char *fmt, const Args &... args)