| 749 | } |
| 750 | |
| 751 | bool ProfileTransfer::commitExportFile(QString* error) |
| 752 | { |
| 753 | if (!m_saveFile) { |
| 754 | *error = QStringLiteral("Export file is not open."); |
| 755 | return false; |
| 756 | } |
| 757 | |
| 758 | if (!m_saveFile->commit()) { |
| 759 | *error = QStringLiteral("Could not finalize export package: %1").arg(m_saveFile->errorString()); |
| 760 | return false; |
| 761 | } |
| 762 | m_saveFile->deleteLater(); |
| 763 | m_saveFile = nullptr; |
| 764 | |
| 765 | QFile file(m_path); |
| 766 | if (!file.open(QIODevice::ReadOnly)) { |
| 767 | *error = QStringLiteral("Could not verify exported package."); |
| 768 | return false; |
| 769 | } |
| 770 | const QByteArray magic = file.read(4); |
| 771 | if (magic.size() >= 2 && magic.left(2) != "PK") { |
| 772 | qCWarning(lcProtocol) << "ProfileTransfer: exported package does not start with ZIP magic"; |
| 773 | } |
| 774 | return true; |
| 775 | } |
| 776 | |
| 777 | } // namespace AetherSDR |