[partition] Add flags to PartitionInfo

- PartitionInfo maintains information on "what is desired" for
   a given Partition. Now we can set desired flags, alongside
   the flags already supported by Partition (where activeFlags()
   gives you the flags currently set on that partition).
main
Adriaan de Groot 7 years ago
parent 5b4668822d
commit 7df143f64a

@ -27,8 +27,9 @@
namespace PartitionInfo
{
static const char* MOUNT_POINT_PROPERTY = "_calamares_mountPoint";
static const char* FORMAT_PROPERTY = "_calamares_format";
static const char MOUNT_POINT_PROPERTY[] = "_calamares_mountPoint";
static const char FORMAT_PROPERTY[] = "_calamares_format";
static const char FLAGS_PROPERTY[] = "_calamares_flags";
QString
mountPoint( Partition* partition )
@ -54,18 +55,33 @@ setFormat( Partition* partition, bool value )
partition->setProperty( FORMAT_PROPERTY, value );
}
PartitionTable::Flags flags(const Partition* partition)
{
auto v = partition->property( FLAGS_PROPERTY );
if (v.type() == QVariant::Int )
return static_cast<PartitionTable::Flags>( v.toInt() );
return partition->activeFlags();
}
void setFlags(Partition* partition, PartitionTable::Flags f)
{
partition->setProperty( FLAGS_PROPERTY, PartitionTable::Flags::Int( f ) );
}
void
reset( Partition* partition )
{
partition->setProperty( MOUNT_POINT_PROPERTY, QVariant() );
partition->setProperty( FORMAT_PROPERTY, QVariant() );
partition->setProperty( FLAGS_PROPERTY, QVariant() );
}
bool
isDirty( Partition* partition )
{
return !mountPoint( partition ).isEmpty()
|| format( partition );
|| format( partition )
|| flags( partition ) != partition->activeFlags();
}
} // namespace

@ -21,6 +21,8 @@
#include <QHash>
#include <QString>
#include <kpmcore/core/partitiontable.h>
class Partition;
/**
@ -45,6 +47,9 @@ void setMountPoint( Partition* partition, const QString& value );
bool format( Partition* partition );
void setFormat( Partition* partition, bool value );
PartitionTable::Flags flags( const Partition* partition );
void setFlags( Partition* partition, PartitionTable::Flags f );
void reset( Partition* partition );
/**

Loading…
Cancel
Save