diff --git a/application.qrc b/application.qrc index e4cd3d2..42f093b 100644 --- a/application.qrc +++ b/application.qrc @@ -11,6 +11,17 @@ res/darkwing.png res/sdlogo.png res/sdlogo2.png + res/Berg.png + res/denio.png + res/duke.png + res/sharpee.png + res/yoda.png + res/mickey.png + res/snoopy.png + res/popey.png + res/garfield.png + res/pinguin.png + res/hirsch.png res/hushdlogo.gif diff --git a/res/Berg.png b/res/Berg.png new file mode 100644 index 0000000..0aab208 Binary files /dev/null and b/res/Berg.png differ diff --git a/res/Unbenannt-4 Kopie.png b/res/Unbenannt-4 Kopie.png new file mode 100644 index 0000000..e9d0d54 Binary files /dev/null and b/res/Unbenannt-4 Kopie.png differ diff --git a/res/denio.png b/res/denio.png new file mode 100644 index 0000000..00c043a Binary files /dev/null and b/res/denio.png differ diff --git a/res/duke.png b/res/duke.png new file mode 100644 index 0000000..4310cef Binary files /dev/null and b/res/duke.png differ diff --git a/res/garfield.png b/res/garfield.png new file mode 100644 index 0000000..c9bf3fc Binary files /dev/null and b/res/garfield.png differ diff --git a/res/hirsch.png b/res/hirsch.png new file mode 100644 index 0000000..e2b8dbd Binary files /dev/null and b/res/hirsch.png differ diff --git a/res/mickey.png b/res/mickey.png new file mode 100644 index 0000000..e278799 Binary files /dev/null and b/res/mickey.png differ diff --git a/res/pinguin.png b/res/pinguin.png new file mode 100644 index 0000000..f8083b6 Binary files /dev/null and b/res/pinguin.png differ diff --git a/res/popey.png b/res/popey.png new file mode 100644 index 0000000..9b986af Binary files /dev/null and b/res/popey.png differ diff --git a/res/sharpee.png b/res/sharpee.png new file mode 100644 index 0000000..00b392e Binary files /dev/null and b/res/sharpee.png differ diff --git a/res/snoopy.png b/res/snoopy.png new file mode 100644 index 0000000..38f8fac Binary files /dev/null and b/res/snoopy.png differ diff --git a/res/yoda.png b/res/yoda.png new file mode 100644 index 0000000..74a4d8f Binary files /dev/null and b/res/yoda.png differ diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro index c76b209..5e745f4 100644 --- a/silentdragon-lite.pro +++ b/silentdragon-lite.pro @@ -12,6 +12,7 @@ PRECOMPILED_HEADER = src/precompiled.h QT += widgets QT += websockets +QT += qml quick TARGET = SilentDragonLite @@ -33,6 +34,7 @@ mac: LIBS+= -Wl,-bind_at_load RESOURCES = application.qrc + MOC_DIR = bin OBJECTS_DIR = bin UI_DIR = src @@ -105,6 +107,7 @@ HEADERS += \ src/contactmodel.h FORMS += \ + src/contactrequest.ui \ src/encryption.ui \ src/mainwindow.ui \ src/migration.ui \ diff --git a/src/addressbook.cpp b/src/addressbook.cpp index 1a2bad3..70df68e 100644 --- a/src/addressbook.cpp +++ b/src/addressbook.cpp @@ -8,7 +8,7 @@ AddressBookModel::AddressBookModel(QTableView *parent) : QAbstractTableModel(parent) { - headers << tr("Label") << tr("Address") << tr("HushChatAddress") << tr("cid"); + headers << tr("Avatar")<< tr("Label") << tr("Address") << tr("HushChatAddress") << tr("CID"); this->parent = parent; loadData(); } @@ -38,10 +38,10 @@ void AddressBookModel::loadData() ); } -void AddressBookModel::addNewLabel(QString label, QString addr, QString myAddr, QString cid) +void AddressBookModel::addNewLabel(QString label, QString addr, QString myAddr, QString cid, QString avatar) { //labels.push_back(QPair(label, addr)); - AddressBook::getInstance()->addAddressLabel(label, addr, myAddr, cid); + AddressBook::getInstance()->addAddressLabel(label, addr, myAddr, cid, avatar); updateUi(); } @@ -59,7 +59,7 @@ void AddressBookModel::removeItemAt(int row) if (row >= labels.size()) return; - AddressBook::getInstance()->removeAddressLabel(labels[row].getName(), labels[row].getPartnerAddress(), labels[row].getMyAddress(),labels[row].getCid()); + AddressBook::getInstance()->removeAddressLabel(labels[row].getName(), labels[row].getPartnerAddress(), labels[row].getMyAddress(),labels[row].getCid(),labels[row].getAvatar()); labels.clear(); labels = AddressBook::getInstance()->getAllAddressLabels(); dataChanged(index(0, 0), index(labels.size()-1, columnCount(index(0,0))-1)); @@ -70,7 +70,7 @@ ContactItem AddressBookModel::itemAt(int row) { if (row >= labels.size()) { - ContactItem item = ContactItem("", "", "", ""); + ContactItem item = ContactItem("", "", "", "",""); return item; } @@ -97,10 +97,11 @@ QVariant AddressBookModel::data(const QModelIndex &index, int role) const { switch(index.column()) { - case 0: return labels.at(index.row()).getName(); - case 1: return labels.at(index.row()).getPartnerAddress(); - case 2: return labels.at(index.row()).getMyAddress(); - case 3: return labels.at(index.row()).getCid(); + case 0: return labels.at(index.row()).getAvatar(); + case 1: return labels.at(index.row()).getName(); + case 2: return labels.at(index.row()).getPartnerAddress(); + case 3: return labels.at(index.row()).getMyAddress(); + case 4: return labels.at(index.row()).getCid(); } } @@ -168,6 +169,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) auto myAddr = ab.addr_chat->text().trimmed(); QString newLabel = ab.label->text(); QString cid = ab.cid->text(); + QString avatar = "res/yoda.png"; if (addr.isEmpty() || newLabel.isEmpty()) { @@ -204,7 +206,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) } ////// We need a better popup here. - AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid); + AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid,avatar); QMessageBox::critical( parent, QObject::tr("Add Successfully"), @@ -256,7 +258,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) continue; // Add label, address. - model.addNewLabel(items.at(1), items.at(0), "", ""); + model.addNewLabel(items.at(1), items.at(0), "", "", ""); numImported++; } @@ -267,7 +269,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) ); }); - auto fnSetTargetLabelAddr = [=] (QLineEdit* target, QString label, QString addr, QString myAddr, QString cid) { + auto fnSetTargetLabelAddr = [=] (QLineEdit* target, QString label, QString addr, QString myAddr, QString cid, QString avatar) { target->setText(label % "/" % addr % myAddr); }; @@ -284,8 +286,9 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) QString addr = model.itemAt(index.row()).getPartnerAddress(); QString myAddr = model.itemAt(index.row()).getMyAddress(); QString cid = model.itemAt(index.row()).getCid(); + QString avatar = model.itemAt(index.row()).getCid(); d.accept(); - fnSetTargetLabelAddr(target, lbl, addr, myAddr, cid); + fnSetTargetLabelAddr(target, lbl, addr, myAddr, cid, avatar); }); // Right-Click @@ -299,13 +302,14 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) QString addr = model.itemAt(index.row()).getPartnerAddress(); QString myAddr = model.itemAt(index.row()).getMyAddress(); QString cid = model.itemAt(index.row()).getCid(); + QString avatar = model.itemAt(index.row()).getAvatar(); QMenu menu(parent); if (target != nullptr) menu.addAction("Pick", [&] () { d.accept(); - fnSetTargetLabelAddr(target, lbl, addr, myAddr, cid); + fnSetTargetLabelAddr(target, lbl, addr, myAddr, cid, avatar); }); menu.addAction(QObject::tr("Copy address"), [&] () { @@ -324,7 +328,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) auto selection = ab.addresses->selectionModel(); if (selection && selection->hasSelection() && selection->selectedRows().size() > 0) { auto item = model.itemAt(selection->selectedRows().at(0).row()); - fnSetTargetLabelAddr(target, item.getName(), item.getMyAddress(), item.getPartnerAddress(), item.getCid()); + fnSetTargetLabelAddr(target, item.getName(), item.getMyAddress(), item.getPartnerAddress(), item.getCid(), item.getAvatar()); } }; @@ -370,7 +374,7 @@ void AddressBook::readFromStorage() //qDebug() << "0:" << stuff[i][0]; //qDebug() << "1:" << stuff[i][1]; //qDebug() << "2:" << stuff[i][2]; - ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3]); + ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]); //qDebug() << "contact=" << contact.toQTString(); allLabels.push_back(contact); } @@ -406,6 +410,7 @@ void AddressBook::writeToStorage() c.push_back(item.getPartnerAddress()); c.push_back(item.getMyAddress()); c.push_back(item.getCid()); + c.push_back(item.getAvatar()); contacts.push_back(c); } out << QString("v1") << contacts; @@ -428,22 +433,22 @@ QString AddressBook::writeableFile() // Add a new address/label to the database -void AddressBook::addAddressLabel(QString label, QString address, QString myAddr, QString cid) +void AddressBook::addAddressLabel(QString label, QString address, QString myAddr, QString cid, QString avatar) { Q_ASSERT(Settings::isValidAddress(address)); // getName(), remove any existing label // Iterate over the list and remove the label/address for (int i=0; i < allLabels.size(); i++) if (allLabels[i].getName() == label) - removeAddressLabel(allLabels[i].getName(), allLabels[i].getPartnerAddress(),allLabels[i].getMyAddress(), allLabels[i].getCid()); + removeAddressLabel(allLabels[i].getName(), allLabels[i].getPartnerAddress(),allLabels[i].getMyAddress(), allLabels[i].getCid(), allLabels[i].getAvatar()); - ContactItem item = ContactItem(label, address, myAddr, cid); + ContactItem item = ContactItem(label, address, myAddr, cid, avatar); allLabels.push_back(item); writeToStorage(); } // Remove a new address/label from the database -void AddressBook::removeAddressLabel(QString label, QString address, QString myAddr, QString cid) +void AddressBook::removeAddressLabel(QString label, QString address, QString myAddr, QString cid, QString avatar) { // Iterate over the list and remove the label/address for (int i=0; i < allLabels.size(); i++) diff --git a/src/addressbook.h b/src/addressbook.h index 6f8308b..6c7a450 100644 --- a/src/addressbook.h +++ b/src/addressbook.h @@ -12,7 +12,7 @@ public: AddressBookModel(QTableView* parent); ~AddressBookModel(); - void addNewLabel(QString label, QString address, QString myAddr, QString cid); + void addNewLabel(QString label, QString address, QString myAddr, QString cid, QString avatar); void updateUi(); void removeItemAt(int row); //QPair itemAt(int row); @@ -43,10 +43,10 @@ public: static QString addressFromAddressLabel(const QString& lblAddr); // Add a new address/label to the database - void addAddressLabel(QString label, QString address, QString myAddr, QString cid); + void addAddressLabel(QString label, QString address, QString myAddr, QString cid, QString avatar); // Remove a new address/label from the database - void removeAddressLabel(QString label, QString address, QString myAddr, QString cid); + void removeAddressLabel(QString label, QString address, QString myAddr, QString cid, QString avatar); // Update a label/address void updateLabel(QString oldlabel, QString address, QString newlabel); diff --git a/src/addressbook.ui b/src/addressbook.ui index c2d255d..6f3015d 100644 --- a/src/addressbook.ui +++ b/src/addressbook.ui @@ -30,7 +30,7 @@ - Nickname + <html><head/><body><p align="right">Nickname :</p></body></html> @@ -51,9 +51,130 @@ + + + + <html><head/><body><p align="right">Avatar :</p></body></html> + + + + + + + + Stag + + + + :/icons/res/hirsch.png + + + + + + Denio + + + + :/icons/res/denio.png + + + + + + Duke + + + + :/icons/res/duke.png + + + + + + Yoda + + + + :/icons/res/yoda.png + + + + + + Berg + + + + :/icons/res/Berg.png + + + + + + Sharpee + + + + :/icons/res/sharpee.png + + + + + + Garflied + + + + :/icons/res/garfield.png + + + + + + Snoopy + + + + :/icons/res/snoopy.png + + + + + + Popey + + + + :/icons/res/popey.png + + + + + + Pinguin + + + + :/icons/res/pinguin.png + + + + + + SDLogo + + + + :/icons/res/sdlogo2.png + + + + + diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index de38e97..550081c 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -377,12 +377,28 @@ QString MainWindow::doSendChatTxValidations(Tx tx) { return ""; } -// Create a Contact Request. + +// Create a Tx from the current state of the Chat page. Tx MainWindow::createTxForSafeContactRequest() { - Tx tx; - CAmount totalAmt; - { + + Ui_Dialog request; + QDialog dialog(this); + request.setupUi(&dialog); + Settings::saveRestore(&dialog); +dialog.exec(); + + Tx tx; + QObject::connect(request.cancel, &QPushButton::clicked, [&] () { + + dialog.close(); + }); + + + QObject::connect(request.sendRequestButton, &QPushButton::clicked, this, &MainWindow::ContactRequest); + // For each addr/amt in the Chat tab + { + CAmount totalAmt; QString amtStr = "0"; CAmount amt; @@ -392,48 +408,46 @@ Tx MainWindow::createTxForSafeContactRequest() { for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) + if (request.zaddr->text().trimmed() != c.getPartnerAddress()) { - if (ui->contactNameMemo->text().trimmed() == c.getName()) { - - // QString cid = c.getCid(); // This has to be a new cid for the contact - // QString myAddr = c.getMyAddress(); // this should be a new HushChat zaddr - // QString addr = c.getPartnerAddress(); // this address will be insert by the user - QString cid = c.getCid(); - QString myAddr = c.getMyAddress(); - QString addr = c.getPartnerAddress(); - QString type = "cont"; - - + QString cid = c.getCid(); + QString myAddr = c.getMyAddress(); + QString type = "cont"; + QString addr = request.zaddr->text(); + + - QString hmemo= createHeaderMemo(type,cid,myAddr); - - tx.toAddrs.push_back(ToFields{addr, amt, hmemo}) ; + QString hmemo= createHeaderMemo(type,cid,myAddr,0,0); + QString memo = request.requestmemo->toPlainText().trimmed(); - qDebug() << "pushback chattx"; - } -} + + tx.toAddrs.push_back(ToFields{addr, amt, hmemo}); + tx.toAddrs.push_back(ToFields{addr, amt, memo}); - - tx.fee = Settings::getMinerFee(); + qDebug() << "pushback chattx"; + tx.fee = Settings::getMinerFee(); return tx; qDebug() << "ChatTx created"; + } if (request.zaddr->text().trimmed().isEmpty() == false){ + + QMessageBox msg(QMessageBox::Critical, tr("Please insert a contact Address"), request.zaddr->text(), + QMessageBox::Ok, this); + + msg.exec(); + + } + + } + } -//////////////////De-activated for now/////////////////// -void MainWindow::safeContactRequest() { +void MainWindow::ContactRequest() { - // Ui_ContactRequest contactRequest; - // QDialog dialog(this); - // contactRequest.setupUi(&dialog); - // Settings::saveRestore(&dialog); - // memoDialog.memoTxt->setLenDisplayLabel(memoDialog.memoSize); - // memoDialog.memoTxt->setAcceptButton(memoDialog.buttonBox->button(QDialogButtonBox::Ok)); - - ////////////////////////////Todo: Check if its a zaddr////////// + ////////////////////////////Todo: Check if a Contact is selected////////// // Create a Tx from the values on the send tab. Note that this Tx object // might not be valid yet. @@ -441,21 +455,24 @@ void MainWindow::safeContactRequest() { // Memos can only be used with zAddrs. So check that first // for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) - // if (ui->ContactZaddr->text().trimmed() == c.getName()) { + // if (ui->contactNameMemo->text().trimmed().isEmpty() || ui->memoTxtChat->toPlainText().trimmed().isEmpty()) { // auto addr = ""; // if (! Settings::isZAddress(AddressBook::addressFromAddressLabel(addr->text()))) { - // QMessageBox msg(QMessageBox::Critical, tr("Contact requests can only be used with z-addresses"), - // tr("The memo field can only be used with a z-address.\n") + addr->text() + tr("\ndoesn't look like a z-address"), - // QMessageBox::Ok, this); + // QMessageBox msg(QMessageBox::Critical, tr("You have to select a contact and insert a Memo"), + // tr("You have selected no Contact from Contactlist,\n") + tr("\nor your Memo is empty"), + // QMessageBox::Ok, this); - // msg.exec(); - // return; + // msg.exec(); + // return; // } - Tx tx = createTxForSafeContactRequest(); + +//}; - QString error = doSendRequestTxValidations(tx); + Tx tx = createTxForSafeContactRequest(); + + QString error = doSendChatTxValidations(tx); if (!error.isEmpty()) { // Something went wrong, so show an error and exit @@ -469,7 +486,6 @@ void MainWindow::safeContactRequest() { qDebug() << "Tx aborted"; } - // Create a new Dialog to show that we are computing/sending the Tx // Create a new Dialog to show that we are computing/sending the Tx auto d = new QDialog(this); auto connD = new Ui_ConnectionDialog(); @@ -488,9 +504,10 @@ void MainWindow::safeContactRequest() { } connD->status->setText(tr("Please wait...")); - connD->statusDetail->setText(tr("Your Contact Request will be send")); + connD->statusDetail->setText(tr("Your Message will be send")); d->show(); + ui->memoTxtChat->clear(); // And send the Tx rpc->executeTransaction(tx, @@ -509,7 +526,8 @@ void MainWindow::safeContactRequest() { }); // Force a UI update so we get the unconfirmed Tx - rpc->refresh(true); + // rpc->refresh(true); + ui->memoTxtChat->clear(); }, // Errored out @@ -527,7 +545,8 @@ void MainWindow::safeContactRequest() { QMessageBox::critical(this, QObject::tr("Transaction Error"), errStr, QMessageBox::Ok); } ); - } + + } QString MainWindow::doSendRequestTxValidations(Tx tx) { @@ -558,4 +577,4 @@ QString MainWindow::doSendRequestTxValidations(Tx tx) { } return ""; -} +} \ No newline at end of file diff --git a/src/contactmodel.cpp b/src/contactmodel.cpp index 956bd63..6131485 100644 --- a/src/contactmodel.cpp +++ b/src/contactmodel.cpp @@ -3,32 +3,27 @@ #include "mainwindow.h" void ContactModel::renderContactList(QListView* view) -{ // QStandardItem(const QIcon & icon, const QString & text) +{ QStandardItemModel* contact = new QStandardItemModel(); - //} + for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) { - //QStandardItem* Items = new QStandardItem(); auto theme = Settings::getInstance()->get_theme_name(); - if ((theme == "dark" || theme == "midnight")) { - QStandardItem* Items1 = new QStandardItem(QIcon("res/sdlogo.png"),c.getName()); - contact->appendRow(Items1); - view->setModel(contact); - view->setIconSize(QSize(60,70)); - view->setUniformItemSizes(true); - view->setDragDropMode(QAbstractItemView::DropOnly);; - } - if (theme == "default" || theme == "blue"){ + if ((theme == "dark" || theme == "midnight")) { - QStandardItem* Items1 = new QStandardItem(QIcon("res/sdlogo2.png"),c.getName()); - contact->appendRow(Items1); - view->setModel(contact); - view->setIconSize(QSize(60,70)); - view->setUniformItemSizes(true); - view->setDragDropMode(QAbstractItemView::DropOnly);; + // QIcon avatar = c.getAvatar(); + QString avatar = "res/yoda.png"; + + QStandardItem* Items1 = new QStandardItem(QIcon(avatar) ,c.getName()); + contact->appendRow(Items1); + view->setModel(contact); + view->setIconSize(QSize(60,70)); + view->setUniformItemSizes(true); + view->setDragDropMode(QAbstractItemView::DropOnly); } + diff --git a/src/contactmodel.h b/src/contactmodel.h index 2bf3fe3..b643bdb 100644 --- a/src/contactmodel.h +++ b/src/contactmodel.h @@ -14,15 +14,17 @@ class ContactItem QString _partnerAddress; QString _name; QString _cid; + QString _avatar; public: ContactItem(); - ContactItem(QString name, QString partnerAddress, QString myAddress, QString cid) + ContactItem(QString name, QString partnerAddress, QString myAddress, QString cid, QString avatar) { _name = name; _myAddress = myAddress; _partnerAddress = partnerAddress; _cid = cid; + _avatar = avatar; } QString getName() const @@ -45,6 +47,11 @@ class ContactItem return _cid; } + QString getAvatar() const + { + return _avatar; + } + void setName(QString name) { _name = name; @@ -64,10 +71,14 @@ class ContactItem { _cid = cid; } + void setAvatar(QString avatar) + { + _avatar = avatar; + } QString toQTString() { - return _name + "|" + _partnerAddress + "|" + _myAddress + "|" + _cid; + return _name + "|" + _partnerAddress + "|" + _myAddress + "|" + _cid + "|"+ _avatar; } }; diff --git a/src/contactrequest.ui b/src/contactrequest.ui index fb923db..1bd758f 100644 --- a/src/contactrequest.ui +++ b/src/contactrequest.ui @@ -1,72 +1,165 @@ - - - - + + Dialog - - + + 0 0 - 400 - 300 + 780 + 416 - + Dialog - - + + - 30 - 240 - 341 - 32 + 0 + 100 + 351 + 17 - - Qt::Horizontal + + <html><head/><body><p>Please insert the Address of your contact :</p></body></html> - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + 10 + 190 + 461 + 17 + + + + <html><head/><body><p>Insert a Message, and ask your friend for the contact request : </p><p><br/></p></body></html> + + + + + + 0 + 240 + 591 + 101 + + + + + + + 0 + 140 + 591 + 25 + + + + + + + 490 + 360 + 114 + 25 + + + + + 100 + 0 + + + + Send + + + false + + + + + + 320 + 360 + 114 + 25 + + + + + 100 + 0 + + + + Cancel + + + false + + + + + + 0 + 10 + 351 + 17 + + + + <html><head/><body><p>Please insert a Nickname for your contact :</p></body></html> + + + + + + 0 + 50 + 591 + 25 + - - buttonBox - accepted() + sendRequestButton + clicked() Dialog accept() - - 248 - 254 + + 536 + 262 - - 157 - 274 + + 389 + 207 - buttonBox - rejected() + cancel + clicked() Dialog reject() - - 316 - 260 + + 396 + 262 - - 286 - 274 + + 389 + 207 - diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a45f5b5..05126f8 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -14,6 +14,7 @@ #include "settings.h" #include "version.h" #include "connection.h" +#include "ui_contactrequest.h" #include "requestdialog.h" #include "websockets.h" #include @@ -1006,7 +1007,8 @@ void MainWindow::setupchatTab() { // Send button QObject::connect(ui->sendChatButton, &QPushButton::clicked, this, &MainWindow::sendChatButton); - QObject::connect(ui->safeContactRequest, &QPushButton::clicked, this, &MainWindow::safeContactRequest); + QObject::connect(ui->safeContactRequest, &QPushButton::clicked, this, &MainWindow::ContactRequest); + ///////// Set selected Zaddr for Chat with Doubleklick @@ -1032,6 +1034,7 @@ void MainWindow::setupchatTab() { } + ChatMemoEdit::ChatMemoEdit(QWidget* parent) : QPlainTextEdit(parent) { QObject::connect(this, &QPlainTextEdit::textChanged, this, &ChatMemoEdit::updateDisplay); } @@ -1316,6 +1319,7 @@ void MainWindow::setupReceiveTab() { // Receive tab add/update label QObject::connect(ui->rcvUpdateLabel, &QPushButton::clicked, [=]() { QString addr = ui->listReceiveAddresses->currentText(); + if (addr.isEmpty()) return; @@ -1329,7 +1333,7 @@ void MainWindow::setupReceiveTab() { if (!curLabel.isEmpty() && label.isEmpty()) { info = "Removed Label '" % curLabel % "'"; - AddressBook::getInstance()->removeAddressLabel(curLabel, addr, "", ""); + AddressBook::getInstance()->removeAddressLabel(curLabel, addr, "", "","" ); } else if (!curLabel.isEmpty() && !label.isEmpty()) { info = "Updated Label '" % curLabel % "' to '" % label % "'"; @@ -1337,7 +1341,7 @@ void MainWindow::setupReceiveTab() { } else if (curLabel.isEmpty() && !label.isEmpty()) { info = "Added Label '" % label % "'"; - AddressBook::getInstance()->addAddressLabel(label, addr, "", ""); + AddressBook::getInstance()->addAddressLabel(label, addr, "", "", ""); } // Update labels everywhere on the UI diff --git a/src/mainwindow.h b/src/mainwindow.h index 1110f67..c767128 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -108,13 +108,14 @@ private: Tx createTxFromChatPage(); Tx createTxForSafeContactRequest(); + void encryptWallet(); void removeWalletEncryption(); void cancelButton(); void sendButton(); void sendChatButton(); - void safeContactRequest(); + void ContactRequest(); void addAddressSection(); void maxAmountChecked(int checked);