[partition] Strip extra file after the at sign

- os-proper may return an extra file after the device:
  /dev/sda1:Ubuntu 19.10 (19.10):Ubuntu:linux
  /dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
main
Gaël PORTAY 5 years ago
parent 9486ee6fbf
commit 2b1e516ec1

@ -41,6 +41,7 @@ struct OsproberEntry
{
QString prettyName;
QString path;
QString file;
QString uuid;
bool canBeResized;
QStringList line;

@ -393,17 +393,25 @@ runOsprober( DeviceModel* dm )
prettyName = lineColumns.value( 2 ).simplified();
}
QString path = lineColumns.value( 0 ).simplified();
QString file, path = lineColumns.value( 0 ).simplified();
if ( !path.startsWith( "/dev/" ) ) //basic sanity check
{
continue;
}
// strip extra file after device: /dev/name@/path/to/file
int index = path.indexOf( '@' );
if ( index != -1 )
{
file = path.right( path.length() - index - 1 );
path = path.left( index );
}
FstabEntryList fstabEntries = lookForFstabEntries( path );
QString homePath = findPartitionPathForMountPoint( fstabEntries, "/home" );
osproberEntries.append(
{ prettyName, path, QString(), canBeResized( dm, path ), lineColumns, fstabEntries, homePath } );
{ prettyName, path, file, QString(), canBeResized( dm, path ), lineColumns, fstabEntries, homePath } );
osproberCleanLines.append( line );
}
}

@ -177,7 +177,7 @@ ReplaceWidget::onPartitionSelected()
QString fsNameForUser = userVisibleFS( partition->fileSystem() );
QString prettyName = tr( "Data partition (%1)" ).arg( fsNameForUser );
for ( const QString& line : osproberLines )
for ( const auto& line : osproberLines )
{
QStringList lineColumns = line.split( ':' );

Loading…
Cancel
Save