calamares/src/modules/partition/gui/BootInfoWidget.cpp
Adriaan de Groot 84936a95fc [libcalamaresui] Warnings-- for Qt 5.15 deprecations
Introduce a GUI-oriented compatibility header that introduces aliases
for some enum values that are deprecated in Qt 5.15
2020-10-24 13:00:48 +02:00

97 lines
3.7 KiB
C++

/* === This file is part of Calamares - <https://calamares.io> ===
*
* SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac <teo@kde.org>
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Calamares is Free Software: see the License-Identifier above.
*
*/
#include "BootInfoWidget.h"
#include "core/PartUtils.h"
#include "utils/CalamaresUtilsGui.h"
#include "utils/QtCompat.h"
#include "utils/Retranslator.h"
#include <QDir>
#include <QHBoxLayout>
#include <QLabel>
BootInfoWidget::BootInfoWidget( QWidget* parent )
: QWidget( parent )
, m_bootIcon( new QLabel )
, m_bootLabel( new QLabel )
{
m_bootIcon->setObjectName( "bootInfoIcon" );
m_bootLabel->setObjectName( "bootInfoLabel" );
QHBoxLayout* mainLayout = new QHBoxLayout;
setLayout( mainLayout );
CalamaresUtils::unmarginLayout( mainLayout );
mainLayout->addWidget( m_bootIcon );
mainLayout->addWidget( m_bootLabel );
QSize iconSize = CalamaresUtils::defaultIconSize();
m_bootIcon->setMargin( 0 );
m_bootIcon->setFixedSize( iconSize );
m_bootIcon->setPixmap(
CalamaresUtils::defaultPixmap( CalamaresUtils::BootEnvironment, CalamaresUtils::Original, iconSize ) );
QFontMetrics fm = QFontMetrics( QFont() );
m_bootLabel->setMinimumWidth( fm.boundingRect( "BIOS" ).width() + CalamaresUtils::defaultFontHeight() / 2 );
m_bootLabel->setAlignment( Qt::AlignCenter );
QPalette palette;
palette.setBrush( WindowText, QColor( "#4D4D4D" ) ); //dark grey
m_bootIcon->setAutoFillBackground( true );
m_bootLabel->setAutoFillBackground( true );
m_bootIcon->setPalette( palette );
m_bootLabel->setPalette( palette );
CALAMARES_RETRANSLATE( retranslateUi(); )
}
void
BootInfoWidget::retranslateUi()
{
m_bootIcon->setToolTip( tr( "The <strong>boot environment</strong> of this system.<br><br>"
"Older x86 systems only support <strong>BIOS</strong>.<br>"
"Modern systems usually use <strong>EFI</strong>, but "
"may also show up as BIOS if started in compatibility "
"mode." ) );
QString bootToolTip;
if ( PartUtils::isEfiSystem() )
{
m_bootLabel->setText( "EFI " );
bootToolTip = tr( "This system was started with an <strong>EFI</strong> "
"boot environment.<br><br>"
"To configure startup from an EFI environment, this installer "
"must deploy a boot loader application, like <strong>GRUB"
"</strong> or <strong>systemd-boot</strong> on an <strong>"
"EFI System Partition</strong>. This is automatic, unless "
"you choose manual partitioning, in which case you must "
"choose it or create it on your own." );
}
else
{
m_bootLabel->setText( "BIOS" );
bootToolTip = tr( "This system was started with a <strong>BIOS</strong> "
"boot environment.<br><br>"
"To configure startup from a BIOS environment, this installer "
"must install a boot loader, like <strong>GRUB"
"</strong>, either at the beginning of a partition or "
"on the <strong>Master Boot Record</strong> near the "
"beginning of the partition table (preferred). "
"This is automatic, unless "
"you choose manual partitioning, in which case you must "
"set it up on your own." );
}
m_bootLabel->setToolTip( bootToolTip );
}