| 37 | |
| 38 | |
| 39 | void ExtractNotes::extract() { |
| 40 | if (outputFile.trimmed() == "") { |
| 41 | std::cout << QString(tr("Output file not specified.")).toStdString() << endl; |
| 42 | return; |
| 43 | } |
| 44 | if (query != "") { |
| 45 | FilterCriteria *filter = new FilterCriteria(); |
| 46 | global.filterCriteria.append(filter); |
| 47 | global.filterPosition = 0; |
| 48 | FilterEngine engine; |
| 49 | filter->setSearchString(query); |
| 50 | QList<qint32> lids; |
| 51 | engine.filter(filter, &lids); |
| 52 | this->lids.append(lids); |
| 53 | } |
| 54 | |
| 55 | ExportData exports(backup, true, this); |
| 56 | if (!backup) { |
| 57 | exports.lids.append(this->lids); |
| 58 | } |
| 59 | exports.backupData(this->outputFile); |
| 60 | |
| 61 | if (deleteAfterExtract) { |
| 62 | if (verifyDelete) { |
| 63 | std::string verify; |
| 64 | std::cout << QString(tr("Deleting notes:")).toStdString() << endl; |
| 65 | std::cout << QString(tr("Type DELETE to verify: ")).toStdString(); |
| 66 | std::cin >> verify; |
| 67 | QString qVerify = QString::fromStdString(verify); |
| 68 | if (qVerify.toLower() != "delete") |
| 69 | return; |
| 70 | } |
| 71 | NoteTable ntable(global.db); |
| 72 | for (int i=0; i<lids.size(); i++) { |
| 73 | ntable.deleteNote(lids[i],true); |
| 74 | } |
| 75 | } |
| 76 | |
| 77 | } |
| 78 | |
| 79 | |
| 80 | void ExtractNotes::backupDB() { |
no test coverage detected