Do not let the user pick a partition type when creating a partition of a GPT disk
Fixes #27
This commit is contained in:
parent
feee2b3b60
commit
62d706543b
@ -48,28 +48,10 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par
|
|||||||
|
|
||||||
FileSystemFactory::init();
|
FileSystemFactory::init();
|
||||||
|
|
||||||
bool parentIsPartitionTable = parentPartition->isRoot();
|
if ( device->partitionTable()->type() == PartitionTable::msdos )
|
||||||
// Partition types
|
initMbrPartitionTypeUi();
|
||||||
QString fixedPartitionType;
|
|
||||||
if ( !parentIsPartitionTable )
|
|
||||||
{
|
|
||||||
m_role = PartitionRole( PartitionRole::Logical );
|
|
||||||
fixedPartitionType = tr( "Logical" );
|
|
||||||
}
|
|
||||||
else if ( m_device->partitionTable()->hasExtended() )
|
|
||||||
{
|
|
||||||
m_role = PartitionRole( PartitionRole::Primary );
|
|
||||||
fixedPartitionType = tr( "Primary" );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( fixedPartitionType.isEmpty() )
|
|
||||||
m_ui->fixedPartitionLabel->hide();
|
|
||||||
else
|
else
|
||||||
{
|
initGptPartitionTypeUi();
|
||||||
m_ui->fixedPartitionLabel->setText( fixedPartitionType );
|
|
||||||
m_ui->primaryRadioButton->hide();
|
|
||||||
m_ui->extendedRadioButton->hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
// File system
|
// File system
|
||||||
QStringList fsNames;
|
QStringList fsNames;
|
||||||
@ -88,6 +70,41 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par
|
|||||||
CreatePartitionDialog::~CreatePartitionDialog()
|
CreatePartitionDialog::~CreatePartitionDialog()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
void
|
||||||
|
CreatePartitionDialog::initMbrPartitionTypeUi()
|
||||||
|
{
|
||||||
|
QString fixedPartitionString;
|
||||||
|
bool parentIsPartitionTable = m_parent->isRoot();
|
||||||
|
if ( !parentIsPartitionTable )
|
||||||
|
{
|
||||||
|
m_role = PartitionRole( PartitionRole::Logical );
|
||||||
|
fixedPartitionString = tr( "Logical" );
|
||||||
|
}
|
||||||
|
else if ( m_device->partitionTable()->hasExtended() )
|
||||||
|
{
|
||||||
|
m_role = PartitionRole( PartitionRole::Primary );
|
||||||
|
fixedPartitionString = tr( "Primary" );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( fixedPartitionString.isEmpty() )
|
||||||
|
m_ui->fixedPartitionLabel->hide();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_ui->fixedPartitionLabel->setText( fixedPartitionString );
|
||||||
|
m_ui->primaryRadioButton->hide();
|
||||||
|
m_ui->extendedRadioButton->hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CreatePartitionDialog::initGptPartitionTypeUi()
|
||||||
|
{
|
||||||
|
m_role = PartitionRole( PartitionRole::Primary );
|
||||||
|
m_ui->fixedPartitionLabel->setText( tr( "GPT" ) );
|
||||||
|
m_ui->primaryRadioButton->hide();
|
||||||
|
m_ui->extendedRadioButton->hide();
|
||||||
|
}
|
||||||
|
|
||||||
Partition*
|
Partition*
|
||||||
CreatePartitionDialog::createPartition()
|
CreatePartitionDialog::createPartition()
|
||||||
{
|
{
|
||||||
|
@ -52,6 +52,8 @@ private:
|
|||||||
PartitionNode* m_parent;
|
PartitionNode* m_parent;
|
||||||
PartitionRole m_role = PartitionRole( PartitionRole::None );
|
PartitionRole m_role = PartitionRole( PartitionRole::None );
|
||||||
|
|
||||||
|
void initGptPartitionTypeUi();
|
||||||
|
void initMbrPartitionTypeUi();
|
||||||
void initSectorRange( Partition* );
|
void initSectorRange( Partition* );
|
||||||
|
|
||||||
qint64 mbSizeForSectorRange( qint64 first, qint64 last ) const;
|
qint64 mbSizeForSectorRange( qint64 first, qint64 last ) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user