diff --git a/src/addressbook.cpp b/src/addressbook.cpp index c3fdc6c..2c7c107 100644 --- a/src/addressbook.cpp +++ b/src/addressbook.cpp @@ -373,35 +373,38 @@ void AddressBook::readFromStorage() in >> version; 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++) + if(in.status() == QDataStream::ReadCorruptData) { - //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() << "Error reading contacts! ---> Your hush contacts from disk maybe corrupted"; + QString filepath = QFileInfo(AddressBook::writeableFile()).absolutePath() + QString("/"); + QFile::rename(filepath + QString("addresslabels.dat"), filepath + QString("addresslabels.dat-corrupted")); + QMessageBox::critical( + nullptr, + QObject::tr("Error reading contacts!"), + QObject::tr("Your hush contacts from disk maybe corrupted"), + QMessageBox::Ok + ); } - - qDebug() << "Read " << version << " Hush contacts from disk..."; + else + { + qDebug() << "Read " << version << " Hush contacts from disk..."; + QList> stuff; + in >> stuff; + for (int i=0; i < stuff.size(); i++) + { + ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]); + allLabels.push_back(contact); + } + + qDebug() << "Hush contacts readed from disk..."; + } + file.close(); } else { qDebug() << "No Hush contacts found on disk!"; } - - // 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()