Forget pending changes when the partition table is recreated

main
Aurélien Gâteau 11 years ago
parent f0dffb7400
commit 7ac6588090

@ -82,6 +82,14 @@ PartitionCoreModule::DeviceInfo::hasRootMountPoint() const
return false;
}
void
PartitionCoreModule::DeviceInfo::forgetChanges()
{
jobs.clear();
qDeleteAll( m_partitionInfoHash );
m_partitionInfoHash.clear();
}
//- PartitionCoreModule ------------------------------------
PartitionCoreModule::PartitionCoreModule( QObject* parent )
: QObject( parent )
@ -128,13 +136,16 @@ PartitionCoreModule::partitionModelForDevice( Device* device ) const
void
PartitionCoreModule::createPartitionTable( Device* device )
{
DeviceInfo* info = infoForDevice( device );
// Creating a partition table wipes all the disk, so there is no need to
// keep previous changes
info->forgetChanges();
CreatePartitionTableJob* job = new CreatePartitionTableJob( device );
job->updatePreview();
refreshPartitionModel( device );
info->jobs << Calamares::job_ptr( job );
// FIXME: Remove all jobs queued for this device, as well as all partition
// info
infoForDevice( device )->jobs << Calamares::job_ptr( job );
refreshPartitionModel( device );
updateHasRootMountPoint();
}

@ -92,6 +92,8 @@ private:
void removeInfoForPartition( Partition* partition );
bool hasRootMountPoint() const;
void forgetChanges();
private:
QHash< Partition*, PartitionInfo* > m_partitionInfoHash;
};

Loading…
Cancel
Save