diff --git a/application.qrc b/application.qrc index bb3c02c..d62ea29 100644 --- a/application.qrc +++ b/application.qrc @@ -9,7 +9,7 @@ res/icon.ico res/mail.png res/darkwing.png - res/sdlogo.png + res/SDLogo.png res/sdlogo2.png res/Berg.png res/Denio.png diff --git a/lib/Cargo.lock b/lib/Cargo.lock index e0ea0c9..d1c7722 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -1177,7 +1177,7 @@ version = "0.1.0" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=d196ad938a22810c0b6b4164e6bf8f1db0409763)", + "silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=d2887d07879a93bdd9b2c8bd12504bb977e82fe0)", ] [[package]] @@ -1640,7 +1640,7 @@ dependencies = [ [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=d196ad938a22810c0b6b4164e6bf8f1db0409763#d196ad938a22810c0b6b4164e6bf8f1db0409763" +source = "git+https://github.com/DenioD/silentdragonlite-cli?rev=d2887d07879a93bdd9b2c8bd12504bb977e82fe0#d2887d07879a93bdd9b2c8bd12504bb977e82fe0" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2631,7 +2631,7 @@ dependencies = [ "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" "checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=d196ad938a22810c0b6b4164e6bf8f1db0409763)" = "" +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/DenioD/silentdragonlite-cli?rev=d2887d07879a93bdd9b2c8bd12504bb977e82fe0)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index dba0c30..d46b55f 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "d196ad938a22810c0b6b4164e6bf8f1db0409763" } +silentdragonlitelib = { git = "https://github.com/DenioD/silentdragonlite-cli", rev = "d2887d07879a93bdd9b2c8bd12504bb977e82fe0" } diff --git a/res/sdlogo.png b/res/SDLogo.png similarity index 100% rename from res/sdlogo.png rename to res/SDLogo.png diff --git a/src/FileSystem/FileSystem.cpp b/src/FileSystem/FileSystem.cpp index f7d37be..055ca88 100644 --- a/src/FileSystem/FileSystem.cpp +++ b/src/FileSystem/FileSystem.cpp @@ -1,11 +1,7 @@ -// Copyright 2019-2020 The Hush developers -// GPLv3 - #include "FileSystem.h" + #include #include -#include "../Crypto/passwd.h" -#include "addressbook.h" FileSystem::FileSystem() { @@ -23,9 +19,9 @@ FileSystem* FileSystem::getInstance() return FileSystem::instance; } -QList FileSystem::readContacts(QString file) +/*QList FileSystem::readContacts(QString file) { - return this->readContactsOldFormat(file); //will be called if addresses are in the old dat-format + //return this->readContactsOldFormat(file); //will be called if addresses are in the old dat-format QFile _file(file); if (_file.exists()) @@ -83,7 +79,7 @@ void FileSystem::writeContactsOldFormat(QString file, QList contact c.push_back(item.getAvatar()); _contacts.push_back(c); } - out << QString("v2") << _contacts; + out << QString("v0") << _contacts; _file.close(); } @@ -96,68 +92,20 @@ QList FileSystem::readContactsOldFormat(QString file) contacts.clear(); _file.open(QIODevice::ReadOnly); QDataStream in(&_file); // read the data serialized from the file - if(in.status() == QDataStream::ReadCorruptData) + QString version; + in >> version; + qDebug() << "Read " << version << " Hush contacts from disk..."; + qDebug() << "Detected old addressbook format"; + QList> stuff; + in >> stuff; + //qDebug() << "Stuff: " << stuff; + for (int i=0; i < stuff.size(); i++) { - qDebug() << "Error reading contacts! ---> Your hush contacts from disk maybe corrupted"; - QFile::rename(file, file + QString(".corrupted")); - QMessageBox::critical( - nullptr, - QObject::tr("Error reading contacts!"), - QObject::tr("Your hush contacts from disk maybe corrupted"), - QMessageBox::Ok - ); - } - else - { - QString version; - in >> version; - if(version == "v1") - { - qDebug() << "Detected old addressbook format"; - // Convert old addressbook format v1 to v2 - QList> stuff; - in >> stuff; - qDebug() << "Stuff: " << stuff; - for (int i=0; i < stuff.size(); i++) - { - ContactItem contact = ContactItem(stuff[i].first, stuff[i].second); - contacts.push_back(contact); - qDebug() << "contact=" << contact.toQTString(); - } - - } - else - { - qDebug() << "Read " << version << " Hush contacts from disk..."; - QList> stuff; - in >> stuff; - qDebug() << "Dataarray size: " << stuff.size(); - if(stuff.size() == 0) - return contacts; - - for (int i= 0; i < stuff.size(); i++) - { - qDebug() << stuff[i].size(); - ContactItem contact; - if(stuff[i].size() == 4) - { - contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3]); - } - else - { - contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]); - } - - qDebug() << contact.toQTString(); - contacts.push_back(contact); - } - - - } - - qDebug() << "Hush contacts readed from disk..."; + ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]); + contacts.push_back(contact); + } - + _file.close(); } else @@ -173,7 +121,7 @@ FileSystem::~FileSystem() this->instance = nullptr; this->instanced = false; delete this->instance; -} +}*/ FileSystem *FileSystem::instance = nullptr; bool FileSystem::instanced = false; \ No newline at end of file diff --git a/src/Model/ContactItem.h b/src/Model/ContactItem.h index edb512d..63b4b39 100644 --- a/src/Model/ContactItem.h +++ b/src/Model/ContactItem.h @@ -11,11 +11,11 @@ using json = nlohmann::json; class ContactItem { private: - QString _myAddress = ""; - QString _partnerAddress = ""; - QString _name = ""; - QString _cid = ""; - QString _avatar = ":/icons/res/sdlogo.png"; + QString _myAddress; + QString _partnerAddress; + QString _name; + QString _cid; + QString _avatar; public: ContactItem(); diff --git a/src/addressbook.cpp b/src/addressbook.cpp index 6d7f913..591a9c0 100644 --- a/src/addressbook.cpp +++ b/src/addressbook.cpp @@ -39,9 +39,7 @@ void AddressBookModel::loadData() parent->horizontalHeader()->restoreState( QSettings().value( "addresstablegeometry" - ).toByteArray() - - + ).toByteArray() ); } @@ -241,9 +239,14 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target) return; - rpc->refresh(true); + // rpc->refresh(true); model.updateUi(); + rpc->refreshContacts( + parent->ui->listContactWidget + + ); + }); // AddressBook::getInstance()->addAddressLabel(newLabel, ab.addr->text(), cid); @@ -380,7 +383,7 @@ AddressBook::AddressBook() void AddressBook::readFromStorage() { - /*QFile file(AddressBook::writeableFile()); + QFile file(AddressBook::writeableFile()); if (file.exists()) { @@ -394,40 +397,44 @@ void AddressBook::readFromStorage() QList> stuff; in >> stuff; //qDebug() << "Stuff: " << stuff; + for (int i=0; i < stuff.size(); i++) { - //qDebug() << "0:" << stuff[i][0]; + //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],stuff[i][4]); //qDebug() << "contact=" << contact.toQTString(); allLabels.push_back(contact); } - - { - qDebug() << "Read " << version << " Hush contacts from disk..."; - + + qDebug() << "Read " << version << " Hush contacts from disk..."; file.close(); } - }else{ - { - qDebug() << "No Hush contacts found on disk!"; - } - }*/ - allLabels = FileSystem::getInstance()->readContacts(AddressBook::writeableFile()); + else + { + qDebug() << "No Hush contacts found on disk!"; + } - // test to see if the contact items in datastore are correctly dumped to json - DataStore::getContactDataStore()->dump(); + // Special. + // Add the default silentdragon donation address if it isn't already present + // QList allAddresses; + // std::transform(allLabels.begin(), allLabels.end(), + // std::back_inserter(allAddresses), [=] (auto i) { return i.getPartnerAddress(); }); + // if (!allAddresses.contains(Settings::getDonationAddr(true))) { + // allLabels.append(QPair("silentdragon donation", Settings::getDonationAddr(true))); + // } } + void AddressBook::writeToStorage() { //FileSystem::getInstance()->writeContacts(AddressBook::writeableFile(), DataStore::getContactDataStore()->dump()); - FileSystem::getInstance()->writeContactsOldFormat(AddressBook::writeableFile(), allLabels); + // FileSystem::getInstance()->writeContactsOldFormat(AddressBook::writeableFile(), allLabels); - /*QFile file(AddressBook::writeableFile()); + QFile file(AddressBook::writeableFile()); file.open(QIODevice::ReadWrite | QIODevice::Truncate); QDataStream out(&file); // we will serialize the data into the file QList> contacts; @@ -442,7 +449,7 @@ void AddressBook::writeToStorage() contacts.push_back(c); } out << QString("v1") << contacts; - file.close();*/ + file.close(); } QString AddressBook::writeableFile() diff --git a/src/addressbook.ui b/src/addressbook.ui index 1bcf214..dd0d06d 100644 --- a/src/addressbook.ui +++ b/src/addressbook.ui @@ -69,7 +69,7 @@ - :/icons/res/sdlogo.png + :/icons/res/SDLogo.png diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 445a6f1..f25fe79 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -239,17 +239,15 @@ void MainWindow::renderContactRequest(){ qDebug()<<"Beginn kopiert" <addAddressLabel(newLabel, addr, myAddr, cid, avatar); + rpc->refreshContacts( + ui->listContactWidget); - QMessageBox::information(this, "Added Contact","successfully added your new contact. You can now Chat with this contact"); + QMessageBox::information(this, "Added Contact","successfully added your new contact. You can now Chat with this contact"); }); dialog.exec(); - rpc->refreshContacts( - ui->listContactWidget - - ); } void ChatModel::addCid(QString tx, QString cid) @@ -776,7 +774,8 @@ void::MainWindow::addContact() request.setupUi(&dialog); Settings::saveRestore(&dialog); - + try + { bool sapling = true; rpc->createNewZaddr(sapling, [=] (json reply) { QString myAddr = QString::fromStdString(reply.get()[0]); @@ -786,11 +785,15 @@ void::MainWindow::addContact() ui->listReceiveAddresses->setCurrentIndex(0); qDebug() << "new generated myAddr add Contact" << myAddr; }); - + + }catch(...) + { + + + qDebug() << QString("Caught something nasty with myZaddr Contact"); + } + QString cid = QUuid::createUuid().toString(QUuid::WithoutBraces); - - - QObject::connect(request.sendRequestButton, &QPushButton::clicked, [&] () { @@ -940,7 +943,10 @@ void MainWindow::ContactRequest() { delete d; }); - QString addr = contactRequest.getReceiverAddress(); + + /////Add this contact after we sent the request + + QString addr = contactRequest.getReceiverAddress(); QString newLabel = contactRequest.getLabel(); QString myAddr = contactRequest.getSenderAddress(); QString cid = contactRequest.getCid(); @@ -973,17 +979,22 @@ void MainWindow::ContactRequest() { ////// Success, so show it AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid, avatar); + rpc->refreshContacts( + ui->listContactWidget); QMessageBox::information( this, QObject::tr("Added Contact"), QObject::tr("successfully added your new contact").arg(newLabel), QMessageBox::Ok + ); return; // Force a UI update so we get the unconfirmed Tx // rpc->refresh(true); ui->memoTxtChat->clear(); rpc->refresh(true); + rpc->refreshContacts( + ui->listContactWidget); }, // Errored out diff --git a/src/contactrequest.ui b/src/contactrequest.ui index cd4120b..9b28dca 100644 --- a/src/contactrequest.ui +++ b/src/contactrequest.ui @@ -42,7 +42,7 @@ - :/icons/res/sdlogo.png + :/icons/res/SDLogo.png diff --git a/src/controller.cpp b/src/controller.cpp index 17f80bc..0c79240 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -922,8 +922,6 @@ void Controller::refreshTransactions() { isNotarized = false; } - qDebug()<<"Conf : " << confirmations; - ChatItem item = ChatItem( datetime, address, @@ -1078,7 +1076,6 @@ void Controller::refreshTransactions() { } } } - qDebug()<<"get Lag" << getLag(); // Calculate the total unspent amount that's pending. This will need to be // shown in the UI so the user can keep track of pending funds @@ -1098,10 +1095,7 @@ void Controller::refreshTransactions() { // Update model data, which updates the table view transactionsTableModel->replaceData(txdata); chat->renderChatBox(ui, ui->listChat,ui->memoSizeChat); - // refreshContacts( - // ui->listContactWidget - - // ); + }); } diff --git a/src/requestContactDialog.ui b/src/requestContactDialog.ui index f8cb244..4beeced 100644 --- a/src/requestContactDialog.ui +++ b/src/requestContactDialog.ui @@ -209,7 +209,7 @@ - :/icons/res/sdlogo.png + :/icons/res/SDLogo.png