diff --git a/src/core/partitiontable.cpp b/src/core/partitiontable.cpp index 95b55ed..2dee90e 100644 --- a/src/core/partitiontable.cpp +++ b/src/core/partitiontable.cpp @@ -269,6 +269,20 @@ QStringList PartitionTable::flagNames(Flags flags) return rval; } +/** @param list QStringList of the flags' names + @returns flags corresponding to names +*/ +PartitionTable::Flags PartitionTable::flagsFromList(const QStringList list) +{ + Flags flags; + + for (const auto &flag : flagList()) + if (list.contains(flagName(flag))) + flags.setFlag(flag); + + return flags; +} + bool PartitionTable::getUnallocatedRange(const Device& d, PartitionNode& parent, qint64& start, qint64& end) { if (d.type() == Device::Type::Disk_Device) { diff --git a/src/core/partitiontable.h b/src/core/partitiontable.h index 51783f8..92bed82 100644 --- a/src/core/partitiontable.h +++ b/src/core/partitiontable.h @@ -184,6 +184,7 @@ public: static const QList flagList(); static QString flagName(Flag f); static QStringList flagNames(Flags f); + static PartitionTable::Flags flagsFromList(const QStringList list); static bool getUnallocatedRange(const Device& device, PartitionNode& parent, qint64& start, qint64& end);