From d630c2aadf392f6ab6c5ae49cafc6fa74664e9eb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 10:47:05 +0200 Subject: [PATCH] [partition] Introduce a check if the GPT-on-BIOS popup should be shown The check is bogus right now, and it still always warns; but if the `shouldWarnForGPTOnBIOS()` function is implemented, this will fix issue 1701. --- .../partition/gui/PartitionViewStep.cpp | 47 ++++++++++++------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 6755b64c6..b1fa851ed 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -395,6 +395,18 @@ PartitionViewStep::onActivate() } } +static bool +shouldWarnForGPTOnBIOS( const PartitionCoreModule* core ) +{ + if ( PartUtils::isEfiSystem() ) + { + return false; + } + + cDebug() << core->bootLoaderInstallPath(); + + return true; +} void PartitionViewStep::onLeave() @@ -462,24 +474,25 @@ PartitionViewStep::onLeave() { cDebug() << "device: BIOS"; - // TODO: this *always* warns, which might be annoying, so it'd be - // best to find a way to detect that bios_grub partition. - QString message = tr( "Option to use GPT on BIOS" ); - QString description = tr( "A GPT partition table is the best option for all " - "systems. This installer supports such a setup for " - "BIOS systems too." - "

" - "To configure a GPT partition table on BIOS, " - "(if not done so already) go back " - "and set the partition table to GPT, next create a 8 MB " - "unformatted partition with the " - "bios_grub flag enabled.

" - "An unformatted 8 MB partition is necessary " - "to start %1 on a BIOS system with GPT." ) - .arg( branding->shortProductName() ); + if ( shouldWarnForGPTOnBIOS( m_core ) ) + { + QString message = tr( "Option to use GPT on BIOS" ); + QString description = tr( "A GPT partition table is the best option for all " + "systems. This installer supports such a setup for " + "BIOS systems too." + "

" + "To configure a GPT partition table on BIOS, " + "(if not done so already) go back " + "and set the partition table to GPT, next create a 8 MB " + "unformatted partition with the " + "bios_grub flag enabled.

" + "An unformatted 8 MB partition is necessary " + "to start %1 on a BIOS system with GPT." ) + .arg( branding->shortProductName() ); - QMessageBox::information( m_manualPartitionPage, message, description ); + QMessageBox::information( m_manualPartitionPage, message, description ); + } } Partition* root_p = m_core->findPartitionByMountPoint( "/" ); @@ -593,7 +606,7 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) // because it could take a while. Then when it's done, we can set up the widgets // and remove the spinner. m_future = new QFutureWatcher< void >(); - connect( m_future, &QFutureWatcher< void >::finished, this, [this] { + connect( m_future, &QFutureWatcher< void >::finished, this, [ this ] { continueLoading(); this->m_future->deleteLater(); this->m_future = nullptr;