diff options
author | Benjamin Dobell <benjamin.dobell+git@glassechidna.com.au> | 2015-03-09 16:49:32 +0100 |
---|---|---|
committer | Benjamin Dobell <benjamin.dobell+git@glassechidna.com.au> | 2015-03-09 16:53:28 +0100 |
commit | 6971b49f85d9ddeb2da968a594d65affec3d2b44 (patch) | |
tree | 620c821e72045b3b547982efb3d068d5354de9ce /heimdall-frontend/source/PackageData.cpp | |
parent | Completed basic firmware file selection functionality (diff) | |
download | Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.gz Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.bz2 Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.lz Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.xz Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.tar.zst Heimdall-6971b49f85d9ddeb2da968a594d65affec3d2b44.zip |
Diffstat (limited to 'heimdall-frontend/source/PackageData.cpp')
-rw-r--r-- | heimdall-frontend/source/PackageData.cpp | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/heimdall-frontend/source/PackageData.cpp b/heimdall-frontend/source/PackageData.cpp index c3689b3..23ef720 100644 --- a/heimdall-frontend/source/PackageData.cpp +++ b/heimdall-frontend/source/PackageData.cpp @@ -30,37 +30,40 @@ PackageData::PackageData() PackageData::~PackageData() { - for (int i = 0; i < files.length(); i++) - delete files[i]; + Clear(true); } -void PackageData::Clear(void) +void PackageData::Clear(bool deletePackageDirectory) { - firmwareInfo.Clear(); - - for (int i = 0; i < files.length(); i++) - delete files[i]; + if (deletePackageDirectory) + { + packageDirectory.removeRecursively(); + } - files.clear(); + packageDirectory.setPath(QString()); + firmwareInfo.Clear(); + filePaths.clear(); } -bool PackageData::ReadFirmwareInfo(QFile *file) +bool PackageData::ReadFirmwareInfo(const QString& path) { - if (!file->open(QFile::ReadOnly)) + QFile file(path); + + if (!file.open(QFile::ReadOnly)) { - Alerts::DisplayError(QString("Failed to open file: \1%s").arg(file->fileName())); + Alerts::DisplayError(QString("Failed to open file: %1").arg(path)); return (false); } - QXmlStreamReader xml(file); + QXmlStreamReader xml(&file); bool success = firmwareInfo.ParseXml(xml); - file->close(); - return (success); } bool PackageData::IsCleared(void) const { - return (firmwareInfo.IsCleared() && files.isEmpty()); + return (packageDirectory.path().length() == 0 + && firmwareInfo.IsCleared() + && filePaths.isEmpty()); } |