[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).
This commit is contained in:
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…
Reference in New Issue
Block a user