diff --git a/src/fs/CMakeLists.txt b/src/fs/CMakeLists.txt index 2755bd8..8a03a17 100644 --- a/src/fs/CMakeLists.txt +++ b/src/fs/CMakeLists.txt @@ -11,7 +11,6 @@ set(FS_SRC fs/fat12.cpp fs/fat16.cpp fs/fat32.cpp - fs/feature.cpp fs/filesystem.cpp fs/filesystemfactory.cpp fs/hfs.cpp @@ -51,7 +50,6 @@ set(FS_LIB_HDRS fs/fat12.h fs/fat16.h fs/fat32.h - fs/feature.h fs/filesystem.h fs/filesystemfactory.h fs/hfs.h diff --git a/src/fs/apfs.cpp b/src/fs/apfs.cpp index 470a83b..52f126a 100644 --- a/src/fs/apfs.cpp +++ b/src/fs/apfs.cpp @@ -23,7 +23,7 @@ FileSystem::CommandSupportType apfs::m_Move = FileSystem::cmdSupportCore; FileSystem::CommandSupportType apfs::m_Copy = FileSystem::cmdSupportCore; FileSystem::CommandSupportType apfs::m_Backup = FileSystem::cmdSupportCore; -apfs::apfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +apfs::apfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Apfs) { } diff --git a/src/fs/apfs.h b/src/fs/apfs.h index 9a9fb7d..3d080b5 100644 --- a/src/fs/apfs.h +++ b/src/fs/apfs.h @@ -34,7 +34,7 @@ namespace FS class LIBKPMCORE_EXPORT apfs : public FileSystem { public: - apfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + apfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: CommandSupportType supportMove() const override { diff --git a/src/fs/bitlocker.cpp b/src/fs/bitlocker.cpp index 3eadfbf..8f131b4 100644 --- a/src/fs/bitlocker.cpp +++ b/src/fs/bitlocker.cpp @@ -23,7 +23,7 @@ FileSystem::CommandSupportType bitlocker::m_Move = FileSystem::cmdSupportCore; FileSystem::CommandSupportType bitlocker::m_Copy = FileSystem::cmdSupportCore; FileSystem::CommandSupportType bitlocker::m_Backup = FileSystem::cmdSupportCore; -bitlocker::bitlocker(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +bitlocker::bitlocker(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::BitLocker) { } diff --git a/src/fs/bitlocker.h b/src/fs/bitlocker.h index 2fcfda6..e602d79 100644 --- a/src/fs/bitlocker.h +++ b/src/fs/bitlocker.h @@ -34,7 +34,7 @@ namespace FS class LIBKPMCORE_EXPORT bitlocker : public FileSystem { public: - bitlocker(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + bitlocker(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: CommandSupportType supportMove() const override { diff --git a/src/fs/btrfs.cpp b/src/fs/btrfs.cpp index 324e588..f27ad2b 100644 --- a/src/fs/btrfs.cpp +++ b/src/fs/btrfs.cpp @@ -43,7 +43,7 @@ FileSystem::CommandSupportType btrfs::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType btrfs::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType btrfs::m_GetUUID = FileSystem::cmdSupportNone; -btrfs::btrfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +btrfs::btrfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Btrfs) { } @@ -74,7 +74,7 @@ void btrfs::init() // First line is introductory text, we don't need it lines.removeFirst(); - for (auto l : lines) { + for (const auto& l: lines) { if (!l.isEmpty()) addAvailableFeature(l.split(QStringLiteral(" ")).first()); } @@ -148,12 +148,15 @@ bool btrfs::create(Report& report, const QString& deviceNode) if (!this->features().isEmpty()) { QStringList feature_list = QStringList(); - for (auto f : this->features()) { - if (f.type() == FSFeature::Type::Bool) { - if (f.bValue()) - feature_list << f.name(); - else - feature_list << (QStringLiteral("^") + f.name()); + for (const auto& k : this->features().keys()) { + const auto& v = this->features().value(k); + if (v.type() == QVariant::Type::Bool) { + if (v.toBool()) + feature_list << k; + else + feature_list << (QStringLiteral("^") + k); + } else { + qWarning() << "Ignoring feature" << k << "of type" << v.type() << "; requires type QVariant::bool."; } } args << QStringLiteral("--features") << feature_list.join(QStringLiteral(",")); diff --git a/src/fs/btrfs.h b/src/fs/btrfs.h index fded355..9277cb4 100644 --- a/src/fs/btrfs.h +++ b/src/fs/btrfs.h @@ -38,7 +38,7 @@ namespace FS class LIBKPMCORE_EXPORT btrfs : public FileSystem { public: - btrfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + btrfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/exfat.cpp b/src/fs/exfat.cpp index 4cf7b7c..7c7c962 100644 --- a/src/fs/exfat.cpp +++ b/src/fs/exfat.cpp @@ -38,7 +38,7 @@ FileSystem::CommandSupportType exfat::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType exfat::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType exfat::m_GetUUID = FileSystem::cmdSupportNone; -exfat::exfat(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +exfat::exfat(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Exfat) { } diff --git a/src/fs/exfat.h b/src/fs/exfat.h index ca88f8f..43b5de9 100644 --- a/src/fs/exfat.h +++ b/src/fs/exfat.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT exfat : public FileSystem { public: - exfat(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + exfat(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/ext2.cpp b/src/fs/ext2.cpp index 7360ee1..688e135 100644 --- a/src/fs/ext2.cpp +++ b/src/fs/ext2.cpp @@ -39,7 +39,7 @@ FileSystem::CommandSupportType ext2::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType ext2::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType ext2::m_GetUUID = FileSystem::cmdSupportNone; -ext2::ext2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features, FileSystem::Type t) : +ext2::ext2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features, FileSystem::Type t) : FileSystem(firstsector, lastsector, sectorsused, label, features, t) { } @@ -168,12 +168,15 @@ bool ext2::create(Report& report, const QString& deviceNode) if (!this->features().isEmpty()) { QStringList feature_list = QStringList(); - for (auto f : this->features()) { - if (f.type() == FSFeature::Type::Bool) { - if (f.bValue()) - feature_list << f.name(); - else - feature_list << (QStringLiteral("^") + f.name()); + for (const auto& k : this->features().keys()) { + const auto& v = this->features().value(k); + if (v.type() == QVariant::Type::Bool) { + if (v.toBool()) + feature_list << k; + else + feature_list << (QStringLiteral("^") + k); + } else { + qWarning() << "Ignoring feature" << k << "of type" << v.type() << "; requires type QVariant::bool."; } } args << QStringLiteral("-O") << feature_list.join(QStringLiteral(",")); diff --git a/src/fs/ext2.h b/src/fs/ext2.h index 4b0eaca..32b0eac 100644 --- a/src/fs/ext2.h +++ b/src/fs/ext2.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT ext2 : public FileSystem { public: - ext2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}, FileSystem::Type t = FileSystem::Type::Ext2); + ext2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}, FileSystem::Type t = FileSystem::Type::Ext2); public: void init() override; diff --git a/src/fs/ext3.cpp b/src/fs/ext3.cpp index 6ef17fe..af81047 100644 --- a/src/fs/ext3.cpp +++ b/src/fs/ext3.cpp @@ -24,7 +24,7 @@ namespace FS { -ext3::ext3(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +ext3::ext3(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : ext2(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Ext3) { } @@ -40,12 +40,15 @@ bool ext3::create(Report& report, const QString& deviceNode) if (!this->features().isEmpty()) { QStringList feature_list = QStringList(); - for (auto f : this->features()) { - if (f.type() == FSFeature::Type::Bool) { - if (f.bValue()) - feature_list << f.name(); - else - feature_list << (QStringLiteral("^") + f.name()); + for (const auto& k : this->features().keys()) { + const auto& v = this->features().value(k); + if (v.type() == QVariant::Type::Bool) { + if (v.toBool()) + feature_list << k; + else + feature_list << (QStringLiteral("^") + k); + } else { + qWarning() << "Ignoring feature" << k << "of type" << v.type() << "; requires type QVariant::bool."; } } args << QStringLiteral("-O") << feature_list.join(QStringLiteral(",")); diff --git a/src/fs/ext3.h b/src/fs/ext3.h index 7e5949c..c21da82 100644 --- a/src/fs/ext3.h +++ b/src/fs/ext3.h @@ -40,7 +40,7 @@ namespace FS class LIBKPMCORE_EXPORT ext3 : public ext2 { public: - ext3(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + ext3(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: bool create(Report& report, const QString& deviceNode) override; diff --git a/src/fs/ext4.cpp b/src/fs/ext4.cpp index a70a5a3..3692eb5 100644 --- a/src/fs/ext4.cpp +++ b/src/fs/ext4.cpp @@ -24,7 +24,7 @@ namespace FS { -ext4::ext4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +ext4::ext4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : ext2(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Ext4) { } @@ -40,12 +40,15 @@ bool ext4::create(Report& report, const QString& deviceNode) if (!this->features().isEmpty()) { QStringList feature_list = QStringList(); - for (auto f : this->features()) { - if (f.type() == FSFeature::Type::Bool) { - if (f.bValue()) - feature_list << f.name(); - else - feature_list << (QStringLiteral("^") + f.name()); + for (const auto& k : this->features().keys()) { + const auto& v = this->features().value(k); + if (v.type() == QVariant::Type::Bool) { + if (v.toBool()) + feature_list << k; + else + feature_list << (QStringLiteral("^") + k); + } else { + qWarning() << "Ignoring feature" << k << "of type" << v.type() << "; requires type QVariant::bool."; } } args << QStringLiteral("-O") << feature_list.join(QStringLiteral(",")); diff --git a/src/fs/ext4.h b/src/fs/ext4.h index 12e4528..64562da 100644 --- a/src/fs/ext4.h +++ b/src/fs/ext4.h @@ -40,7 +40,7 @@ namespace FS class LIBKPMCORE_EXPORT ext4 : public ext2 { public: - ext4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + ext4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: bool create(Report& report, const QString& deviceNode) override; diff --git a/src/fs/extended.cpp b/src/fs/extended.cpp index ae9bea9..bf1d859 100644 --- a/src/fs/extended.cpp +++ b/src/fs/extended.cpp @@ -24,7 +24,7 @@ FileSystem::CommandSupportType extended::m_Grow = FileSystem::cmdSupportCore; FileSystem::CommandSupportType extended::m_Shrink = FileSystem::cmdSupportCore; FileSystem::CommandSupportType extended::m_Move = FileSystem::cmdSupportCore; -extended::extended(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +extended::extended(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Extended) { } diff --git a/src/fs/extended.h b/src/fs/extended.h index 1bd6bc6..73e1949 100644 --- a/src/fs/extended.h +++ b/src/fs/extended.h @@ -40,7 +40,7 @@ namespace FS class LIBKPMCORE_EXPORT extended : public FileSystem { public: - extended(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + extended(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: diff --git a/src/fs/f2fs.cpp b/src/fs/f2fs.cpp index 85d311d..8ef1242 100644 --- a/src/fs/f2fs.cpp +++ b/src/fs/f2fs.cpp @@ -45,7 +45,7 @@ FileSystem::CommandSupportType f2fs::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType f2fs::m_GetUUID = FileSystem::cmdSupportNone; bool f2fs::oldVersion = false; // 1.8.x or older -f2fs::f2fs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +f2fs::f2fs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::F2fs) { } diff --git a/src/fs/f2fs.h b/src/fs/f2fs.h index 65031cf..f3c8a56 100644 --- a/src/fs/f2fs.h +++ b/src/fs/f2fs.h @@ -36,7 +36,7 @@ namespace FS class LIBKPMCORE_EXPORT f2fs : public FileSystem { public: - f2fs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + f2fs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/fat12.cpp b/src/fs/fat12.cpp index ac55d25..a098dbe 100644 --- a/src/fs/fat12.cpp +++ b/src/fs/fat12.cpp @@ -49,7 +49,7 @@ FileSystem::CommandSupportType fat12::m_Backup = FileSystem::cmdSupportNone; FileSystem::CommandSupportType fat12::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType fat12::m_GetUUID = FileSystem::cmdSupportNone; -fat12::fat12(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features, FileSystem::Type t) : +fat12::fat12(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features, FileSystem::Type t) : FileSystem(firstsector, lastsector, sectorsused, label, features, t) { } @@ -66,8 +66,8 @@ void fat12::init() m_GetUUID = cmdSupportCore; if (m_Create == cmdSupportFileSystem) { - addAvailableFeature(QStringLiteral("sector-size"), FSFeature::Type::Int); - addAvailableFeature(QStringLiteral("sectors-per-cluster"), FSFeature::Type::Int); + addAvailableFeature(QStringLiteral("sector-size")); + addAvailableFeature(QStringLiteral("sectors-per-cluster")); } } @@ -169,17 +169,18 @@ bool fat12::createWithFatSize(Report &report, const QString& deviceNode, int fat if (fatSize != 12 && fatSize != 16 && fatSize != 32) return false; - for (auto f : this->features()) { - if (f.name() == QStringLiteral("sector-size")) { - quint32 sectorSize = f.iValue(); + for (const auto& k : this->features().keys()) { + const auto& v = this->features().value(k); + if (k == QStringLiteral("sector-size")) { + quint32 sectorSize = v.toInt(); /* sectorSize has to be a power of 2 between 512 and 32768 */ if (sectorSize >= 512 && sectorSize <= 32768 && sectorSize == qNextPowerOfTwo(sectorSize - 1)) args << QStringLiteral("-S%1").arg(sectorSize); else qWarning() << QStringLiteral("FAT sector size %1 is invalid, using default").arg(sectorSize); - } else if (f.name() == QStringLiteral("sectors-per-cluster")) { - quint32 sectorsPerCluster = f.iValue(); + } else if (k == QStringLiteral("sectors-per-cluster")) { + quint32 sectorsPerCluster = v.toInt(); /* sectorsPerCluster has to be a power of 2 between 2 and 128 */ if (sectorsPerCluster <= 128 && sectorsPerCluster == qNextPowerOfTwo(sectorsPerCluster - 1)) diff --git a/src/fs/fat12.h b/src/fs/fat12.h index 22635a5..4c08aac 100644 --- a/src/fs/fat12.h +++ b/src/fs/fat12.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT fat12 : public FileSystem { public: - fat12(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}, FileSystem::Type t = FileSystem::Type::Fat12); + fat12(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}, FileSystem::Type t = FileSystem::Type::Fat12); public: void init() override; diff --git a/src/fs/fat16.cpp b/src/fs/fat16.cpp index 4db1b35..fb0e6e3 100644 --- a/src/fs/fat16.cpp +++ b/src/fs/fat16.cpp @@ -31,7 +31,7 @@ namespace FS { -fat16::fat16(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features, FileSystem::Type type) : +fat16::fat16(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features, FileSystem::Type type) : fat12(firstsector, lastsector, sectorsused, label, features, type) { } @@ -50,8 +50,8 @@ void fat16::init() m_GetUUID = cmdSupportCore; if (m_Create == cmdSupportFileSystem) { - addAvailableFeature(QStringLiteral("sector-size"), FSFeature::Type::Int); - addAvailableFeature(QStringLiteral("sectors-per-cluster"), FSFeature::Type::Int); + addAvailableFeature(QStringLiteral("sector-size")); + addAvailableFeature(QStringLiteral("sectors-per-cluster")); } } diff --git a/src/fs/fat16.h b/src/fs/fat16.h index 57e5456..edceb58 100644 --- a/src/fs/fat16.h +++ b/src/fs/fat16.h @@ -33,7 +33,7 @@ namespace FS class LIBKPMCORE_EXPORT fat16 : public fat12 { public: - fat16(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}, FileSystem::Type type = FileSystem::Type::Fat16); + fat16(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}, FileSystem::Type type = FileSystem::Type::Fat16); public: void init() override; diff --git a/src/fs/fat32.cpp b/src/fs/fat32.cpp index 22ba321..8e5b709 100644 --- a/src/fs/fat32.cpp +++ b/src/fs/fat32.cpp @@ -26,7 +26,7 @@ namespace FS { -fat32::fat32(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +fat32::fat32(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : fat16(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Fat32) { } diff --git a/src/fs/fat32.h b/src/fs/fat32.h index e5b467b..4bbdc93 100644 --- a/src/fs/fat32.h +++ b/src/fs/fat32.h @@ -40,7 +40,7 @@ namespace FS class LIBKPMCORE_EXPORT fat32 : public fat16 { public: - fat32(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + fat32(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: bool create(Report& report, const QString& deviceNode) override; diff --git a/src/fs/feature.cpp b/src/fs/feature.cpp deleted file mode 100644 index bb1b001..0000000 --- a/src/fs/feature.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/************************************************************************* - * Copyright (C) 2019 by Collabora Ltd * - * * - * This program is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of * - * the License, or (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program. If not, see .* - *************************************************************************/ - -#include "fs/filesystem.h" - -struct FSFeaturePrivate { - QString m_name; - FSFeature::Type m_type; - bool m_boolean; - int m_integer; - QString m_string; -}; - -FSFeature::FSFeature(const QString& n, FSFeature::Type t) : - d(std::make_unique()) -{ - d->m_name = n; - d->m_type = t; -} - -FSFeature::FSFeature(const QString& n, bool b) : - d(std::make_unique()) -{ - d->m_name = n; - d->m_type = FSFeature::Type::Bool; - d->m_boolean = b; -} - -FSFeature::FSFeature(const QString& n, int i) : - d(std::make_unique()) -{ - d->m_name = n; - d->m_type = FSFeature::Type::Int; - d->m_integer = i; -} - -FSFeature::FSFeature(const QString& n, const QString& s) : - d(std::make_unique()) -{ - d->m_name = n; - d->m_type = FSFeature::Type::String; - d->m_string = s; -} - -FSFeature::FSFeature(const FSFeature& other) : - d(std::make_unique(*(other.d))) -{ -} - -FSFeature::~FSFeature() -{ -} - -FSFeature& FSFeature::operator=(const FSFeature& other) -{ - if (&other != this) - *d = *(other.d); - - return *this; -} - -const QString& FSFeature::name() -{ - return d->m_name; -} - -FSFeature::Type FSFeature::type() -{ - return d->m_type; -} - -bool FSFeature::bValue() -{ - return d->m_boolean; -} - -int FSFeature::iValue() -{ - return d->m_integer; -} - -const QString& FSFeature::sValue() -{ - return d->m_string; -} - -bool FSFeature::setValue(bool b) -{ - if (d->m_type != FSFeature::Type::Bool) - return false; - - d->m_boolean = b; - return true; -} - -bool FSFeature::setValue(int i) -{ - if (d->m_type != FSFeature::Type::Int) - return false; - - d->m_integer = i; - return true; -} - -bool FSFeature::setValue(const QString& s) -{ - if (d->m_type != FSFeature::Type::String) - return false; - - d->m_string = s; - return true; -} diff --git a/src/fs/feature.h b/src/fs/feature.h deleted file mode 100644 index ffa6e58..0000000 --- a/src/fs/feature.h +++ /dev/null @@ -1,77 +0,0 @@ -/************************************************************************* - * Copyright (C) 2019 by Collabora Ltd * - * * - * This program is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of * - * the License, or (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program. If not, see .* - *************************************************************************/ - -#ifndef KPMCORE_FSFEATURE_H -#define KPMCORE_FSFEATURE_H - -#include "util/libpartitionmanagerexport.h" - -#include - -#include - -struct FSFeaturePrivate; - -/** - * Class for filesystem-specific features - * - * FSFeatures have a name, type (boolean, integer or string) and value. - * This class can be used to describe specific features for any FileSystem, but it - * is up to each FileSystem implementation to handle them as needed. - */ -class LIBKPMCORE_EXPORT FSFeature -{ -public: - enum Type : int { - Bool, - Int, - String - }; - -public: - FSFeature(const QString& n, Type t = Type::Bool); - FSFeature(const QString& n, bool b); - FSFeature(const QString& n, int i); - FSFeature(const QString& n, const QString& s); - FSFeature(const FSFeature& f); - ~FSFeature(); - - FSFeature& operator=(const FSFeature& f); - - Type type(); - const QString& name(); - - /**< @return the value of a boolean FSFeature ; feature type is NOT checked */ - bool bValue(); - /**< @return the value of an integer FSFeature ; feature type is NOT checked */ - int iValue(); - /**< @return the value of a string FSFeature ; feature type is NOT checked */ - const QString& sValue(); - - /** - * Set feature value - * @return false if the feature is of the wrong type - */ - bool setValue(bool b); - bool setValue(int i); - bool setValue(const QString& s); - -private: - std::unique_ptr d; -}; - -#endif diff --git a/src/fs/filesystem.cpp b/src/fs/filesystem.cpp index 8b795f0..ddae7ab 100644 --- a/src/fs/filesystem.cpp +++ b/src/fs/filesystem.cpp @@ -84,8 +84,8 @@ struct FileSystemPrivate { qint64 m_SectorsUsed; QString m_Label; QString m_UUID; - QList m_AvailableFeatures; - QList m_Features; + QStringList m_AvailableFeatures; + QVariantMap m_Features; }; /** Creates a new FileSystem object @@ -114,7 +114,7 @@ FileSystem::FileSystem(qint64 firstsector, qint64 lastsector, qint64 sectorsused @param features the FileSystem features @param type the FileSystem type */ -FileSystem::FileSystem(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features, FileSystem::Type type) : +FileSystem::FileSystem(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features, FileSystem::Type type) : d(std::make_unique()) { d->m_Type = type; @@ -604,24 +604,21 @@ bool FileSystem::findExternal(const QString& cmdName, const QStringList& args, i return cmd.exitCode() == 0 || cmd.exitCode() == expectedCode; } -void FileSystem::addAvailableFeature(const FSFeature& feature) +void FileSystem::addAvailableFeature(const QString& name) { - d->m_AvailableFeatures.append(feature); + d->m_AvailableFeatures.append(name); } -void FileSystem::addAvailableFeature(const QString& name, FSFeature::Type type) +void FileSystem::addFeature(const QString& name, const QVariant& value) { - d->m_AvailableFeatures.append(FSFeature(name, type)); + d->m_Features.insert(name, value); } -void FileSystem::addFeature(const FSFeature& feature) +void FileSystem::addFeatures(const QVariantMap& features) { - d->m_Features.append(feature); -} - -void FileSystem::addFeatures(const QList& features) -{ - d->m_Features.append(features); + for (const auto& k : features.keys()) { + d->m_Features.insert(k, features.value(k)); + } } bool FileSystem::supportToolFound() const @@ -649,12 +646,12 @@ const QString& FileSystem::label() const return d->m_Label; } -const QList& FileSystem::availableFeatures() const +const QStringList& FileSystem::availableFeatures() const { return d->m_AvailableFeatures; } -const QList& FileSystem::features() const +const QVariantMap& FileSystem::features() const { return d->m_Features; } diff --git a/src/fs/filesystem.h b/src/fs/filesystem.h index 8d1d05f..39bc46e 100644 --- a/src/fs/filesystem.h +++ b/src/fs/filesystem.h @@ -23,8 +23,7 @@ #include "util/libpartitionmanagerexport.h" -#include "fs/feature.h" - +#include #include #include #include @@ -116,7 +115,7 @@ public: protected: FileSystem(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, FileSystem::Type type); - FileSystem(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features, FileSystem::Type type); + FileSystem(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features, FileSystem::Type type); public: virtual ~FileSystem(); @@ -271,16 +270,17 @@ public: const QString& label() const; /**< @return the FileSystem's available features */ - const QList& availableFeatures() const; + const QStringList& availableFeatures() const; /**< @return the FileSystem's features */ - const QList& features() const; + const QVariantMap& features() const; - /**< @param feature the feature to add to the FileSystem */ - void addFeature(const FSFeature& feature); + /**< @param the feature's name to add to the FileSystem */ + /**< @param the feature's value to add to the FileSystem */ + void addFeature(const QString& name, const QVariant& value); /**< @param features the list of features to add to the FileSystem */ - void addFeatures(const QList& features); + void addFeatures(const QVariantMap& features); /**< @return the sector size in the underlying Device */ qint64 sectorSize() const; @@ -305,8 +305,7 @@ public: protected: static bool findExternal(const QString& cmdName, const QStringList& args = QStringList(), int exptectedCode = 1); - void addAvailableFeature(const FSFeature& feature); - void addAvailableFeature(const QString& name, FSFeature::Type type = FSFeature::Type::Bool); + void addAvailableFeature(const QString& name); std::unique_ptr d; }; diff --git a/src/fs/filesystemfactory.cpp b/src/fs/filesystemfactory.cpp index 597f412..0141eba 100644 --- a/src/fs/filesystemfactory.cpp +++ b/src/fs/filesystemfactory.cpp @@ -116,7 +116,7 @@ void FileSystemFactory::init() @param label the FileSystem's label @return pointer to the newly created FileSystem object or nullptr if FileSystem could not be created */ -FileSystem* FileSystemFactory::create(FileSystem::Type t, qint64 firstsector, qint64 lastsector, qint64 sectorSize, qint64 sectorsused, const QString& label, const QList& features, const QString& uuid) +FileSystem* FileSystemFactory::create(FileSystem::Type t, qint64 firstsector, qint64 lastsector, qint64 sectorSize, qint64 sectorsused, const QString& label, const QVariantMap& features, const QString& uuid) { FileSystem* fs = nullptr; diff --git a/src/fs/filesystemfactory.h b/src/fs/filesystemfactory.h index eca9a79..464c9a6 100644 --- a/src/fs/filesystemfactory.h +++ b/src/fs/filesystemfactory.h @@ -18,7 +18,6 @@ #ifndef KPMCORE_FILESYSTEMFACTORY_H #define KPMCORE_FILESYSTEMFACTORY_H -#include "fs/feature.h" #include "fs/filesystem.h" #include "util/libpartitionmanagerexport.h" @@ -42,7 +41,7 @@ private: public: static void init(); - static FileSystem* create(FileSystem::Type t, qint64 firstsector, qint64 lastsector, qint64 sectorSize, qint64 sectorsused = -1, const QString& label = QString(), const QList& features = {}, const QString& uuid = QString()); + static FileSystem* create(FileSystem::Type t, qint64 firstsector, qint64 lastsector, qint64 sectorSize, qint64 sectorsused = -1, const QString& label = QString(), const QVariantMap& features = {}, const QString& uuid = QString()); static FileSystem* create(const FileSystem& other); static FileSystem* cloneWithNewType(FileSystem::Type newType, const FileSystem& other); static const FileSystems& map(); diff --git a/src/fs/hfs.cpp b/src/fs/hfs.cpp index 5505e50..5facd82 100644 --- a/src/fs/hfs.cpp +++ b/src/fs/hfs.cpp @@ -34,7 +34,7 @@ FileSystem::CommandSupportType hfs::m_Check = FileSystem::cmdSupportNone; FileSystem::CommandSupportType hfs::m_Copy = FileSystem::cmdSupportNone; FileSystem::CommandSupportType hfs::m_Backup = FileSystem::cmdSupportNone; -hfs::hfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +hfs::hfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Hfs) { } diff --git a/src/fs/hfs.h b/src/fs/hfs.h index 4456d0c..71e9813 100644 --- a/src/fs/hfs.h +++ b/src/fs/hfs.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT hfs : public FileSystem { public: - hfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + hfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/hfsplus.cpp b/src/fs/hfsplus.cpp index 6e6b02b..aa32f95 100644 --- a/src/fs/hfsplus.cpp +++ b/src/fs/hfsplus.cpp @@ -34,7 +34,7 @@ FileSystem::CommandSupportType hfsplus::m_Create = FileSystem::cmdSupportNone; FileSystem::CommandSupportType hfsplus::m_Copy = FileSystem::cmdSupportNone; FileSystem::CommandSupportType hfsplus::m_Backup = FileSystem::cmdSupportNone; -hfsplus::hfsplus(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +hfsplus::hfsplus(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::HfsPlus) { } diff --git a/src/fs/hfsplus.h b/src/fs/hfsplus.h index ed2efa1..076810d 100644 --- a/src/fs/hfsplus.h +++ b/src/fs/hfsplus.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT hfsplus : public FileSystem { public: - hfsplus(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + hfsplus(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/hpfs.cpp b/src/fs/hpfs.cpp index 37e5638..0674c3c 100644 --- a/src/fs/hpfs.cpp +++ b/src/fs/hpfs.cpp @@ -36,7 +36,7 @@ FileSystem::CommandSupportType hpfs::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType hpfs::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType hpfs::m_GetUUID = FileSystem::cmdSupportNone; -hpfs::hpfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +hpfs::hpfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Hpfs) { } diff --git a/src/fs/hpfs.h b/src/fs/hpfs.h index 8c7c3d6..b1b4b55 100644 --- a/src/fs/hpfs.h +++ b/src/fs/hpfs.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT hpfs : public FileSystem { public: - hpfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + hpfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: CommandSupportType supportGetUsed() const override { diff --git a/src/fs/iso9660.cpp b/src/fs/iso9660.cpp index b45e6ee..91e63e7 100644 --- a/src/fs/iso9660.cpp +++ b/src/fs/iso9660.cpp @@ -20,7 +20,7 @@ namespace FS { -iso9660::iso9660(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +iso9660::iso9660(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Iso9660) { } diff --git a/src/fs/iso9660.h b/src/fs/iso9660.h index 1316831..4190019 100644 --- a/src/fs/iso9660.h +++ b/src/fs/iso9660.h @@ -35,7 +35,7 @@ namespace FS class LIBKPMCORE_EXPORT iso9660 : public FileSystem { public: - iso9660(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + iso9660(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); }; diff --git a/src/fs/jfs.cpp b/src/fs/jfs.cpp index 33befe6..f488a1e 100644 --- a/src/fs/jfs.cpp +++ b/src/fs/jfs.cpp @@ -39,7 +39,7 @@ FileSystem::CommandSupportType jfs::m_Copy = FileSystem::cmdSupportNone; FileSystem::CommandSupportType jfs::m_Backup = FileSystem::cmdSupportNone; FileSystem::CommandSupportType jfs::m_SetLabel = FileSystem::cmdSupportNone; -jfs::jfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +jfs::jfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Jfs) { } diff --git a/src/fs/jfs.h b/src/fs/jfs.h index 4e11630..54f1774 100644 --- a/src/fs/jfs.h +++ b/src/fs/jfs.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT jfs : public FileSystem { public: - jfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + jfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/linuxraidmember.cpp b/src/fs/linuxraidmember.cpp index 9d1d389..482787e 100644 --- a/src/fs/linuxraidmember.cpp +++ b/src/fs/linuxraidmember.cpp @@ -20,7 +20,7 @@ namespace FS { -linuxraidmember::linuxraidmember(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +linuxraidmember::linuxraidmember(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::LinuxRaidMember) { } diff --git a/src/fs/linuxraidmember.h b/src/fs/linuxraidmember.h index 7bdfbff..39a0896 100644 --- a/src/fs/linuxraidmember.h +++ b/src/fs/linuxraidmember.h @@ -34,7 +34,7 @@ namespace FS class LIBKPMCORE_EXPORT linuxraidmember : public FileSystem { public: - linuxraidmember(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + linuxraidmember(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); }; } diff --git a/src/fs/linuxswap.cpp b/src/fs/linuxswap.cpp index c4e91d5..56606ba 100644 --- a/src/fs/linuxswap.cpp +++ b/src/fs/linuxswap.cpp @@ -39,7 +39,7 @@ FileSystem::CommandSupportType linuxswap::m_SetLabel = FileSystem::cmdSupportNon FileSystem::CommandSupportType linuxswap::m_GetUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType linuxswap::m_UpdateUUID = FileSystem::cmdSupportNone; -linuxswap::linuxswap(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +linuxswap::linuxswap(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::LinuxSwap) { } diff --git a/src/fs/linuxswap.h b/src/fs/linuxswap.h index fd43bf1..fbf9d88 100644 --- a/src/fs/linuxswap.h +++ b/src/fs/linuxswap.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT linuxswap : public FileSystem { public: - linuxswap(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + linuxswap(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index f6face5..7f71d85 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -63,7 +63,7 @@ luks::luks(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, - const QList& features, + const QVariantMap& features, FileSystem::Type t) : FileSystem(firstsector, lastsector, sectorsused, label, features, t) , m_innerFs(nullptr) diff --git a/src/fs/luks.h b/src/fs/luks.h index dabee44..49f31ed 100644 --- a/src/fs/luks.h +++ b/src/fs/luks.h @@ -39,7 +39,7 @@ namespace FS class LIBKPMCORE_EXPORT luks : public FileSystem { public: - luks(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}, FileSystem::Type t = FileSystem::Type::Luks); + luks(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}, FileSystem::Type t = FileSystem::Type::Luks); ~luks() override; enum class KeyLocation { diff --git a/src/fs/luks2.cpp b/src/fs/luks2.cpp index 372c875..4cd9576 100644 --- a/src/fs/luks2.cpp +++ b/src/fs/luks2.cpp @@ -27,7 +27,7 @@ namespace FS { -luks2::luks2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) +luks2::luks2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : luks(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Luks2) { } diff --git a/src/fs/luks2.h b/src/fs/luks2.h index eebbc9a..826b523 100644 --- a/src/fs/luks2.h +++ b/src/fs/luks2.h @@ -35,7 +35,7 @@ namespace FS class LIBKPMCORE_EXPORT luks2 : public luks { public: - luks2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + luks2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); ~luks2() override; bool create(Report& report, const QString& deviceNode) override; diff --git a/src/fs/lvm2_pv.cpp b/src/fs/lvm2_pv.cpp index 3c1de3b..029c4a9 100644 --- a/src/fs/lvm2_pv.cpp +++ b/src/fs/lvm2_pv.cpp @@ -42,7 +42,7 @@ FileSystem::CommandSupportType lvm2_pv::m_UpdateUUID = FileSystem::cmdSupportNon FileSystem::CommandSupportType lvm2_pv::m_GetUUID = FileSystem::cmdSupportNone; lvm2_pv::lvm2_pv(qint64 firstsector, qint64 lastsector, - qint64 sectorsused, const QString& label, const QList& features) + qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Lvm2_PV) , m_PESize(0) , m_TotalPE(0) diff --git a/src/fs/lvm2_pv.h b/src/fs/lvm2_pv.h index a12d9d1..21eb7cb 100644 --- a/src/fs/lvm2_pv.h +++ b/src/fs/lvm2_pv.h @@ -89,7 +89,7 @@ class LIBKPMCORE_EXPORT lvm2_pv : public FileSystem { public: - lvm2_pv(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + lvm2_pv(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/minix.cpp b/src/fs/minix.cpp index 4229361..feadb67 100644 --- a/src/fs/minix.cpp +++ b/src/fs/minix.cpp @@ -33,7 +33,7 @@ FileSystem::CommandSupportType minix::m_Create = FileSystem::cmdSupportNone; FileSystem::CommandSupportType minix::m_Copy = FileSystem::cmdSupportNone; FileSystem::CommandSupportType minix::m_Backup = FileSystem::cmdSupportNone; -minix::minix(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +minix::minix(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Minix) { } diff --git a/src/fs/minix.h b/src/fs/minix.h index 7ad9eb8..6b78fb2 100644 --- a/src/fs/minix.h +++ b/src/fs/minix.h @@ -34,7 +34,7 @@ namespace FS class LIBKPMCORE_EXPORT minix : public FileSystem { public: - minix(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + minix(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); void init() override; diff --git a/src/fs/nilfs2.cpp b/src/fs/nilfs2.cpp index fb0cd0b..47c9798 100644 --- a/src/fs/nilfs2.cpp +++ b/src/fs/nilfs2.cpp @@ -46,7 +46,7 @@ FileSystem::CommandSupportType nilfs2::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType nilfs2::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType nilfs2::m_GetUUID = FileSystem::cmdSupportNone; -nilfs2::nilfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +nilfs2::nilfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Nilfs2) { } diff --git a/src/fs/nilfs2.h b/src/fs/nilfs2.h index 97556be..bb6f407 100644 --- a/src/fs/nilfs2.h +++ b/src/fs/nilfs2.h @@ -38,7 +38,7 @@ namespace FS class LIBKPMCORE_EXPORT nilfs2 : public FileSystem { public: - nilfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + nilfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/ntfs.cpp b/src/fs/ntfs.cpp index 9a6e359..a954140 100644 --- a/src/fs/ntfs.cpp +++ b/src/fs/ntfs.cpp @@ -48,7 +48,7 @@ FileSystem::CommandSupportType ntfs::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType ntfs::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType ntfs::m_GetUUID = FileSystem::cmdSupportNone; -ntfs::ntfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +ntfs::ntfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Ntfs) { } diff --git a/src/fs/ntfs.h b/src/fs/ntfs.h index 989f1aa..1c02f35 100644 --- a/src/fs/ntfs.h +++ b/src/fs/ntfs.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT ntfs : public FileSystem { public: - ntfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + ntfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/ocfs2.cpp b/src/fs/ocfs2.cpp index daac42e..3d5a4ec 100644 --- a/src/fs/ocfs2.cpp +++ b/src/fs/ocfs2.cpp @@ -39,7 +39,7 @@ FileSystem::CommandSupportType ocfs2::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType ocfs2::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType ocfs2::m_GetUUID = FileSystem::cmdSupportNone; -ocfs2::ocfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +ocfs2::ocfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Ocfs2) { } diff --git a/src/fs/ocfs2.h b/src/fs/ocfs2.h index 873513f..39d881a 100644 --- a/src/fs/ocfs2.h +++ b/src/fs/ocfs2.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT ocfs2 : public FileSystem { public: - ocfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + ocfs2(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/reiser4.cpp b/src/fs/reiser4.cpp index 520afa2..31b4654 100644 --- a/src/fs/reiser4.cpp +++ b/src/fs/reiser4.cpp @@ -34,7 +34,7 @@ FileSystem::CommandSupportType reiser4::m_Check = FileSystem::cmdSupportNone; FileSystem::CommandSupportType reiser4::m_Copy = FileSystem::cmdSupportNone; FileSystem::CommandSupportType reiser4::m_Backup = FileSystem::cmdSupportNone; -reiser4::reiser4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +reiser4::reiser4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Reiser4) { } diff --git a/src/fs/reiser4.h b/src/fs/reiser4.h index 7084a6f..7438b69 100644 --- a/src/fs/reiser4.h +++ b/src/fs/reiser4.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT reiser4 : public FileSystem { public: - reiser4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + reiser4(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/reiserfs.cpp b/src/fs/reiserfs.cpp index e8bae7b..6032350 100644 --- a/src/fs/reiserfs.cpp +++ b/src/fs/reiserfs.cpp @@ -41,7 +41,7 @@ FileSystem::CommandSupportType reiserfs::m_SetLabel = FileSystem::cmdSupportNone FileSystem::CommandSupportType reiserfs::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType reiserfs::m_GetUUID = FileSystem::cmdSupportNone; -reiserfs::reiserfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +reiserfs::reiserfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::ReiserFS) { } diff --git a/src/fs/reiserfs.h b/src/fs/reiserfs.h index 68ae7c6..505c2eb 100644 --- a/src/fs/reiserfs.h +++ b/src/fs/reiserfs.h @@ -39,7 +39,7 @@ namespace FS class LIBKPMCORE_EXPORT reiserfs : public FileSystem { public: - reiserfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + reiserfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/udf.cpp b/src/fs/udf.cpp index 935cd82..ae55754 100644 --- a/src/fs/udf.cpp +++ b/src/fs/udf.cpp @@ -39,7 +39,7 @@ FileSystem::CommandSupportType udf::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType udf::m_Create = FileSystem::cmdSupportNone; bool udf::oldMkudffsVersion = false; -udf::udf(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +udf::udf(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Udf) { } diff --git a/src/fs/udf.h b/src/fs/udf.h index ce84283..7599c9d 100644 --- a/src/fs/udf.h +++ b/src/fs/udf.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT udf : public FileSystem { public: - udf(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + udf(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/ufs.cpp b/src/fs/ufs.cpp index 72989a9..6d40e61 100644 --- a/src/fs/ufs.cpp +++ b/src/fs/ufs.cpp @@ -23,7 +23,7 @@ FileSystem::CommandSupportType ufs::m_Move = FileSystem::cmdSupportCore; FileSystem::CommandSupportType ufs::m_Copy = FileSystem::cmdSupportCore; FileSystem::CommandSupportType ufs::m_Backup = FileSystem::cmdSupportCore; -ufs::ufs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +ufs::ufs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Ufs) { } diff --git a/src/fs/ufs.h b/src/fs/ufs.h index 44814a3..4c072d7 100644 --- a/src/fs/ufs.h +++ b/src/fs/ufs.h @@ -35,7 +35,7 @@ namespace FS class LIBKPMCORE_EXPORT ufs : public FileSystem { public: - ufs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + ufs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: CommandSupportType supportMove() const override { diff --git a/src/fs/unformatted.cpp b/src/fs/unformatted.cpp index 2928fcc..353f10c 100644 --- a/src/fs/unformatted.cpp +++ b/src/fs/unformatted.cpp @@ -21,7 +21,7 @@ namespace FS { FileSystem::CommandSupportType unformatted::m_Create = FileSystem::cmdSupportFileSystem; -unformatted::unformatted(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +unformatted::unformatted(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Unformatted) { } diff --git a/src/fs/unformatted.h b/src/fs/unformatted.h index bd65a68..e05c6c5 100644 --- a/src/fs/unformatted.h +++ b/src/fs/unformatted.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT unformatted : public FileSystem { public: - unformatted(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + unformatted(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: bool create(Report&, const QString&) override; diff --git a/src/fs/unknown.cpp b/src/fs/unknown.cpp index 6bd9154..e5e34ca 100644 --- a/src/fs/unknown.cpp +++ b/src/fs/unknown.cpp @@ -22,7 +22,7 @@ namespace FS FileSystem::CommandSupportType unknown::m_Move = FileSystem::cmdSupportNone; -unknown::unknown(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +unknown::unknown(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Unknown) { } diff --git a/src/fs/unknown.h b/src/fs/unknown.h index 4111172..88cada4 100644 --- a/src/fs/unknown.h +++ b/src/fs/unknown.h @@ -32,7 +32,7 @@ namespace FS class LIBKPMCORE_EXPORT unknown : public FileSystem { public: - unknown(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + unknown(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: bool supportToolFound() const override { diff --git a/src/fs/xfs.cpp b/src/fs/xfs.cpp index bf29beb..7a8cea5 100644 --- a/src/fs/xfs.cpp +++ b/src/fs/xfs.cpp @@ -41,7 +41,7 @@ FileSystem::CommandSupportType xfs::m_Copy = FileSystem::cmdSupportNone; FileSystem::CommandSupportType xfs::m_Backup = FileSystem::cmdSupportNone; FileSystem::CommandSupportType xfs::m_SetLabel = FileSystem::cmdSupportNone; -xfs::xfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +xfs::xfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Xfs) { } diff --git a/src/fs/xfs.h b/src/fs/xfs.h index a7c6f75..1e80d4b 100644 --- a/src/fs/xfs.h +++ b/src/fs/xfs.h @@ -37,7 +37,7 @@ namespace FS class LIBKPMCORE_EXPORT xfs : public FileSystem { public: - xfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + xfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override; diff --git a/src/fs/zfs.cpp b/src/fs/zfs.cpp index 2596746..d442ed7 100644 --- a/src/fs/zfs.cpp +++ b/src/fs/zfs.cpp @@ -39,7 +39,7 @@ FileSystem::CommandSupportType zfs::m_SetLabel = FileSystem::cmdSupportNone; FileSystem::CommandSupportType zfs::m_UpdateUUID = FileSystem::cmdSupportNone; FileSystem::CommandSupportType zfs::m_GetUUID = FileSystem::cmdSupportNone; -zfs::zfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features) : +zfs::zfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features) : FileSystem(firstsector, lastsector, sectorsused, label, features, FileSystem::Type::Zfs) { } diff --git a/src/fs/zfs.h b/src/fs/zfs.h index 8fa944a..b727e25 100644 --- a/src/fs/zfs.h +++ b/src/fs/zfs.h @@ -38,7 +38,7 @@ namespace FS class LIBKPMCORE_EXPORT zfs : public FileSystem { public: - zfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QList& features = {}); + zfs(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, const QVariantMap& features = {}); public: void init() override;