Merge branch 'more-parted-flags'

This commit is contained in:
Andrius Štikonas 2016-03-08 20:48:09 +00:00
commit ca5bc8000b
3 changed files with 74 additions and 26 deletions

View File

@ -1,6 +1,7 @@
/************************************************************************* /*************************************************************************
* Copyright (C) 2008 by Volker Lanz <vl@fidra.de> * * Copyright (C) 2008 by Volker Lanz <vl@fidra.de> *
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> * * Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
* Copyright (C) 2016 by Teo Mrnjavac <teo@kde.org> *
* * * *
* This program is free software; you can redistribute it and/or * * This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as * * modify it under the terms of the GNU General Public License as *
@ -149,18 +150,42 @@ void PartitionTable::append(Partition* partition)
QString PartitionTable::flagName(Flag f) QString PartitionTable::flagName(Flag f)
{ {
switch (f) { switch (f) {
case PartitionTable::FlagBoot: return i18nc("@item partition flag", "boot"); case PartitionTable::FlagBoot:
case PartitionTable::FlagRoot: return i18nc("@item partition flag", "root"); return i18nc("@item partition flag", "boot");
case PartitionTable::FlagSwap: return i18nc("@item partition flag", "swap"); case PartitionTable::FlagRoot:
case PartitionTable::FlagHidden: return i18nc("@item partition flag", "hidden"); return i18nc("@item partition flag", "root");
case PartitionTable::FlagRaid: return i18nc("@item partition flag", "raid"); case PartitionTable::FlagSwap:
case PartitionTable::FlagLvm: return i18nc("@item partition flag", "lvm"); return i18nc("@item partition flag", "swap");
case PartitionTable::FlagLba: return i18nc("@item partition flag", "lba"); case PartitionTable::FlagHidden:
case PartitionTable::FlagHpService: return i18nc("@item partition flag", "hpservice"); return i18nc("@item partition flag", "hidden");
case PartitionTable::FlagPalo: return i18nc("@item partition flag", "palo"); case PartitionTable::FlagRaid:
case PartitionTable::FlagPrep: return i18nc("@item partition flag", "prep"); return i18nc("@item partition flag", "raid");
case PartitionTable::FlagMsftReserved: return i18nc("@item partition flag", "msft-reserved"); case PartitionTable::FlagLvm:
return i18nc("@item partition flag", "lvm");
case PartitionTable::FlagLba:
return i18nc("@item partition flag", "lba");
case PartitionTable::FlagHpService:
return i18nc("@item partition flag", "hpservice");
case PartitionTable::FlagPalo:
return i18nc("@item partition flag", "palo");
case PartitionTable::FlagPrep:
return i18nc("@item partition flag", "prep");
case PartitionTable::FlagMsftReserved:
return i18nc("@item partition flag", "msft-reserved");
case PartitionTable::FlagBiosGrub:
return i18nc("@item partition flag", "bios-grub");
case PartitionTable::FlagAppleTvRecovery:
return i18nc("@item partition flag", "apple-tv-recovery");
case PartitionTable::FlagDiag:
return i18nc("@item partition flag", "diag");
case PartitionTable::FlagLegacyBoot:
return i18nc("@item partition flag", "legacy-boot");
case PartitionTable::FlagMsftData:
return i18nc("@item partition flag", "msft-data");
case PartitionTable::FlagIrst:
return i18nc("@item partition flag", "irst");
case PartitionTable::FlagEsp:
return i18nc("@item partition flag", "esp");
default: default:
break; break;
} }
@ -184,6 +209,13 @@ QList<PartitionTable::Flag> PartitionTable::flagList()
rval.append(PartitionTable::FlagPalo); rval.append(PartitionTable::FlagPalo);
rval.append(PartitionTable::FlagPrep); rval.append(PartitionTable::FlagPrep);
rval.append(PartitionTable::FlagMsftReserved); rval.append(PartitionTable::FlagMsftReserved);
rval.append(PartitionTable::FlagBiosGrub);
rval.append(PartitionTable::FlagAppleTvRecovery);
rval.append(PartitionTable::FlagDiag);
rval.append(PartitionTable::FlagLegacyBoot);
rval.append(PartitionTable::FlagMsftData);
rval.append(PartitionTable::FlagIrst);
rval.append(PartitionTable::FlagEsp);
return rval; return rval;
} }

View File

@ -1,5 +1,6 @@
/************************************************************************* /*************************************************************************
* Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> * * Copyright (C) 2008, 2010 by Volker Lanz <vl@fidra.de> *
* Copyright (C) 2016 by Teo Mrnjavac <teo@kde.org> *
* * * *
* This program is free software; you can redistribute it and/or * * This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as * * modify it under the terms of the GNU General Public License as *
@ -49,7 +50,7 @@ class LIBKPMCORE_EXPORT PartitionTable : public PartitionNode
friend LIBKPMCORE_EXPORT QTextStream& operator<<(QTextStream& stream, const PartitionTable& ptable); friend LIBKPMCORE_EXPORT QTextStream& operator<<(QTextStream& stream, const PartitionTable& ptable);
public: public:
enum TableType { enum TableType : qint8 {
unknownTableType = -1, unknownTableType = -1,
aix, aix,
@ -67,7 +68,7 @@ public:
}; };
/** Partition flags */ /** Partition flags */
enum Flag { enum Flag : qint32 {
FlagNone = 0, FlagNone = 0,
FlagBoot = 1, FlagBoot = 1,
FlagRoot = 2, FlagRoot = 2,
@ -79,7 +80,14 @@ public:
FlagHpService = 128, FlagHpService = 128,
FlagPalo = 256, FlagPalo = 256,
FlagPrep = 512, FlagPrep = 512,
FlagMsftReserved = 1024 FlagMsftReserved = 1024,
FlagBiosGrub = 2048,
FlagAppleTvRecovery = 4096,
FlagDiag = 8192,
FlagLegacyBoot = 16384,
FlagMsftData = 32768,
FlagIrst = 65536,
FlagEsp = 131072
}; };
Q_DECLARE_FLAGS(Flags, Flag) Q_DECLARE_FLAGS(Flags, Flag)

View File

@ -1,6 +1,7 @@
/************************************************************************* /*************************************************************************
* Copyright (C) 2008-2012 by Volker Lanz <vl@fidra.de> * * Copyright (C) 2008-2012 by Volker Lanz <vl@fidra.de> *
* Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> * * Copyright (C) 2016 by Andrius Štikonas <andrius@stikonas.eu> *
* Copyright (C) 2016 by Teo Mrnjavac <teo@kde.org> *
* * * *
* This program is free software; you can redistribute it and/or * * This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as * * modify it under the terms of the GNU General Public License as *
@ -57,17 +58,24 @@ static struct {
PedPartitionFlag pedFlag; PedPartitionFlag pedFlag;
PartitionTable::Flag flag; PartitionTable::Flag flag;
} flagmap[] = { } flagmap[] = {
{ PED_PARTITION_BOOT, PartitionTable::FlagBoot }, { PED_PARTITION_BOOT, PartitionTable::FlagBoot },
{ PED_PARTITION_ROOT, PartitionTable::FlagRoot }, { PED_PARTITION_ROOT, PartitionTable::FlagRoot },
{ PED_PARTITION_SWAP, PartitionTable::FlagSwap }, { PED_PARTITION_SWAP, PartitionTable::FlagSwap },
{ PED_PARTITION_HIDDEN, PartitionTable::FlagHidden }, { PED_PARTITION_HIDDEN, PartitionTable::FlagHidden },
{ PED_PARTITION_RAID, PartitionTable::FlagRaid }, { PED_PARTITION_RAID, PartitionTable::FlagRaid },
{ PED_PARTITION_LVM, PartitionTable::FlagLvm }, { PED_PARTITION_LVM, PartitionTable::FlagLvm },
{ PED_PARTITION_LBA, PartitionTable::FlagLba }, { PED_PARTITION_LBA, PartitionTable::FlagLba },
{ PED_PARTITION_HPSERVICE, PartitionTable::FlagHpService }, { PED_PARTITION_HPSERVICE, PartitionTable::FlagHpService },
{ PED_PARTITION_PALO, PartitionTable::FlagPalo }, { PED_PARTITION_PALO, PartitionTable::FlagPalo },
{ PED_PARTITION_PREP, PartitionTable::FlagPrep }, { PED_PARTITION_PREP, PartitionTable::FlagPrep },
{ PED_PARTITION_MSFT_RESERVED, PartitionTable::FlagMsftReserved } { PED_PARTITION_MSFT_RESERVED, PartitionTable::FlagMsftReserved },
{ PED_PARTITION_BIOS_GRUB, PartitionTable::FlagBiosGrub },
{ PED_PARTITION_APPLE_TV_RECOVERY, PartitionTable::FlagAppleTvRecovery },
{ PED_PARTITION_DIAG, PartitionTable::FlagDiag }, // generic diagnostics flag
{ PED_PARTITION_LEGACY_BOOT, PartitionTable::FlagLegacyBoot },
{ PED_PARTITION_MSFT_DATA, PartitionTable::FlagMsftData },
{ PED_PARTITION_IRST, PartitionTable::FlagIrst }, // Intel Rapid Start partition
{ PED_PARTITION_ESP, PartitionTable::FlagEsp } // EFI system
}; };
static QString s_lastPartedExceptionMessage; static QString s_lastPartedExceptionMessage;