Compare commits
1 Commits
extensions
...
packagecho
Author | SHA1 | Date | |
---|---|---|---|
a6558c7b1d |
@@ -39,7 +39,6 @@
|
||||
|
||||
include( CalamaresAddTranslations )
|
||||
include( CalamaresCheckModuleSelection )
|
||||
include( FeatureSummary )
|
||||
|
||||
set( MODULE_DATA_DESTINATION share/calamares/modules )
|
||||
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# This file has not yet been documented for use outside of Calamares itself.
|
||||
|
||||
include( CMakeParseArguments )
|
||||
include( FeatureSummary )
|
||||
|
||||
# The Gettext module is still old-fashioned, ALLCAPS variables
|
||||
find_package( Gettext )
|
||||
|
@@ -105,7 +105,6 @@ fi
|
||||
# those are done separately.
|
||||
_srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml"
|
||||
$LUPDATE -no-obsolete $_srcdirs -ts lang/calamares_en.ts
|
||||
grep '{1?}' lang/calamares_en.ts && { echo "lupdate has introduced weird markers." ; exit 1 ; }
|
||||
# Non-Transifex special-cases
|
||||
#
|
||||
# - timezone names can be translated, but that's 700+ strings I don't want
|
||||
|
1701
lang/calamares_en.ts
1701
lang/calamares_en.ts
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-12-27 20:44+0100\n"
|
||||
"POT-Creation-Date: 2023-09-28 22:49+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -22,15 +22,15 @@ msgstr ""
|
||||
msgid "Install bootloader."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/bootloader/main.py:666
|
||||
#: src/modules/bootloader/main.py:644
|
||||
msgid "Failed to install grub, no partitions defined in global storage"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/bootloader/main.py:926
|
||||
#: src/modules/bootloader/main.py:899
|
||||
msgid "Bootloader installation error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/bootloader/main.py:927
|
||||
#: src/modules/bootloader/main.py:900
|
||||
msgid ""
|
||||
"The bootloader could not be installed. The installation command <pre>{!s}</"
|
||||
"pre> returned error code {!s}."
|
||||
@@ -99,8 +99,8 @@ msgstr ""
|
||||
msgid "Dummy python job."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:104
|
||||
#: src/modules/dummypython/main.py:105
|
||||
#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93
|
||||
#: src/modules/dummypython/main.py:94
|
||||
msgid "Dummy python step {}"
|
||||
msgstr ""
|
||||
|
||||
@@ -112,20 +112,20 @@ msgstr ""
|
||||
#: src/modules/fstab/main.py:411 src/modules/initcpiocfg/main.py:256
|
||||
#: src/modules/initcpiocfg/main.py:260 src/modules/initramfscfg/main.py:85
|
||||
#: src/modules/initramfscfg/main.py:89 src/modules/localecfg/main.py:140
|
||||
#: src/modules/mount/main.py:334 src/modules/networkcfg/main.py:106
|
||||
#: src/modules/mount/main.py:329 src/modules/networkcfg/main.py:105
|
||||
#: src/modules/openrcdmcryptcfg/main.py:72
|
||||
#: src/modules/openrcdmcryptcfg/main.py:76 src/modules/rawfs/main.py:164
|
||||
msgid "Configuration Error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:378 src/modules/initramfscfg/main.py:86
|
||||
#: src/modules/mount/main.py:335 src/modules/openrcdmcryptcfg/main.py:73
|
||||
#: src/modules/mount/main.py:330 src/modules/openrcdmcryptcfg/main.py:73
|
||||
#: src/modules/rawfs/main.py:165
|
||||
msgid "No partitions are defined for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:384 src/modules/initramfscfg/main.py:90
|
||||
#: src/modules/localecfg/main.py:141 src/modules/networkcfg/main.py:107
|
||||
#: src/modules/localecfg/main.py:141 src/modules/networkcfg/main.py:106
|
||||
#: src/modules/openrcdmcryptcfg/main.py:77
|
||||
msgid "No root mount point is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
@@ -134,7 +134,7 @@ msgstr ""
|
||||
msgid "No <pre>{!s}</pre> configuration is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/grubcfg/main.py:30
|
||||
#: src/modules/grubcfg/main.py:29
|
||||
msgid "Configure GRUB."
|
||||
msgstr ""
|
||||
|
||||
@@ -194,11 +194,11 @@ msgstr ""
|
||||
msgid "Failed to set zfs mountpoint"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:370
|
||||
#: src/modules/mount/main.py:365
|
||||
msgid "zfs mounting error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/networkcfg/main.py:30
|
||||
#: src/modules/networkcfg/main.py:29
|
||||
msgid "Saving network configuration."
|
||||
msgstr ""
|
||||
|
||||
|
@@ -65,14 +65,11 @@ sysconfigSetup: false
|
||||
# greetd has configurable user and group; the user and group is created if it
|
||||
# does not exist, and the user is set as default-session user.
|
||||
#
|
||||
# Some greeters for greetd (e.g gtkgreet or regreet) have support for a user's GTK CSS style to change appearance.
|
||||
#
|
||||
# lightdm has a list of greeters to look for, preferring them in order if
|
||||
# they are installed (if not, picks the alphabetically first greeter that is installed).
|
||||
#
|
||||
greetd:
|
||||
greeter_user: "tom_bombadil"
|
||||
greeter_group: "wheel"
|
||||
greeter_css_location: "/etc/greetd/style.css"
|
||||
lightdm:
|
||||
preferred_greeters: ["lightdm-greeter.desktop", "slick-greeter.desktop"]
|
||||
|
@@ -25,7 +25,6 @@ properties:
|
||||
properties:
|
||||
greeter_user: { type: string }
|
||||
greeter_group: { type: string }
|
||||
greeter_css_location: { type: string }
|
||||
additionalProperties: false
|
||||
lightdm:
|
||||
type: object
|
||||
|
@@ -779,7 +779,6 @@ class DMgreetd(DisplayManager):
|
||||
executable = "greetd"
|
||||
greeter_user = "greeter"
|
||||
greeter_group = "greetd"
|
||||
greeter_css_location = None
|
||||
config_data = {}
|
||||
|
||||
def os_path(self, path):
|
||||
@@ -847,8 +846,6 @@ class DMgreetd(DisplayManager):
|
||||
de_command = default_desktop_environment.executable
|
||||
if os.path.exists(self.os_path("usr/bin/gtkgreet")) and os.path.exists(self.os_path("usr/bin/cage")):
|
||||
self.config_data['default_session']['command'] = "cage -d -s -- gtkgreet"
|
||||
if self.greeter_css_location:
|
||||
self.config_data['default_session']['command'] += f" -s {self.greeter_css_location}"
|
||||
elif os.path.exists(self.os_path("usr/bin/tuigreet")):
|
||||
tuigreet_base_cmd = "tuigreet --remember --time --issue --asterisks --cmd "
|
||||
self.config_data['default_session']['command'] = tuigreet_base_cmd + de_command
|
||||
|
@@ -407,13 +407,15 @@ localeLabel( const QString& s )
|
||||
QString
|
||||
Config::currentLanguageStatus() const
|
||||
{
|
||||
return tr( "The system language will be set to %1.", "@info" ).arg( localeLabel( m_selectedLocaleConfiguration.language() ) );
|
||||
return tr( "The system language will be set to %1", "@info" )
|
||||
.arg( localeLabel( m_selectedLocaleConfiguration.language() ) );
|
||||
}
|
||||
|
||||
QString
|
||||
Config::currentLCStatus() const
|
||||
{
|
||||
return tr( "The numbers and dates locale will be set to %1.", "@info" ).arg( localeLabel( m_selectedLocaleConfiguration.lc_numeric ) );
|
||||
return tr( "The numbers and dates locale will be set to %1", "@info" )
|
||||
.arg( localeLabel( m_selectedLocaleConfiguration.lc_numeric ) );
|
||||
}
|
||||
|
||||
QString
|
||||
|
@@ -23,13 +23,13 @@
|
||||
|
||||
#include <QFile>
|
||||
|
||||
const NamedEnumTable< SystemdMachineIdStyle >&
|
||||
const NamedEnumTable< MachineId::SystemdMachineIdStyle >&
|
||||
styleNames()
|
||||
{
|
||||
using T = SystemdMachineIdStyle;
|
||||
using T = MachineId::SystemdMachineIdStyle;
|
||||
// *INDENT-OFF*
|
||||
// clang-format off
|
||||
static const NamedEnumTable< SystemdMachineIdStyle > names {
|
||||
static const NamedEnumTable< MachineId::SystemdMachineIdStyle > names {
|
||||
{ QStringLiteral( "none" ), T::Blank },
|
||||
{ QStringLiteral( "blank" ), T::Blank },
|
||||
{ QStringLiteral( "uuid" ), T::Uuid },
|
||||
@@ -101,8 +101,8 @@ MachineIdJob::exec()
|
||||
QObject::tr( "Directory not found" ),
|
||||
QObject::tr( "Could not create new random file <pre>%1</pre>." ).arg( entropy_file ) );
|
||||
}
|
||||
auto r = createEntropy( m_entropy_copy ? EntropyGeneration::CopyFromHost
|
||||
: EntropyGeneration::New,
|
||||
auto r = MachineId::createEntropy( m_entropy_copy ? MachineId::EntropyGeneration::CopyFromHost
|
||||
: MachineId::EntropyGeneration::New,
|
||||
root,
|
||||
entropy_file );
|
||||
if ( !r )
|
||||
@@ -116,7 +116,7 @@ MachineIdJob::exec()
|
||||
{
|
||||
cWarning() << "Could not create systemd data-directory.";
|
||||
}
|
||||
auto r = createSystemdMachineId( m_systemd_style, root, target_systemd_machineid_file );
|
||||
auto r = MachineId::createSystemdMachineId( m_systemd_style, root, target_systemd_machineid_file );
|
||||
if ( !r )
|
||||
{
|
||||
return r;
|
||||
@@ -130,7 +130,7 @@ MachineIdJob::exec()
|
||||
}
|
||||
if ( m_dbus_symlink && QFile::exists( root + target_systemd_machineid_file ) )
|
||||
{
|
||||
auto r = createDBusLink( root, target_dbus_machineid_file, target_systemd_machineid_file );
|
||||
auto r = MachineId::createDBusLink( root, target_dbus_machineid_file, target_systemd_machineid_file );
|
||||
if ( !r )
|
||||
{
|
||||
return r;
|
||||
@@ -138,7 +138,7 @@ MachineIdJob::exec()
|
||||
}
|
||||
else
|
||||
{
|
||||
auto r = createDBusMachineId( root, target_dbus_machineid_file );
|
||||
auto r = MachineId::createDBusMachineId( root, target_dbus_machineid_file );
|
||||
if ( !r )
|
||||
{
|
||||
return r;
|
||||
@@ -157,7 +157,7 @@ MachineIdJob::setConfigurationMap( const QVariantMap& map )
|
||||
const auto style = Calamares::getString( map, "systemd-style", QString() );
|
||||
if ( !style.isEmpty() )
|
||||
{
|
||||
m_systemd_style = styleNames().find( style, SystemdMachineIdStyle::Uuid );
|
||||
m_systemd_style = styleNames().find( style, MachineId::SystemdMachineIdStyle::Uuid );
|
||||
}
|
||||
|
||||
m_dbus = Calamares::getBool( map, "dbus", false );
|
||||
@@ -179,7 +179,7 @@ MachineIdJob::setConfigurationMap( const QVariantMap& map )
|
||||
m_entropy_files = Calamares::getStringList( map, "entropy-files" );
|
||||
if ( Calamares::getBool( map, "entropy", false ) )
|
||||
{
|
||||
cWarning() << " configuration setting *entropy* is deprecated, use *entropy-files* instead.";
|
||||
cWarning() << "MachineId:: configuration setting *entropy* is deprecated, use *entropy-files* instead.";
|
||||
m_entropy_files.append( QStringLiteral( "/var/lib/urandom/random-seed" ) );
|
||||
}
|
||||
m_entropy_files.removeDuplicates();
|
||||
|
@@ -48,7 +48,7 @@ public:
|
||||
private:
|
||||
bool m_systemd = false; ///< write systemd's files
|
||||
|
||||
SystemdMachineIdStyle m_systemd_style = SystemdMachineIdStyle::Uuid;
|
||||
MachineId::SystemdMachineIdStyle m_systemd_style = MachineId::SystemdMachineIdStyle::Uuid;
|
||||
|
||||
bool m_dbus = false; ///< write dbus files
|
||||
bool m_dbus_symlink = false; ///< .. or just symlink to systemd
|
||||
|
@@ -127,18 +127,18 @@ MachineIdTests::testCopyFile()
|
||||
QVERIFY( source.exists() );
|
||||
|
||||
// This should fail since "example" isn't standard in our test directory
|
||||
auto r0 = copyFile( tempRoot.path(), "example" );
|
||||
auto r0 = MachineId::copyFile( tempRoot.path(), "example" );
|
||||
QVERIFY( !r0 );
|
||||
|
||||
const QString sampleFile = QStringLiteral( "CMakeCache.txt" );
|
||||
if ( QFile::exists( sampleFile ) )
|
||||
{
|
||||
auto r1 = copyFile( tempRoot.path(), sampleFile );
|
||||
auto r1 = MachineId::copyFile( tempRoot.path(), sampleFile );
|
||||
// Also fail, because it's not an absolute path
|
||||
QVERIFY( !r1 );
|
||||
|
||||
QVERIFY( QFile::copy( sampleFile, tempISOdir.path() + '/' + sampleFile ) );
|
||||
auto r2 = copyFile( tempRoot.path(), tempISOdir.path() + '/' + sampleFile );
|
||||
auto r2 = MachineId::copyFile( tempRoot.path(), tempISOdir.path() + '/' + sampleFile );
|
||||
QVERIFY( r2 );
|
||||
}
|
||||
}
|
||||
|
@@ -12,8 +12,6 @@
|
||||
|
||||
#include "Workers.h"
|
||||
|
||||
#include "MachineIdJob.h"
|
||||
|
||||
#include "utils/Entropy.h"
|
||||
#include "utils/Logger.h"
|
||||
#include "utils/System.h"
|
||||
@@ -48,6 +46,9 @@ getUrandomPoolSize()
|
||||
return ( poolSize >= minimumPoolSize ) ? poolSize : minimumPoolSize;
|
||||
}
|
||||
|
||||
namespace MachineId
|
||||
{
|
||||
|
||||
static inline bool
|
||||
isAbsolutePath( const QString& fileName )
|
||||
{
|
||||
@@ -60,19 +61,19 @@ copyFile( const QString& rootMountPoint, const QString& fileName )
|
||||
if ( !isAbsolutePath( fileName ) )
|
||||
{
|
||||
return Calamares::JobResult::internalError(
|
||||
MachineIdJob::tr( "File not found" ),
|
||||
MachineIdJob::tr( "Path <pre>%1</pre> must be an absolute path." ).arg( fileName ),
|
||||
QObject::tr( "File not found" ),
|
||||
QObject::tr( "Path <pre>%1</pre> must be an absolute path." ).arg( fileName ),
|
||||
0 );
|
||||
}
|
||||
|
||||
QFile f( fileName );
|
||||
if ( !f.exists() )
|
||||
{
|
||||
return Calamares::JobResult::error( MachineIdJob::tr( "File not found" ), fileName );
|
||||
return Calamares::JobResult::error( QObject::tr( "File not found" ), fileName );
|
||||
}
|
||||
if ( !f.copy( rootMountPoint + fileName ) )
|
||||
{
|
||||
return Calamares::JobResult::error( MachineIdJob::tr( "File not found" ), rootMountPoint + fileName );
|
||||
return Calamares::JobResult::error( QObject::tr( "File not found" ), rootMountPoint + fileName );
|
||||
}
|
||||
return Calamares::JobResult::ok();
|
||||
}
|
||||
@@ -89,8 +90,8 @@ createNewEntropy( int poolSize, const QString& rootMountPoint, const QString& fi
|
||||
if ( !entropyFile.open( QIODevice::WriteOnly ) )
|
||||
{
|
||||
return Calamares::JobResult::error(
|
||||
MachineIdJob::tr( "File not found" ),
|
||||
MachineIdJob::tr( "Could not create new random file <pre>%1</pre>." ).arg( fileName ) );
|
||||
QObject::tr( "File not found" ),
|
||||
QObject::tr( "Could not create new random file <pre>%1</pre>." ).arg( fileName ) );
|
||||
}
|
||||
|
||||
QByteArray data;
|
||||
@@ -189,3 +190,5 @@ createDBusLink( const QString& rootMountPoint, const QString& fileName, const QS
|
||||
Q_UNUSED( rootMountPoint )
|
||||
return runCmd( QStringList { QStringLiteral( "ln" ), QStringLiteral( "-sf" ), systemdFileName, fileName }, true );
|
||||
}
|
||||
|
||||
} // namespace MachineId
|
||||
|
@@ -7,11 +7,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MACHINEID_WORKERS_H
|
||||
#define MACHINEID_WORKERS_H
|
||||
#ifndef WORKERS_H
|
||||
#define WORKERS_H
|
||||
|
||||
#include "Job.h"
|
||||
|
||||
/// @brief Utility functions for doing the random-data stuff for MachineId
|
||||
namespace MachineId
|
||||
{
|
||||
/** @brief Utility functions
|
||||
*
|
||||
* These probably belong in libcalamares, since they're general utilities
|
||||
@@ -67,4 +70,7 @@ enum class SystemdMachineIdStyle
|
||||
Calamares::JobResult
|
||||
createSystemdMachineId( SystemdMachineIdStyle style, const QString& rootMountPoint, const QString& fileName );
|
||||
|
||||
|
||||
} // namespace MachineId
|
||||
|
||||
#endif // WORKERS_H
|
||||
|
2
src/modules/packagechooserq/images/artix.png.license
Normal file
2
src/modules/packagechooserq/images/artix.png.license
Normal file
@@ -0,0 +1,2 @@
|
||||
SPDX-FileCopyrightText: 2020 demmm <anke62@gmail.com>
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
@@ -42,7 +42,7 @@ Item {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("LibreOffice is a powerful and free office suite, used by millions of people around the world. It includes several applications that make it the most versatile Free and Open Source office suite on the market.<br/>
|
||||
text: qsTr("OpenRC base system.<br/>
|
||||
Default option.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
@@ -50,76 +50,14 @@ Item {
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element2
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("LibreOffice")
|
||||
checked: true
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
indicator: Rectangle {
|
||||
implicitWidth: 40
|
||||
implicitHeight: 14
|
||||
radius: 10
|
||||
color: element2.checked ? "#3498db" : "#B9B9B9"
|
||||
border.color: element2.checked ? "#3498db" : "#cccccc"
|
||||
|
||||
Rectangle {
|
||||
x: element2.checked ? parent.width - width : 0
|
||||
y: (parent.height - height) / 2
|
||||
width: 20
|
||||
height: 20
|
||||
radius: 10
|
||||
color: element2.down ? "#cccccc" : "#ffffff"
|
||||
border.color: element2.checked ? (element1.down ? "#3498db" : "#3498db") : "#999999"
|
||||
}
|
||||
}
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "libreoffice"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image2
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/libreoffice.jpg"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 700
|
||||
height: 150
|
||||
radius: 10
|
||||
border.width: 0
|
||||
Text {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("If you don't want to install an office suite, just select No Office Suite. You can always add one (or more) later on your installed system as the need arrives.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element1
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("No Office Suite")
|
||||
checked: false
|
||||
text: qsTr("OpenRC")
|
||||
checked: true
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
@@ -143,18 +81,80 @@ Item {
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "no_office_suite"
|
||||
config.packageChoice = "elogind-openrc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image
|
||||
id: image1
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/no-selection.png"
|
||||
source: "images/artix.png"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 700
|
||||
height: 150
|
||||
radius: 10
|
||||
border.width: 0
|
||||
Text {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Dinit base system.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element2
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("Dinit")
|
||||
checked: false
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
indicator: Rectangle {
|
||||
implicitWidth: 40
|
||||
implicitHeight: 14
|
||||
radius: 10
|
||||
color: element2.checked ? "#3498db" : "#B9B9B9"
|
||||
border.color: element2.checked ? "#3498db" : "#cccccc"
|
||||
|
||||
Rectangle {
|
||||
x: element2.checked ? parent.width - width : 0
|
||||
y: (parent.height - height) / 2
|
||||
width: 20
|
||||
height: 20
|
||||
radius: 10
|
||||
color: element2.down ? "#cccccc" : "#ffffff"
|
||||
border.color: element2.checked ? (element2.down ? "#3498db" : "#3498db") : "#999999"
|
||||
}
|
||||
}
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "elogind-dinit"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image2
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/artix.png"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -169,7 +169,7 @@ Item {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Create a minimal Desktop install, remove all extra applications and decide later on what you would like to add to your system. Examples of what won't be on such an install, there will be no Office Suite, no media players, no image viewer or print support. It will be just a desktop, file browser, package manager, text editor and simple web-browser.")
|
||||
text: qsTr("Runit base system.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
@@ -182,7 +182,7 @@ Item {
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("Minimal Install")
|
||||
text: qsTr("Runit")
|
||||
checked: false
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
@@ -207,7 +207,7 @@ Item {
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "minimal_install"
|
||||
config.packageChoice = "elogind-runit"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -218,7 +218,70 @@ Item {
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/plasma.png"
|
||||
source: "images/artix.png"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 700
|
||||
height: 150
|
||||
color: "#ffffff"
|
||||
radius: 10
|
||||
border.width: 0
|
||||
Text {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("S6 base system.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element4
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("S6")
|
||||
checked: false
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
indicator: Rectangle {
|
||||
implicitWidth: 40
|
||||
implicitHeight: 14
|
||||
radius: 10
|
||||
color: element4.checked ? "#3498db" : "#B9B9B9"
|
||||
border.color: element4.checked ? "#3498db" : "#cccccc"
|
||||
|
||||
Rectangle {
|
||||
x: element4.checked ? parent.width - width : 0
|
||||
y: (parent.height - height) / 2
|
||||
width: 20
|
||||
height: 20
|
||||
radius: 10
|
||||
color: element4.down ? "#cccccc" : "#ffffff"
|
||||
border.color: element4.checked ? (element4.down ? "#3498db" : "#3498db") : "#999999"
|
||||
}
|
||||
}
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "elogind-s6"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image4
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/artix.png"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +293,7 @@ Item {
|
||||
Text {
|
||||
height: 25
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Please select an option for your install, or use the default: LibreOffice included.")
|
||||
text: qsTr("Please select an option for your install, or use the default: OpenRC.")
|
||||
font.pointSize: 10
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
@@ -4,5 +4,6 @@
|
||||
<file>images/libreoffice.jpg</file>
|
||||
<file>images/no-selection.png</file>
|
||||
<file>images/plasma.png</file>
|
||||
<file>images/artix.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@@ -42,7 +42,7 @@ Item {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("LibreOffice is a powerful and free office suite, used by millions of people around the world. It includes several applications that make it the most versatile Free and Open Source office suite on the market.<br/>
|
||||
text: qsTr("OpenRC base system.<br/>
|
||||
Default option.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
@@ -50,76 +50,14 @@ Item {
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element2
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("LibreOffice")
|
||||
checked: true
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
indicator: Rectangle {
|
||||
implicitWidth: 40
|
||||
implicitHeight: 14
|
||||
radius: 10
|
||||
color: element2.checked ? "#3498db" : "#B9B9B9"
|
||||
border.color: element2.checked ? "#3498db" : "#cccccc"
|
||||
|
||||
Rectangle {
|
||||
x: element2.checked ? parent.width - width : 0
|
||||
y: (parent.height - height) / 2
|
||||
width: 20
|
||||
height: 20
|
||||
radius: 10
|
||||
color: element2.down ? "#cccccc" : "#ffffff"
|
||||
border.color: element2.checked ? (element1.down ? "#3498db" : "#3498db") : "#999999"
|
||||
}
|
||||
}
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "libreoffice"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image2
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/libreoffice.jpg"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 700
|
||||
height: 150
|
||||
radius: 10
|
||||
border.width: 0
|
||||
Text {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("If you don't want to install an office suite, just select No Office Suite. You can always add one (or more) later on your installed system as the need arrives.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element1
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("No Office Suite")
|
||||
checked: false
|
||||
text: qsTr("OpenRC")
|
||||
checked: true
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
@@ -143,18 +81,80 @@ Item {
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "no_office_suite"
|
||||
config.packageChoice = "elogind-openrc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image
|
||||
id: image1
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/no-selection.png"
|
||||
source: "images/artix.png"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 700
|
||||
height: 150
|
||||
radius: 10
|
||||
border.width: 0
|
||||
Text {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Dinit base system.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element2
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("Dinit")
|
||||
checked: false
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
indicator: Rectangle {
|
||||
implicitWidth: 40
|
||||
implicitHeight: 14
|
||||
radius: 10
|
||||
color: element2.checked ? "#3498db" : "#B9B9B9"
|
||||
border.color: element2.checked ? "#3498db" : "#cccccc"
|
||||
|
||||
Rectangle {
|
||||
x: element2.checked ? parent.width - width : 0
|
||||
y: (parent.height - height) / 2
|
||||
width: 20
|
||||
height: 20
|
||||
radius: 10
|
||||
color: element2.down ? "#cccccc" : "#ffffff"
|
||||
border.color: element2.checked ? (element2.down ? "#3498db" : "#3498db") : "#999999"
|
||||
}
|
||||
}
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "elogind-dinit"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image2
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/artix.png"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -169,7 +169,7 @@ Item {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Create a minimal Desktop install, remove all extra applications and decide later on what you would like to add to your system. Examples of what won't be on such an install, there will be no Office Suite, no media players, no image viewer or print support. It will be just a desktop, file browser, package manager, text editor and simple web-browser.")
|
||||
text: qsTr("Runit base system.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
@@ -182,7 +182,7 @@ Item {
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("Minimal Install")
|
||||
text: qsTr("Runit")
|
||||
checked: false
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
@@ -207,7 +207,7 @@ Item {
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "minimal_install"
|
||||
config.packageChoice = "elogind-runit"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -218,7 +218,70 @@ Item {
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/plasma.png"
|
||||
source: "images/artix.png"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 700
|
||||
height: 150
|
||||
color: "#ffffff"
|
||||
radius: 10
|
||||
border.width: 0
|
||||
Text {
|
||||
width: 450
|
||||
height: 104
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("S6 base system.")
|
||||
font.pointSize: 10
|
||||
anchors.verticalCenterOffset: -10
|
||||
anchors.horizontalCenterOffset: 100
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
||||
Switch {
|
||||
id: element4
|
||||
x: 500
|
||||
y: 110
|
||||
width: 187
|
||||
height: 14
|
||||
text: qsTr("S6")
|
||||
checked: false
|
||||
hoverEnabled: true
|
||||
ButtonGroup.group: switchGroup
|
||||
|
||||
indicator: Rectangle {
|
||||
implicitWidth: 40
|
||||
implicitHeight: 14
|
||||
radius: 10
|
||||
color: element4.checked ? "#3498db" : "#B9B9B9"
|
||||
border.color: element4.checked ? "#3498db" : "#cccccc"
|
||||
|
||||
Rectangle {
|
||||
x: element4.checked ? parent.width - width : 0
|
||||
y: (parent.height - height) / 2
|
||||
width: 20
|
||||
height: 20
|
||||
radius: 10
|
||||
color: element4.down ? "#cccccc" : "#ffffff"
|
||||
border.color: element4.checked ? (element4.down ? "#3498db" : "#3498db") : "#999999"
|
||||
}
|
||||
}
|
||||
|
||||
onCheckedChanged: {
|
||||
if ( checked ) {
|
||||
config.packageChoice = "elogind-s6"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image4
|
||||
x: 8
|
||||
y: 25
|
||||
height: 100
|
||||
fillMode: Image.PreserveAspectFit
|
||||
source: "images/artix.png"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +293,7 @@ Item {
|
||||
Text {
|
||||
height: 25
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Please select an option for your install, or use the default: LibreOffice included.")
|
||||
text: qsTr("Please select an option for your install, or use the default: OpenRC.")
|
||||
font.pointSize: 10
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
|
@@ -4,5 +4,6 @@
|
||||
<file>images/libreoffice.jpg</file>
|
||||
<file>images/no-selection.png</file>
|
||||
<file>images/plasma.png</file>
|
||||
<file>images/artix.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@@ -53,7 +53,7 @@ PartitionViewStep::PartitionViewStep( QObject* parent )
|
||||
m_waitingWidget = new WaitingWidget( QString() );
|
||||
m_widget->addWidget( m_waitingWidget );
|
||||
CALAMARES_RETRANSLATE(
|
||||
if ( m_waitingWidget ) { m_waitingWidget->setText( tr( "Gathering system information…", "@status" ) ); } );
|
||||
if ( m_waitingWidget ) { m_waitingWidget->setText( tr( "Gathering system information..." ) ); } );
|
||||
|
||||
m_core = new PartitionCoreModule( this ); // Unusable before init is complete!
|
||||
// We're not done loading, but we need the configuration map first.
|
||||
@@ -104,7 +104,7 @@ PartitionViewStep::~PartitionViewStep()
|
||||
QString
|
||||
PartitionViewStep::prettyName() const
|
||||
{
|
||||
return tr( "Partitions", "@label" );
|
||||
return tr( "Partitions" );
|
||||
}
|
||||
|
||||
/** @brief Gather the pretty descriptions of all the partitioning jobs
|
||||
@@ -140,17 +140,17 @@ modeDescription( Config::InstallChoice choice )
|
||||
switch ( choice )
|
||||
{
|
||||
case Config::InstallChoice::Alongside:
|
||||
return QCoreApplication::translate( context, "Install %1 <strong>alongside</strong> another operating system", "@label" )
|
||||
return QCoreApplication::translate( context, "Install %1 <strong>alongside</strong> another operating system." )
|
||||
.arg( branding->shortVersionedName() );
|
||||
case Config::InstallChoice::Erase:
|
||||
return QCoreApplication::translate( context, "<strong>Erase</strong> disk and install %1", "@label" )
|
||||
return QCoreApplication::translate( context, "<strong>Erase</strong> disk and install %1." )
|
||||
.arg( branding->shortVersionedName() );
|
||||
case Config::InstallChoice::Replace:
|
||||
return QCoreApplication::translate( context, "<strong>Replace</strong> a partition with %1", "@label" )
|
||||
return QCoreApplication::translate( context, "<strong>Replace</strong> a partition with %1." )
|
||||
.arg( branding->shortVersionedName() );
|
||||
case Config::InstallChoice::NoChoice:
|
||||
case Config::InstallChoice::Manual:
|
||||
return QCoreApplication::translate( context, "<strong>Manual</strong> partitioning", "@label" );
|
||||
return QCoreApplication::translate( context, "<strong>Manual</strong> partitioning." );
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
@@ -176,26 +176,26 @@ diskDescription( int listLength, const PartitionCoreModule::SummaryInfo& info, C
|
||||
return QCoreApplication::translate(
|
||||
context,
|
||||
"Install %1 <strong>alongside</strong> another operating system on disk "
|
||||
"<strong>%2</strong> (%3)", "@info" )
|
||||
"<strong>%2</strong> (%3)." )
|
||||
.arg( branding->shortVersionedName() )
|
||||
.arg( info.deviceNode )
|
||||
.arg( info.deviceName );
|
||||
case Config::Erase:
|
||||
return QCoreApplication::translate( context,
|
||||
"<strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1", "@info" )
|
||||
"<strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1." )
|
||||
.arg( branding->shortVersionedName() )
|
||||
.arg( info.deviceNode )
|
||||
.arg( info.deviceName );
|
||||
case Config::Replace:
|
||||
return QCoreApplication::translate(
|
||||
context, "<strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1", "@info" )
|
||||
context, "<strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1." )
|
||||
.arg( branding->shortVersionedName() )
|
||||
.arg( info.deviceNode )
|
||||
.arg( info.deviceName );
|
||||
case Config::NoChoice:
|
||||
case Config::Manual:
|
||||
return QCoreApplication::translate(
|
||||
context, "<strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2)", "@info" )
|
||||
context, "<strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2)." )
|
||||
.arg( info.deviceNode )
|
||||
.arg( info.deviceName );
|
||||
}
|
||||
@@ -203,7 +203,7 @@ diskDescription( int listLength, const PartitionCoreModule::SummaryInfo& info, C
|
||||
}
|
||||
else // multiple disk previews!
|
||||
{
|
||||
return QCoreApplication::translate( context, "Disk <strong>%1</strong> (%2)", "@info" )
|
||||
return QCoreApplication::translate( context, "Disk <strong>%1</strong> (%2)" )
|
||||
.arg( info.deviceNode )
|
||||
.arg( info.deviceName );
|
||||
}
|
||||
@@ -293,7 +293,7 @@ PartitionViewStep::createSummaryWidget() const
|
||||
field->setSpacing( 6 );
|
||||
field->addWidget( preview );
|
||||
field->addWidget( previewLabels );
|
||||
formLayout->addRow( tr( "Current:", "@label" ), field );
|
||||
formLayout->addRow( tr( "Current:" ), field );
|
||||
|
||||
preview = new PartitionBarsView;
|
||||
preview->setNestedPartitionsMode( mode );
|
||||
@@ -311,7 +311,7 @@ PartitionViewStep::createSummaryWidget() const
|
||||
field->setSpacing( 6 );
|
||||
field->addWidget( preview );
|
||||
field->addWidget( previewLabels );
|
||||
formLayout->addRow( tr( "After:", "@label" ), field );
|
||||
formLayout->addRow( tr( "After:" ), field );
|
||||
}
|
||||
const QStringList jobsLines = jobDescriptions( jobs() );
|
||||
if ( !jobsLines.isEmpty() )
|
||||
|
@@ -57,7 +57,7 @@ BootLoaderModel::createMbrItems()
|
||||
{
|
||||
for ( auto device : m_devices )
|
||||
{
|
||||
QString text = tr( "Master Boot Record of %1", "@info" ).arg( device->name() );
|
||||
QString text = tr( "Master Boot Record of %1" ).arg( device->name() );
|
||||
appendRow( createBootLoaderItem( text, device->deviceNode(), false ) );
|
||||
}
|
||||
}
|
||||
@@ -90,14 +90,14 @@ BootLoaderModel::updateInternal()
|
||||
Partition* partition = KPMHelpers::findPartitionByMountPoint( m_devices, "/boot" );
|
||||
if ( partition )
|
||||
{
|
||||
partitionText = tr( "Boot Partition", "@info" );
|
||||
partitionText = tr( "Boot Partition" );
|
||||
}
|
||||
else
|
||||
{
|
||||
partition = KPMHelpers::findPartitionByMountPoint( m_devices, "/" );
|
||||
if ( partition )
|
||||
{
|
||||
partitionText = tr( "System Partition", "@info" );
|
||||
partitionText = tr( "System Partition" );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ BootLoaderModel::updateInternal()
|
||||
}
|
||||
// Create "don't install bootloader" item. This is always available,
|
||||
// also if there was no /boot or / partition found.
|
||||
appendRow( createBootLoaderItem( tr( "Do not install a boot loader", "@label" ), QString(), false ) );
|
||||
appendRow( createBootLoaderItem( tr( "Do not install a boot loader" ), QString(), false ) );
|
||||
}
|
||||
|
||||
|
||||
|
@@ -154,11 +154,11 @@ PartitionModel::data( const QModelIndex& index, int role ) const
|
||||
{
|
||||
if ( isPartitionFreeSpace( partition ) )
|
||||
{
|
||||
return tr( "Free Space", "@title" );
|
||||
return tr( "Free Space" );
|
||||
}
|
||||
else
|
||||
{
|
||||
return isPartitionNew( partition ) ? tr( "New Partition", "@title" ) : partition->partitionPath();
|
||||
return isPartitionNew( partition ) ? tr( "New partition" ) : partition->partitionPath();
|
||||
}
|
||||
}
|
||||
if ( col == FileSystemColumn )
|
||||
@@ -198,11 +198,11 @@ PartitionModel::data( const QModelIndex& index, int role ) const
|
||||
{
|
||||
if ( isPartitionFreeSpace( partition ) )
|
||||
{
|
||||
name = tr( "Free Space", "@title );
|
||||
name = tr( "Free Space" );
|
||||
}
|
||||
else
|
||||
{
|
||||
name = isPartitionNew( partition ) ? tr( "New Partition", "@title" ) : partition->partitionPath();
|
||||
name = isPartitionNew( partition ) ? tr( "New partition" ) : partition->partitionPath();
|
||||
}
|
||||
}
|
||||
QString prettyFileSystem = Calamares::Partition::prettyNameForFileSystemType( partition->fileSystem().type() );
|
||||
@@ -304,15 +304,15 @@ PartitionModel::headerData( int section, Qt::Orientation, int role ) const
|
||||
switch ( section )
|
||||
{
|
||||
case NameColumn:
|
||||
return tr( "Name", "@title" );
|
||||
return tr( "Name" );
|
||||
case FileSystemColumn:
|
||||
return tr( "File System", "@title" );
|
||||
return tr( "File System" );
|
||||
case FileSystemLabelColumn:
|
||||
return tr( "File System Label", "@title" );
|
||||
return tr( "File System Label" );
|
||||
case MountPointColumn:
|
||||
return tr( "Mount Point", "@title" );
|
||||
return tr( "Mount Point" );
|
||||
case SizeColumn:
|
||||
return tr( "Size", "@title" );
|
||||
return tr( "Size" );
|
||||
default:
|
||||
cDebug() << "Unknown column" << section;
|
||||
return QVariant();
|
||||
|
@@ -134,9 +134,9 @@ void
|
||||
ChoicePage::retranslate()
|
||||
{
|
||||
retranslateUi( this );
|
||||
m_drivesLabel->setText( tr( "Select storage de&vice:", "@label" ) );
|
||||
m_previewBeforeLabel->setText( tr( "Current:", "@label" ) );
|
||||
m_previewAfterLabel->setText( tr( "After:", "@label" ) );
|
||||
m_drivesLabel->setText( tr( "Select storage de&vice:" ) );
|
||||
m_previewBeforeLabel->setText( tr( "Current:" ) );
|
||||
m_previewAfterLabel->setText( tr( "After:" ) );
|
||||
|
||||
updateSwapChoicesTr();
|
||||
updateChoiceButtonsTr();
|
||||
@@ -893,7 +893,7 @@ ChoicePage::doReplaceSelectedPartition( const QModelIndex& current )
|
||||
m_reuseHomeCheckBox->setVisible( !homePartitionPath->isEmpty() );
|
||||
if ( !homePartitionPath->isEmpty() )
|
||||
{
|
||||
m_reuseHomeCheckBox->setText( tr( "Reuse %1 as home partition for %2", "@label" )
|
||||
m_reuseHomeCheckBox->setText( tr( "Reuse %1 as home partition for %2." )
|
||||
.arg( *homePartitionPath )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
}
|
||||
@@ -1031,7 +1031,7 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice )
|
||||
{
|
||||
m_encryptWidget->show();
|
||||
}
|
||||
m_previewBeforeLabel->setText( tr( "Current:", "@label" ) );
|
||||
m_previewBeforeLabel->setText( tr( "Current:" ) );
|
||||
m_selectLabel->setText( tr( "<strong>Select a partition to shrink, "
|
||||
"then drag the bottom bar to resize</strong>" ) );
|
||||
m_selectLabel->show();
|
||||
@@ -1057,7 +1057,7 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice )
|
||||
Q_UNUSED( path )
|
||||
sizeLabel->setText(
|
||||
tr( "%1 will be shrunk to %2MiB and a new "
|
||||
"%3MiB partition will be created for %4.", "@info, %1 is partition name, %4 is product name" )
|
||||
"%3MiB partition will be created for %4." )
|
||||
.arg( m_beforePartitionBarsView->selectionModel()->currentIndex().data().toString() )
|
||||
.arg( Calamares::BytesToMiB( size ) )
|
||||
.arg( Calamares::BytesToMiB( sizeNext ) )
|
||||
@@ -1082,7 +1082,7 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice )
|
||||
case InstallChoice::Replace:
|
||||
{
|
||||
m_encryptWidget->setVisible( shouldShowEncryptWidget( choice ) );
|
||||
m_previewBeforeLabel->setText( tr( "Current:", "@label" ) );
|
||||
m_previewBeforeLabel->setText( tr( "Current:" ) );
|
||||
m_afterPartitionBarsView = new PartitionBarsView( m_previewAfterFrame );
|
||||
m_afterPartitionBarsView->setNestedPartitionsMode( mode );
|
||||
m_afterPartitionLabelsView = new PartitionLabelsView( m_previewAfterFrame );
|
||||
@@ -1126,7 +1126,7 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice )
|
||||
m_beforePartitionLabelsView->setSelectionFilter( filter );
|
||||
|
||||
m_selectLabel->show();
|
||||
m_selectLabel->setText( tr( "<strong>Select a partition to install on</strong>", "@label" ) );
|
||||
m_selectLabel->setText( tr( "<strong>Select a partition to install on</strong>" ) );
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -1135,7 +1135,7 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice )
|
||||
case InstallChoice::Manual:
|
||||
m_selectLabel->hide();
|
||||
m_previewAfterFrame->hide();
|
||||
m_previewBeforeLabel->setText( tr( "Current:", "@label" ) );
|
||||
m_previewBeforeLabel->setText( tr( "Current:" ) );
|
||||
m_previewAfterLabel->hide();
|
||||
m_encryptWidget->hide();
|
||||
break;
|
||||
@@ -1188,21 +1188,21 @@ ChoicePage::setupEfiSystemPartitionSelector()
|
||||
{
|
||||
m_efiLabel->setText( tr( "An EFI system partition cannot be found anywhere "
|
||||
"on this system. Please go back and use manual "
|
||||
"partitioning to set up %1.", "@info, %1 is product name" )
|
||||
"partitioning to set up %1." )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
updateNextEnabled();
|
||||
}
|
||||
else if ( efiSystemPartitions.count() == 1 ) //probably most usual situation
|
||||
{
|
||||
m_efiLabel->setText( tr( "The EFI system partition at %1 will be used for "
|
||||
"starting %2.", "@info, %1 is partition path, %2 is product name" )
|
||||
"starting %2." )
|
||||
.arg( efiSystemPartitions.first()->partitionPath() )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_efiComboBox->show();
|
||||
m_efiLabel->setText( tr( "EFI system partition:", "@label" ) );
|
||||
m_efiLabel->setText( tr( "EFI system partition:" ) );
|
||||
for ( int i = 0; i < efiSystemPartitions.count(); ++i )
|
||||
{
|
||||
Partition* efiPartition = efiSystemPartitions.at( i );
|
||||
@@ -1505,12 +1505,12 @@ ChoicePage::setupActions()
|
||||
{
|
||||
if ( atLeastOneIsMounted )
|
||||
{
|
||||
m_messageLabel->setText( tr( "This storage device has one of its partitions <strong>mounted</strong>.", "@info" ) );
|
||||
m_messageLabel->setText( tr( "This storage device has one of its partitions <strong>mounted</strong>." ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_messageLabel->setText(
|
||||
tr( "This storage device is a part of an <strong>inactive RAID</strong> device.", "@info" ) );
|
||||
tr( "This storage device is a part of an <strong>inactive RAID</strong> device." ) );
|
||||
}
|
||||
|
||||
m_messageLabel->show();
|
||||
@@ -1625,7 +1625,7 @@ ChoicePage::updateSwapChoicesTr()
|
||||
// toInt() returns 0 on failure, so check for ok
|
||||
if ( ok ) // It was explicitly set to 0
|
||||
{
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "No swap", "@label" ) );
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "No Swap" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1634,16 +1634,16 @@ ChoicePage::updateSwapChoicesTr()
|
||||
}
|
||||
break;
|
||||
case SwapChoice::ReuseSwap:
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Reuse swap", "@label" ) );
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Reuse Swap" ) );
|
||||
break;
|
||||
case SwapChoice::SmallSwap:
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Swap (no Hibernate)", "@label" ) );
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Swap (no Hibernate)" ) );
|
||||
break;
|
||||
case SwapChoice::FullSwap:
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Swap (with Hibernate)", "@label" ) );
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Swap (with Hibernate)" ) );
|
||||
break;
|
||||
case SwapChoice::SwapFile:
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Swap to file", "@label" ) );
|
||||
m_eraseSwapChoiceComboBox->setItemText( index, tr( "Swap to file" ) );
|
||||
break;
|
||||
default:
|
||||
cWarning() << "Box item" << index << m_eraseSwapChoiceComboBox->itemText( index ) << "has role" << value;
|
||||
@@ -1684,7 +1684,7 @@ ChoicePage::createBootloaderPanel()
|
||||
mainLayout->setContentsMargins( 0, 0, 0, 0 );
|
||||
QLabel* widgetLabel = new QLabel( panelWidget );
|
||||
mainLayout->addWidget( widgetLabel );
|
||||
widgetLabel->setText( tr( "Bootloader location:", "@label" ) );
|
||||
widgetLabel->setText( tr( "Boot loader location:" ) );
|
||||
|
||||
QComboBox* comboForBootloader = new QComboBox( panelWidget );
|
||||
comboForBootloader->setModel( m_core->bootLoaderModel() );
|
||||
|
@@ -64,7 +64,7 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device,
|
||||
, m_usedMountPoints( usedMountPoints )
|
||||
{
|
||||
m_ui->setupUi( this );
|
||||
m_ui->encryptWidget->setText( tr( "En&crypt", "@action" ) );
|
||||
m_ui->encryptWidget->setText( tr( "En&crypt" ) );
|
||||
m_ui->encryptWidget->hide();
|
||||
|
||||
if ( m_device->type() != Device::Type::LVM_Device )
|
||||
@@ -192,12 +192,12 @@ CreatePartitionDialog::initMbrPartitionTypeUi()
|
||||
if ( !parentIsPartitionTable )
|
||||
{
|
||||
m_role = PartitionRole( PartitionRole::Logical );
|
||||
fixedPartitionString = tr( "Logical", "@label" );
|
||||
fixedPartitionString = tr( "Logical" );
|
||||
}
|
||||
else if ( m_device->partitionTable()->hasExtended() )
|
||||
{
|
||||
m_role = PartitionRole( PartitionRole::Primary );
|
||||
fixedPartitionString = tr( "Primary", "@label" );
|
||||
fixedPartitionString = tr( "Primary" );
|
||||
}
|
||||
|
||||
if ( fixedPartitionString.isEmpty() )
|
||||
@@ -216,7 +216,7 @@ void
|
||||
CreatePartitionDialog::initGptPartitionTypeUi()
|
||||
{
|
||||
m_role = PartitionRole( PartitionRole::Primary );
|
||||
m_ui->fixedPartitionLabel->setText( tr( "GPT", "@label" ) );
|
||||
m_ui->fixedPartitionLabel->setText( tr( "GPT" ) );
|
||||
m_ui->primaryRadioButton->hide();
|
||||
m_ui->extendedRadioButton->hide();
|
||||
}
|
||||
|
@@ -25,7 +25,7 @@ CreateVolumeGroupDialog::CreateVolumeGroupDialog( QString& vgName,
|
||||
, m_selectedPVs( selectedPVs )
|
||||
, m_peSize( pSize )
|
||||
{
|
||||
setWindowTitle( tr( "Create Volume Group", "@title" ) );
|
||||
setWindowTitle( tr( "Create Volume Group" ) );
|
||||
|
||||
peSize()->setValue( pSize );
|
||||
|
||||
|
@@ -150,12 +150,12 @@ EncryptWidget::updateState( const bool notify )
|
||||
if ( p1.isEmpty() && p2.isEmpty() )
|
||||
{
|
||||
applyPixmap( m_ui->m_iconLabel, Calamares::StatusWarning );
|
||||
m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes.", "@tooltip" ) );
|
||||
m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) );
|
||||
}
|
||||
else if ( m_filesystem == FileSystem::Zfs && p1.length() < ZFS_MIN_LENGTH )
|
||||
{
|
||||
applyPixmap( m_ui->m_iconLabel, Calamares::StatusError );
|
||||
m_ui->m_iconLabel->setToolTip( tr( "Password must be a minimum of %1 characters.", "@tooltip" ).arg( ZFS_MIN_LENGTH ) );
|
||||
m_ui->m_iconLabel->setToolTip( tr( "Password must be a minimum of %1 characters" ).arg( ZFS_MIN_LENGTH ) );
|
||||
}
|
||||
else if ( p1 == p2 )
|
||||
{
|
||||
@@ -165,7 +165,7 @@ EncryptWidget::updateState( const bool notify )
|
||||
else
|
||||
{
|
||||
applyPixmap( m_ui->m_iconLabel, Calamares::StatusError );
|
||||
m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes.", "@tooltip" ) );
|
||||
m_ui->m_iconLabel->setToolTip( tr( "Please enter the same passphrase in both boxes." ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -88,12 +88,12 @@ validateMountPoint( const QString& mountPoint, const QStringList& inUse, QLabel*
|
||||
|
||||
if ( inUse.contains( mountPoint ) )
|
||||
{
|
||||
msg = CreatePartitionDialog::tr( "Mountpoint already in use. Please select another one.", "@info" );
|
||||
msg = CreatePartitionDialog::tr( "Mountpoint already in use. Please select another one." );
|
||||
ok = false;
|
||||
}
|
||||
else if ( !mountPoint.isEmpty() && !mountPoint.startsWith( '/' ) )
|
||||
{
|
||||
msg = CreatePartitionDialog::tr( "Mountpoint must start with a <tt>/</tt>.", "@info" );
|
||||
msg = CreatePartitionDialog::tr( "Mountpoint must start with a <tt>/</tt>." );
|
||||
ok = false;
|
||||
}
|
||||
|
||||
|
@@ -36,7 +36,7 @@ static const int CORNER_RADIUS = 2;
|
||||
static QStringList
|
||||
buildUnknownDisklabelTexts( Device* dev )
|
||||
{
|
||||
QStringList texts = { QObject::tr( "Unpartitioned space or unknown partition table", "@info" ),
|
||||
QStringList texts = { QObject::tr( "Unpartitioned space or unknown partition table" ),
|
||||
formatByteSize( dev->totalLogical() * dev->logicalSize() ) };
|
||||
return texts;
|
||||
}
|
||||
@@ -179,28 +179,28 @@ PartitionLabelsView::buildTexts( const QModelIndex& index ) const
|
||||
}
|
||||
else if ( mountPoint == "/home" )
|
||||
{
|
||||
firstLine = tr( "Home", "@label" );
|
||||
firstLine = tr( "Home" );
|
||||
}
|
||||
else if ( mountPoint == "/boot" )
|
||||
{
|
||||
firstLine = tr( "Boot", "@label" );
|
||||
firstLine = tr( "Boot" );
|
||||
}
|
||||
else if ( mountPoint.contains( "/efi" )
|
||||
&& index.data( PartitionModel::FileSystemTypeRole ).toInt() == FileSystem::Fat32 )
|
||||
{
|
||||
firstLine = tr( "EFI system", "@label" );
|
||||
firstLine = tr( "EFI system" );
|
||||
}
|
||||
else if ( index.data( PartitionModel::FileSystemTypeRole ).toInt() == FileSystem::LinuxSwap )
|
||||
{
|
||||
firstLine = tr( "Swap", "@label" );
|
||||
firstLine = tr( "Swap" );
|
||||
}
|
||||
else if ( !mountPoint.isEmpty() )
|
||||
{
|
||||
firstLine = tr( "New partition for %1", "@label" ).arg( mountPoint );
|
||||
firstLine = tr( "New partition for %1" ).arg( mountPoint );
|
||||
}
|
||||
else
|
||||
{
|
||||
firstLine = tr( "New partition", "@label" );
|
||||
firstLine = tr( "New partition" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -27,7 +27,7 @@ ResizeVolumeGroupDialog::ResizeVolumeGroupDialog( LvmDevice* device,
|
||||
: VolumeGroupBaseDialog( device->name(), device->physicalVolumes(), parent )
|
||||
, m_selectedPVs( selectedPVs )
|
||||
{
|
||||
setWindowTitle( tr( "Resize Volume Group", "@title" ) );
|
||||
setWindowTitle( tr( "Resize Volume Group" ) );
|
||||
|
||||
for ( int i = 0; i < pvList()->count(); i++ )
|
||||
{
|
||||
|
@@ -65,7 +65,7 @@ ScanningDialog::run( const QFuture< void >& future,
|
||||
void
|
||||
ScanningDialog::run( const QFuture< void >& future, const std::function< void() >& callback, QWidget* parent )
|
||||
{
|
||||
ScanningDialog::run( future, tr( "Scanning storage devices…", "@status" ), tr( "Partitioning…", "@status" ), callback, parent );
|
||||
ScanningDialog::run( future, tr( "Scanning storage devices..." ), tr( "Partitioning" ), callback, parent );
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -19,7 +19,7 @@ AutoMountManagementJob::AutoMountManagementJob( bool disable )
|
||||
QString
|
||||
AutoMountManagementJob::prettyName() const
|
||||
{
|
||||
return tr( "Managing auto-mount settings…", "@status" );
|
||||
return tr( "Manage auto-mount settings" );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -31,14 +31,15 @@ ChangeFilesystemLabelJob::ChangeFilesystemLabelJob( Device* device, Partition* p
|
||||
QString
|
||||
ChangeFilesystemLabelJob::prettyName() const
|
||||
{
|
||||
return tr( "Set filesystem label on %1", "@title" ).arg( partition()->partitionPath() );
|
||||
return tr( "Set filesystem label on %1." ).arg( partition()->partitionPath() );
|
||||
}
|
||||
|
||||
|
||||
QString
|
||||
ChangeFilesystemLabelJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Set filesystem label <strong>%1</strong> to partition <strong>%2</strong>", "@info" )
|
||||
return tr( "Set filesystem label <strong>%1</strong> to partition "
|
||||
"<strong>%2</strong>." )
|
||||
.arg( m_label )
|
||||
.arg( partition()->partitionPath() );
|
||||
}
|
||||
@@ -47,9 +48,7 @@ ChangeFilesystemLabelJob::prettyDescription() const
|
||||
QString
|
||||
ChangeFilesystemLabelJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Setting filesystem label <strong>%1</strong> to partition <strong>%2</strong>…", "@status" )
|
||||
.arg( m_label )
|
||||
.arg( partition()->partitionPath() );
|
||||
return prettyDescription();
|
||||
}
|
||||
|
||||
|
||||
@@ -69,7 +68,7 @@ ChangeFilesystemLabelJob::exec()
|
||||
return Calamares::JobResult::ok();
|
||||
}
|
||||
return Calamares::JobResult::error(
|
||||
tr( "The installer failed to update partition table on disk '%1'.", "@info" ).arg( m_device->name() ) );
|
||||
tr( "The installer failed to update partition table on disk '%1'." ).arg( m_device->name() ) );
|
||||
}
|
||||
|
||||
Report report( nullptr );
|
||||
@@ -81,6 +80,5 @@ ChangeFilesystemLabelJob::exec()
|
||||
return Calamares::JobResult::ok();
|
||||
}
|
||||
return Calamares::JobResult::error(
|
||||
tr( "The installer failed to update partition table on disk '%1'.", "@info" ).arg( m_device->name() ),
|
||||
report.toText() );
|
||||
tr( "The installer failed to update partition table on disk '%1'." ).arg( m_device->name() ), report.toText() );
|
||||
}
|
||||
|
@@ -368,13 +368,13 @@ ClearMountsJob::ClearMountsJob( Device* device )
|
||||
QString
|
||||
ClearMountsJob::prettyName() const
|
||||
{
|
||||
return tr( "Clear mounts for partitioning operations on %1", "@title" ).arg( m_deviceNode );
|
||||
return tr( "Clear mounts for partitioning operations on %1" ).arg( m_deviceNode );
|
||||
}
|
||||
|
||||
QString
|
||||
ClearMountsJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Clearing mounts for partitioning operations on %1…", "@status" ).arg( m_deviceNode );
|
||||
return tr( "Clearing mounts for partitioning operations on %1." ).arg( m_deviceNode );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -30,14 +30,14 @@ ClearTempMountsJob::ClearTempMountsJob()
|
||||
QString
|
||||
ClearTempMountsJob::prettyName() const
|
||||
{
|
||||
return tr( "Clearing all temporary mounts…", "@status" );
|
||||
return tr( "Clear all temporary mounts." );
|
||||
}
|
||||
|
||||
|
||||
QString
|
||||
ClearTempMountsJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Clearing all temporary mounts…", "@status" );
|
||||
return tr( "Clearing all temporary mounts." );
|
||||
}
|
||||
|
||||
|
||||
|
@@ -178,7 +178,7 @@ CreatePartitionJob::prettyName() const
|
||||
QString entries = prettyGptEntries( m_partition );
|
||||
if ( !entries.isEmpty() )
|
||||
{
|
||||
return tr( "Create new %1MiB partition on %3 (%2) with entries %4", "@title" )
|
||||
return tr( "Create new %1MiB partition on %3 (%2) with entries %4." )
|
||||
.arg( Calamares::BytesToMiB( m_partition->capacity() ) )
|
||||
.arg( m_device->name() )
|
||||
.arg( m_device->deviceNode() )
|
||||
@@ -186,14 +186,14 @@ CreatePartitionJob::prettyName() const
|
||||
}
|
||||
else
|
||||
{
|
||||
return tr( "Create new %1MiB partition on %3 (%2)", "@title" )
|
||||
return tr( "Create new %1MiB partition on %3 (%2)." )
|
||||
.arg( Calamares::BytesToMiB( m_partition->capacity() ) )
|
||||
.arg( m_device->name() )
|
||||
.arg( m_device->deviceNode() );
|
||||
}
|
||||
}
|
||||
|
||||
return tr( "Create new %2MiB partition on %4 (%3) with file system %1", "@title" )
|
||||
return tr( "Create new %2MiB partition on %4 (%3) with file system %1." )
|
||||
.arg( userVisibleFS( m_partition->fileSystem() ) )
|
||||
.arg( Calamares::BytesToMiB( m_partition->capacity() ) )
|
||||
.arg( m_device->name() )
|
||||
@@ -210,8 +210,7 @@ CreatePartitionJob::prettyDescription() const
|
||||
if ( !entries.isEmpty() )
|
||||
{
|
||||
return tr( "Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries "
|
||||
"<em>%4</em>",
|
||||
"@info" )
|
||||
"<em>%4</em>." )
|
||||
.arg( Calamares::BytesToMiB( m_partition->capacity() ) )
|
||||
.arg( m_device->name() )
|
||||
.arg( m_device->deviceNode() )
|
||||
@@ -219,7 +218,7 @@ CreatePartitionJob::prettyDescription() const
|
||||
}
|
||||
else
|
||||
{
|
||||
return tr( "Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2)", "@info" )
|
||||
return tr( "Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2)." )
|
||||
.arg( Calamares::BytesToMiB( m_partition->capacity() ) )
|
||||
.arg( m_device->name() )
|
||||
.arg( m_device->deviceNode() );
|
||||
@@ -227,8 +226,7 @@ CreatePartitionJob::prettyDescription() const
|
||||
}
|
||||
|
||||
return tr( "Create new <strong>%2MiB</strong> partition on <strong>%4</strong> "
|
||||
"(%3) with file system <strong>%1</strong>",
|
||||
"@info" )
|
||||
"(%3) with file system <strong>%1</strong>." )
|
||||
.arg( userVisibleFS( m_partition->fileSystem() ) )
|
||||
.arg( Calamares::BytesToMiB( m_partition->capacity() ) )
|
||||
.arg( m_device->name() )
|
||||
@@ -251,10 +249,10 @@ CreatePartitionJob::prettyStatusMessage() const
|
||||
type = userVisibleFS( m_partition->fileSystem() );
|
||||
}
|
||||
|
||||
return tr( "Creating new %1 partition on %2…", "@status" ).arg( type ).arg( m_device->deviceNode() );
|
||||
return tr( "Creating new %1 partition on %2." ).arg( type ).arg( m_device->deviceNode() );
|
||||
}
|
||||
|
||||
return tr( "Creating new %1 partition on %2…", "@status" )
|
||||
return tr( "Creating new %1 partition on %2." )
|
||||
.arg( userVisibleFS( m_partition->fileSystem() ) )
|
||||
.arg( m_device->deviceNode() );
|
||||
}
|
||||
@@ -271,7 +269,7 @@ CreatePartitionJob::exec()
|
||||
|
||||
return KPMHelpers::execute(
|
||||
NewOperation( *m_device, m_partition ),
|
||||
tr( "The installer failed to create partition on disk '%1'.", "@info" ).arg( m_device->name() ) );
|
||||
tr( "The installer failed to create partition on disk '%1'." ).arg( m_device->name() ) );
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -38,7 +38,7 @@ CreatePartitionTableJob::CreatePartitionTableJob( Device* device, PartitionTable
|
||||
QString
|
||||
CreatePartitionTableJob::prettyName() const
|
||||
{
|
||||
return tr( "Creating new %1 partition table on %2…", "@status" )
|
||||
return tr( "Create new %1 partition table on %2." )
|
||||
.arg( PartitionTable::tableTypeToName( m_type ) )
|
||||
.arg( m_device->deviceNode() );
|
||||
}
|
||||
@@ -46,7 +46,7 @@ CreatePartitionTableJob::prettyName() const
|
||||
QString
|
||||
CreatePartitionTableJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Creating new <strong>%1</strong> partition table on <strong>%2</strong> (%3)…", "@status" )
|
||||
return tr( "Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3)." )
|
||||
.arg( PartitionTable::tableTypeToName( m_type ).toUpper() )
|
||||
.arg( m_device->deviceNode() )
|
||||
.arg( m_device->name() );
|
||||
@@ -55,7 +55,7 @@ CreatePartitionTableJob::prettyDescription() const
|
||||
QString
|
||||
CreatePartitionTableJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Creating new %1 partition table on %2…", "@status" )
|
||||
return tr( "Creating new %1 partition table on %2." )
|
||||
.arg( PartitionTable::tableTypeToName( m_type ).toUpper() )
|
||||
.arg( m_device->deviceNode() );
|
||||
}
|
||||
|
@@ -29,19 +29,19 @@ CreateVolumeGroupJob::CreateVolumeGroupJob( Device*,
|
||||
QString
|
||||
CreateVolumeGroupJob::prettyName() const
|
||||
{
|
||||
return tr( "Creating new volume group named %1…", "@status" ).arg( m_vgName );
|
||||
return tr( "Create new volume group named %1." ).arg( m_vgName );
|
||||
}
|
||||
|
||||
QString
|
||||
CreateVolumeGroupJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Creating new volume group named <strong>%1</strong>…", "@status" ).arg( m_vgName );
|
||||
return tr( "Create new volume group named <strong>%1</strong>." ).arg( m_vgName );
|
||||
}
|
||||
|
||||
QString
|
||||
CreateVolumeGroupJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Creating new volume group named %1…", "@status" ).arg( m_vgName );
|
||||
return tr( "Creating new volume group named %1." ).arg( m_vgName );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -23,19 +23,19 @@ DeactivateVolumeGroupJob::DeactivateVolumeGroupJob( LvmDevice* device )
|
||||
QString
|
||||
DeactivateVolumeGroupJob::prettyName() const
|
||||
{
|
||||
return tr( "Deactivating volume group named %1…", "@status" ).arg( m_device->name() );
|
||||
return tr( "Deactivate volume group named %1." ).arg( m_device->name() );
|
||||
}
|
||||
|
||||
QString
|
||||
DeactivateVolumeGroupJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Deactivating volume group named <strong>%1</strong>…", "@status" ).arg( m_device->name() );
|
||||
return tr( "Deactivate volume group named <strong>%1</strong>." ).arg( m_device->name() );
|
||||
}
|
||||
|
||||
QString
|
||||
DeactivateVolumeGroupJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Deactivating volume group named %1…", "@status" ).arg( m_device->name() );
|
||||
return tr( "Deactivate volume group named %1." ).arg( m_device->name() );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -70,19 +70,19 @@ DeletePartitionJob::DeletePartitionJob( Device* device, Partition* partition )
|
||||
QString
|
||||
DeletePartitionJob::prettyName() const
|
||||
{
|
||||
return tr( "Deleting partition %1…", "@status" ).arg( m_partition->partitionPath() );
|
||||
return tr( "Delete partition %1." ).arg( m_partition->partitionPath() );
|
||||
}
|
||||
|
||||
QString
|
||||
DeletePartitionJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Deleting partition <strong>%1</strong>…", "@status" ).arg( m_partition->partitionPath() );
|
||||
return tr( "Delete partition <strong>%1</strong>." ).arg( m_partition->partitionPath() );
|
||||
}
|
||||
|
||||
QString
|
||||
DeletePartitionJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Deleting partition %1…", "@status" ).arg( m_partition->partitionPath() );
|
||||
return tr( "Deleting partition %1." ).arg( m_partition->partitionPath() );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -176,7 +176,7 @@ FillGlobalStorageJob::FillGlobalStorageJob( const Config*, QList< Device* > devi
|
||||
QString
|
||||
FillGlobalStorageJob::prettyName() const
|
||||
{
|
||||
return tr( "Set partition information", "@title" );
|
||||
return tr( "Set partition information" );
|
||||
}
|
||||
|
||||
|
||||
@@ -206,15 +206,14 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
if ( !features.isEmpty() )
|
||||
{
|
||||
lines.append( tr( "Install %1 on <strong>new</strong> %2 system partition "
|
||||
"with features <em>%3</em>",
|
||||
"@info" )
|
||||
"with features <em>%3</em>" )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() )
|
||||
.arg( fsType )
|
||||
.arg( features ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
lines.append( tr( "Install %1 on <strong>new</strong> %2 system partition", "@info" )
|
||||
lines.append( tr( "Install %1 on <strong>new</strong> %2 system partition." )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() )
|
||||
.arg( fsType ) );
|
||||
}
|
||||
@@ -224,8 +223,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
if ( !features.isEmpty() )
|
||||
{
|
||||
lines.append( tr( "Set up <strong>new</strong> %2 partition with mount point "
|
||||
"<strong>%1</strong> and features <em>%3</em>",
|
||||
"@info" )
|
||||
"<strong>%1</strong> and features <em>%3</em>." )
|
||||
.arg( mountPoint )
|
||||
.arg( fsType )
|
||||
.arg( features ) );
|
||||
@@ -233,8 +231,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
else
|
||||
{
|
||||
lines.append( tr( "Set up <strong>new</strong> %2 partition with mount point "
|
||||
"<strong>%1</strong>%3",
|
||||
"@info" )
|
||||
"<strong>%1</strong>%3." )
|
||||
.arg( mountPoint )
|
||||
.arg( fsType )
|
||||
.arg( features ) );
|
||||
@@ -248,8 +245,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
if ( !features.isEmpty() )
|
||||
{
|
||||
lines.append( tr( "Install %2 on %3 system partition <strong>%1</strong>"
|
||||
" with features <em>%4</em>",
|
||||
"@info" )
|
||||
" with features <em>%4</em>." )
|
||||
.arg( path )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() )
|
||||
.arg( fsType )
|
||||
@@ -257,7 +253,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
}
|
||||
else
|
||||
{
|
||||
lines.append( tr( "Install %2 on %3 system partition <strong>%1</strong>", "@info" )
|
||||
lines.append( tr( "Install %2 on %3 system partition <strong>%1</strong>." )
|
||||
.arg( path )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() )
|
||||
.arg( fsType ) );
|
||||
@@ -268,8 +264,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
if ( !features.isEmpty() )
|
||||
{
|
||||
lines.append( tr( "Set up %3 partition <strong>%1</strong> with mount point "
|
||||
"<strong>%2</strong> and features <em>%4</em>",
|
||||
"@info" )
|
||||
"<strong>%2</strong> and features <em>%4</em>." )
|
||||
.arg( path )
|
||||
.arg( mountPoint )
|
||||
.arg( fsType )
|
||||
@@ -278,8 +273,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
else
|
||||
{
|
||||
lines.append( tr( "Set up %3 partition <strong>%1</strong> with mount point "
|
||||
"<strong>%2</strong>%4…",
|
||||
"@info" )
|
||||
"<strong>%2</strong>%4." )
|
||||
.arg( path )
|
||||
.arg( mountPoint )
|
||||
.arg( fsType )
|
||||
@@ -293,7 +287,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
QVariant bootloaderMap = createBootLoaderMap();
|
||||
if ( !m_bootLoaderPath.isEmpty() )
|
||||
{
|
||||
lines.append( tr( "Install boot loader on <strong>%1</strong>…", "@info" ).arg( m_bootLoaderPath ) );
|
||||
lines.append( tr( "Install boot loader on <strong>%1</strong>." ).arg( m_bootLoaderPath ) );
|
||||
}
|
||||
return lines.join( "<br/>" );
|
||||
}
|
||||
@@ -302,7 +296,7 @@ FillGlobalStorageJob::prettyDescription() const
|
||||
QString
|
||||
FillGlobalStorageJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Setting up mount points…", "@status" );
|
||||
return tr( "Setting up mount points." );
|
||||
}
|
||||
|
||||
|
||||
|
@@ -36,7 +36,7 @@ FormatPartitionJob::FormatPartitionJob( Device* device, Partition* partition )
|
||||
QString
|
||||
FormatPartitionJob::prettyName() const
|
||||
{
|
||||
return tr( "Format partition %1 (file system: %2, size: %3 MiB) on %4", "@title" )
|
||||
return tr( "Format partition %1 (file system: %2, size: %3 MiB) on %4." )
|
||||
.arg( m_partition->partitionPath() )
|
||||
.arg( userVisibleFS( m_partition->fileSystem() ) )
|
||||
.arg( m_partition->capacity() / 1024 / 1024 )
|
||||
@@ -47,8 +47,7 @@ QString
|
||||
FormatPartitionJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Format <strong>%3MiB</strong> partition <strong>%1</strong> with "
|
||||
"file system <strong>%2</strong>",
|
||||
"@info" )
|
||||
"file system <strong>%2</strong>." )
|
||||
.arg( m_partition->partitionPath() )
|
||||
.arg( userVisibleFS( m_partition->fileSystem() ) )
|
||||
.arg( m_partition->capacity() / 1024 / 1024 );
|
||||
@@ -61,7 +60,8 @@ FormatPartitionJob::prettyStatusMessage() const
|
||||
? m_partition->partitionPath()
|
||||
: tr( "%1 (%2)", "partition label %1 (device path %2)" )
|
||||
.arg( m_partition->label(), m_partition->partitionPath() );
|
||||
return tr( "Formatting partition %1 with file system %2…", "@status" )
|
||||
return tr( "Formatting partition %1 with "
|
||||
"file system %2." )
|
||||
.arg( partitionLabel, userVisibleFS( m_partition->fileSystem() ) );
|
||||
}
|
||||
|
||||
|
@@ -23,19 +23,19 @@ RemoveVolumeGroupJob::RemoveVolumeGroupJob( Device*, LvmDevice* device )
|
||||
QString
|
||||
RemoveVolumeGroupJob::prettyName() const
|
||||
{
|
||||
return tr( "Removing Volume Group named %1…", "@status" ).arg( m_device->name() );
|
||||
return tr( "Remove Volume Group named %1." ).arg( m_device->name() );
|
||||
}
|
||||
|
||||
QString
|
||||
RemoveVolumeGroupJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Removing Volume Group named <strong>%1</strong>…", "@status" ).arg( m_device->name() );
|
||||
return tr( "Remove Volume Group named <strong>%1</strong>." ).arg( m_device->name() );
|
||||
}
|
||||
|
||||
QString
|
||||
RemoveVolumeGroupJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Removing Volume Group named %1…", "@status" ).arg( m_device->name() );
|
||||
return tr( "Remove Volume Group named %1." ).arg( m_device->name() );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -36,13 +36,16 @@ ResizePartitionJob::ResizePartitionJob( Device* device, Partition* partition, qi
|
||||
QString
|
||||
ResizePartitionJob::prettyName() const
|
||||
{
|
||||
return tr( "Resize partition %1", "@title" ).arg( partition()->partitionPath() );
|
||||
// FIXME: Copy PM ResizeOperation code which generates a description of the
|
||||
// operation
|
||||
return tr( "Resize partition %1." ).arg( partition()->partitionPath() );
|
||||
}
|
||||
|
||||
QString
|
||||
ResizePartitionJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>", "@info" )
|
||||
return tr( "Resize <strong>%2MiB</strong> partition <strong>%1</strong> to "
|
||||
"<strong>%3MiB</strong>." )
|
||||
.arg( partition()->partitionPath() )
|
||||
.arg( ( BytesToMiB( m_oldLastSector - m_oldFirstSector + 1 ) * partition()->sectorSize() ) )
|
||||
.arg( ( BytesToMiB( m_newLastSector - m_newFirstSector + 1 ) * partition()->sectorSize() ) );
|
||||
@@ -51,7 +54,8 @@ ResizePartitionJob::prettyDescription() const
|
||||
QString
|
||||
ResizePartitionJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Resizing %2MiB partition %1 to %3MiB…", "@status" )
|
||||
return tr( "Resizing %2MiB partition %1 to "
|
||||
"%3MiB." )
|
||||
.arg( partition()->partitionPath() )
|
||||
.arg( ( BytesToMiB( m_oldLastSector - m_oldFirstSector + 1 ) * partition()->sectorSize() ) )
|
||||
.arg( ( BytesToMiB( m_newLastSector - m_newFirstSector + 1 ) * partition()->sectorSize() ) );
|
||||
|
@@ -25,7 +25,7 @@ ResizeVolumeGroupJob::ResizeVolumeGroupJob( Device*, LvmDevice* device, QVector<
|
||||
QString
|
||||
ResizeVolumeGroupJob::prettyName() const
|
||||
{
|
||||
return tr( "Resize volume group named %1 from %2 to %3", "@title" )
|
||||
return tr( "Resize volume group named %1 from %2 to %3." )
|
||||
.arg( m_device->name() )
|
||||
.arg( currentPartitions() )
|
||||
.arg( targetPartitions() );
|
||||
@@ -34,8 +34,7 @@ ResizeVolumeGroupJob::prettyName() const
|
||||
QString
|
||||
ResizeVolumeGroupJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>",
|
||||
"@info" )
|
||||
return tr( "Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>." )
|
||||
.arg( m_device->name() )
|
||||
.arg( currentPartitions() )
|
||||
.arg( targetPartitions() );
|
||||
@@ -44,7 +43,7 @@ ResizeVolumeGroupJob::prettyDescription() const
|
||||
QString
|
||||
ResizeVolumeGroupJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Resizing volume group named %1 from %2 to %3…", "@status" )
|
||||
return tr( "Resize volume group named %1 from %2 to %3." )
|
||||
.arg( m_device->name() )
|
||||
.arg( currentPartitions() )
|
||||
.arg( targetPartitions() );
|
||||
|
@@ -41,17 +41,17 @@ SetPartFlagsJob::prettyName() const
|
||||
{
|
||||
if ( !partition()->partitionPath().isEmpty() )
|
||||
{
|
||||
return tr( "Set flags on partition %1", "@title" ).arg( partition()->partitionPath() );
|
||||
return tr( "Set flags on partition %1." ).arg( partition()->partitionPath() );
|
||||
}
|
||||
|
||||
QString fsNameForUser = userVisibleFS( partition()->fileSystem() );
|
||||
if ( !fsNameForUser.isEmpty() )
|
||||
{
|
||||
return tr( "Set flags on %1MiB %2 partition", "@title" )
|
||||
return tr( "Set flags on %1MiB %2 partition." )
|
||||
.arg( BytesToMiB( partition()->capacity() ) )
|
||||
.arg( fsNameForUser );
|
||||
}
|
||||
return tr( "Set flags on new partition", "@title" );
|
||||
return tr( "Set flags on new partition." );
|
||||
}
|
||||
|
||||
QString
|
||||
@@ -62,22 +62,23 @@ SetPartFlagsJob::prettyDescription() const
|
||||
{
|
||||
if ( !partition()->partitionPath().isEmpty() )
|
||||
{
|
||||
return tr( "Clear flags on partition <strong>%1</strong>", "@info" ).arg( partition()->partitionPath() );
|
||||
return tr( "Clear flags on partition <strong>%1</strong>." ).arg( partition()->partitionPath() );
|
||||
}
|
||||
|
||||
QString fsNameForUser = userVisibleFS( partition()->fileSystem() );
|
||||
if ( !fsNameForUser.isEmpty() )
|
||||
{
|
||||
return tr( "Clear flags on %1MiB <strong>%2</strong> partition", "@info" )
|
||||
return tr( "Clear flags on %1MiB <strong>%2</strong> partition." )
|
||||
.arg( BytesToMiB( partition()->capacity() ) )
|
||||
.arg( fsNameForUser );
|
||||
}
|
||||
return tr( "Clear flags on new partition", "@info" );
|
||||
return tr( "Clear flags on new partition." );
|
||||
}
|
||||
|
||||
if ( !partition()->partitionPath().isEmpty() )
|
||||
{
|
||||
return tr( "Set flags on partition <strong>%1</strong> to <strong>%2</strong>", "@info" )
|
||||
return tr( "Flag partition <strong>%1</strong> as "
|
||||
"<strong>%2</strong>." )
|
||||
.arg( partition()->partitionPath() )
|
||||
.arg( flagsList.join( ", " ) );
|
||||
}
|
||||
@@ -85,13 +86,14 @@ SetPartFlagsJob::prettyDescription() const
|
||||
QString fsNameForUser = userVisibleFS( partition()->fileSystem() );
|
||||
if ( !fsNameForUser.isEmpty() )
|
||||
{
|
||||
return tr( "Set flags on %1MiB <strong>%2</strong> partition to <strong>%3</strong>", "@info" )
|
||||
return tr( "Flag %1MiB <strong>%2</strong> partition as "
|
||||
"<strong>%3</strong>." )
|
||||
.arg( BytesToMiB( partition()->capacity() ) )
|
||||
.arg( fsNameForUser )
|
||||
.arg( flagsList.join( ", " ) );
|
||||
}
|
||||
|
||||
return tr( "Set flags on new partition to <strong>%1</strong>", "@info" ).arg( flagsList.join( ", " ) );
|
||||
return tr( "Flag new partition as <strong>%1</strong>." ).arg( flagsList.join( ", " ) );
|
||||
}
|
||||
|
||||
QString
|
||||
@@ -102,24 +104,24 @@ SetPartFlagsJob::prettyStatusMessage() const
|
||||
{
|
||||
if ( !partition()->partitionPath().isEmpty() )
|
||||
{
|
||||
return tr( "Clearing flags on partition <strong>%1</strong>…", "@status" )
|
||||
.arg( partition()->partitionPath() );
|
||||
return tr( "Clearing flags on partition <strong>%1</strong>." ).arg( partition()->partitionPath() );
|
||||
}
|
||||
|
||||
QString fsNameForUser = userVisibleFS( partition()->fileSystem() );
|
||||
if ( !fsNameForUser.isEmpty() )
|
||||
{
|
||||
return tr( "Clearing flags on %1MiB <strong>%2</strong> partition…", "@status" )
|
||||
return tr( "Clearing flags on %1MiB <strong>%2</strong> partition." )
|
||||
.arg( BytesToMiB( partition()->capacity() ) )
|
||||
.arg( fsNameForUser );
|
||||
}
|
||||
|
||||
return tr( "Clearing flags on new partition…", "@status" );
|
||||
return tr( "Clearing flags on new partition." );
|
||||
}
|
||||
|
||||
if ( !partition()->partitionPath().isEmpty() )
|
||||
{
|
||||
return tr( "Setting flags <strong>%2</strong> on partition <strong>%1</strong>…", "@status" )
|
||||
return tr( "Setting flags <strong>%2</strong> on partition "
|
||||
"<strong>%1</strong>." )
|
||||
.arg( partition()->partitionPath() )
|
||||
.arg( flagsList.join( ", " ) );
|
||||
}
|
||||
@@ -127,13 +129,14 @@ SetPartFlagsJob::prettyStatusMessage() const
|
||||
QString fsNameForUser = userVisibleFS( partition()->fileSystem() );
|
||||
if ( !fsNameForUser.isEmpty() )
|
||||
{
|
||||
return tr( "Setting flags <strong>%3</strong> on %1MiB <strong>%2</strong> partition…", "@status" )
|
||||
return tr( "Setting flags <strong>%3</strong> on "
|
||||
"%1MiB <strong>%2</strong> partition." )
|
||||
.arg( BytesToMiB( partition()->capacity() ) )
|
||||
.arg( fsNameForUser )
|
||||
.arg( flagsList.join( ", " ) );
|
||||
}
|
||||
|
||||
return tr( "Setting flags <strong>%1</strong> on new partition…", "@status" ).arg( flagsList.join( ", " ) );
|
||||
return tr( "Setting flags <strong>%1</strong> on new partition." ).arg( flagsList.join( ", " ) );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -30,7 +30,7 @@ PlasmaLnfJob::~PlasmaLnfJob() {}
|
||||
QString
|
||||
PlasmaLnfJob::prettyName() const
|
||||
{
|
||||
return tr( "Applying Plasma Look-and-Feel…", "@status" );
|
||||
return tr( "Plasma Look-and-Feel Job" );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -40,7 +40,7 @@ PlasmaLnfViewStep::~PlasmaLnfViewStep()
|
||||
QString
|
||||
PlasmaLnfViewStep::prettyName() const
|
||||
{
|
||||
return tr( "Look-and-Feel", "@label" );
|
||||
return tr( "Look-and-Feel" );
|
||||
}
|
||||
|
||||
|
||||
|
@@ -53,7 +53,7 @@ PreserveFiles::~PreserveFiles() {}
|
||||
QString
|
||||
PreserveFiles::prettyName() const
|
||||
{
|
||||
return tr( "Saving files for later…", "@status" );
|
||||
return tr( "Saving files for later ..." );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -29,7 +29,7 @@ RemoveUserJob::~RemoveUserJob() {}
|
||||
QString
|
||||
RemoveUserJob::prettyName() const
|
||||
{
|
||||
return tr( "Removing live user from the target system…", "@status" );
|
||||
return tr( "Remove live user from target system" );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -35,7 +35,7 @@ ShellProcessJob::prettyName() const
|
||||
{
|
||||
return m_name->get();
|
||||
}
|
||||
return tr( "Running shell processes…", "@status" );
|
||||
return tr( "Shell Processes Job" );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -9,7 +9,6 @@ calamares_add_plugin(summary
|
||||
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
||||
SOURCES
|
||||
Config.cpp
|
||||
SummaryModel.cpp
|
||||
SummaryPage.cpp
|
||||
SummaryViewStep.cpp
|
||||
UI
|
||||
|
@@ -10,8 +10,6 @@
|
||||
|
||||
#include "Config.h"
|
||||
|
||||
#include "SummaryModel.h"
|
||||
|
||||
#include "Branding.h"
|
||||
#include "Settings.h"
|
||||
#include "ViewManager.h"
|
||||
@@ -20,6 +18,67 @@
|
||||
#include "utils/Retranslator.h"
|
||||
#include "viewpages/ExecutionViewStep.h"
|
||||
|
||||
SummaryModel::SummaryModel( QObject* parent )
|
||||
: QAbstractListModel( parent )
|
||||
{
|
||||
}
|
||||
|
||||
QHash< int, QByteArray >
|
||||
SummaryModel::roleNames() const
|
||||
{
|
||||
// Not including WidgetRole here because that wouldn't make sense
|
||||
// in a QML context which is where the roleNames are important.
|
||||
return { { TitleRole, "title" }, { MessageRole, "message" } };
|
||||
}
|
||||
|
||||
QVariant
|
||||
SummaryModel::data( const QModelIndex& index, int role ) const
|
||||
{
|
||||
if ( !index.isValid() )
|
||||
{
|
||||
return QVariant();
|
||||
}
|
||||
auto& item = m_summary.at( index.row() );
|
||||
switch ( role )
|
||||
{
|
||||
case TitleRole:
|
||||
return item.title;
|
||||
case MessageRole:
|
||||
return item.message;
|
||||
case WidgetRole:
|
||||
return item.widget ? QVariant::fromValue( item.widget ) : QVariant();
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
SummaryModel::rowCount( const QModelIndex& ) const
|
||||
{
|
||||
return m_summary.count();
|
||||
}
|
||||
|
||||
void
|
||||
SummaryModel::setSummaryList( const Calamares::ViewStepList& steps, bool withWidgets )
|
||||
{
|
||||
beginResetModel();
|
||||
m_summary.clear();
|
||||
|
||||
for ( Calamares::ViewStep* step : steps )
|
||||
{
|
||||
QString text = step->prettyStatus();
|
||||
QWidget* widget = withWidgets ? step->createSummaryWidget() : nullptr;
|
||||
|
||||
if ( text.isEmpty() && !widget )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
m_summary << StepSummary { step->prettyName(), text, widget };
|
||||
}
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
Config::Config( QObject* parent )
|
||||
: QObject( parent )
|
||||
, m_summary( new SummaryModel( this ) )
|
||||
@@ -32,7 +91,7 @@ Config::Config( QObject* parent )
|
||||
void
|
||||
Config::retranslate()
|
||||
{
|
||||
m_title = tr( "Summary", "@label" );
|
||||
m_title = tr( "Summary" );
|
||||
|
||||
if ( Calamares::Settings::instance()->isSetupMode() )
|
||||
{
|
||||
|
@@ -11,10 +11,60 @@
|
||||
#ifndef SUMMARY_CONFIG_H
|
||||
#define SUMMARY_CONFIG_H
|
||||
|
||||
#include "SummaryModel.h"
|
||||
|
||||
#include "viewpages/ViewStep.h"
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QObject>
|
||||
#include <QQmlParserStatus>
|
||||
|
||||
class Config;
|
||||
|
||||
/** @brief Data for one step
|
||||
*
|
||||
* A step generally has a text description, but **may** have a
|
||||
* QWidget. There is no ownership of the QWidget, that is assumed
|
||||
* to be handed off to some owning parent-widget.
|
||||
*/
|
||||
struct StepSummary
|
||||
{
|
||||
QString title;
|
||||
QString message;
|
||||
QWidget* widget = nullptr;
|
||||
};
|
||||
|
||||
class SummaryModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
friend class Config;
|
||||
|
||||
public:
|
||||
enum Roles : int
|
||||
{
|
||||
TitleRole = Qt::DisplayRole, // Name of the step
|
||||
MessageRole = Qt::UserRole, // String saying what it will do
|
||||
WidgetRole, // Pointer to widget
|
||||
};
|
||||
|
||||
explicit SummaryModel( QObject* parent = nullptr );
|
||||
int rowCount( const QModelIndex& = QModelIndex() ) const override;
|
||||
QVariant data( const QModelIndex& index, int role ) const override;
|
||||
|
||||
protected:
|
||||
QHash< int, QByteArray > roleNames() const override;
|
||||
|
||||
private:
|
||||
/** @brief Sets the model data from @p steps
|
||||
*
|
||||
* Replaces the list of summaries with summaries given by
|
||||
* the jobs and ViewSteps objects in @p steps. If @p withWidgets
|
||||
* is @c true, then also queries for widget summaries alongside
|
||||
* the text summaries for each step.
|
||||
*/
|
||||
void setSummaryList( const Calamares::ViewStepList& steps, bool withWidgets = false );
|
||||
|
||||
QVector< StepSummary > m_summary;
|
||||
};
|
||||
|
||||
class Config : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@@ -1,74 +0,0 @@
|
||||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2020, Camilo Higuita <milo.h@aol.com>
|
||||
* SPDX-FileCopyrightText: 2021 Anke Boersma <demm@kaosx.us>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "SummaryModel.h"
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
SummaryModel::SummaryModel( QObject* parent )
|
||||
: QAbstractListModel( parent )
|
||||
{
|
||||
}
|
||||
|
||||
QHash< int, QByteArray >
|
||||
SummaryModel::roleNames() const
|
||||
{
|
||||
// Not including WidgetRole here because that wouldn't make sense
|
||||
// in a QML context which is where the roleNames are important.
|
||||
return { { TitleRole, "title" }, { MessageRole, "message" } };
|
||||
}
|
||||
|
||||
QVariant
|
||||
SummaryModel::data( const QModelIndex& index, int role ) const
|
||||
{
|
||||
if ( !index.isValid() )
|
||||
{
|
||||
return QVariant();
|
||||
}
|
||||
auto& item = m_summary.at( index.row() );
|
||||
switch ( role )
|
||||
{
|
||||
case TitleRole:
|
||||
return item.title;
|
||||
case MessageRole:
|
||||
return item.message;
|
||||
case WidgetRole:
|
||||
return item.widget ? QVariant::fromValue( item.widget ) : QVariant();
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
SummaryModel::rowCount( const QModelIndex& ) const
|
||||
{
|
||||
return m_summary.count();
|
||||
}
|
||||
|
||||
void
|
||||
SummaryModel::setSummaryList( const Calamares::ViewStepList& steps, bool withWidgets )
|
||||
{
|
||||
beginResetModel();
|
||||
m_summary.clear();
|
||||
|
||||
for ( Calamares::ViewStep* step : steps )
|
||||
{
|
||||
QString text = step->prettyStatus();
|
||||
QWidget* widget = withWidgets ? step->createSummaryWidget() : nullptr;
|
||||
|
||||
if ( text.isEmpty() && !widget )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
m_summary << StepSummary { step->prettyName(), text, widget };
|
||||
}
|
||||
endResetModel();
|
||||
}
|
@@ -1,67 +0,0 @@
|
||||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2019-2020, Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-FileCopyrightText: 2020, Camilo Higuita <milo.h@aol.com>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef SUMMARY_SUMMARYMODEL_H
|
||||
#define SUMMARY_SUMMARYMODEL_H
|
||||
|
||||
#include "viewpages/ViewStep.h"
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QObject>
|
||||
|
||||
class Config;
|
||||
|
||||
/** @brief Data for one step
|
||||
*
|
||||
* A step generally has a text description, but **may** have a
|
||||
* QWidget. There is no ownership of the QWidget, that is assumed
|
||||
* to be handed off to some owning parent-widget.
|
||||
*/
|
||||
struct StepSummary
|
||||
{
|
||||
QString title;
|
||||
QString message;
|
||||
QWidget* widget = nullptr;
|
||||
};
|
||||
|
||||
class SummaryModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
friend class Config;
|
||||
|
||||
public:
|
||||
enum Roles : int
|
||||
{
|
||||
TitleRole = Qt::DisplayRole, // Name of the step
|
||||
MessageRole = Qt::UserRole, // String saying what it will do
|
||||
WidgetRole, // Pointer to widget
|
||||
};
|
||||
|
||||
explicit SummaryModel( QObject* parent = nullptr );
|
||||
int rowCount( const QModelIndex& = QModelIndex() ) const override;
|
||||
QVariant data( const QModelIndex& index, int role ) const override;
|
||||
|
||||
protected:
|
||||
QHash< int, QByteArray > roleNames() const override;
|
||||
|
||||
private:
|
||||
/** @brief Sets the model data from @p steps
|
||||
*
|
||||
* Replaces the list of summaries with summaries given by
|
||||
* the jobs and ViewSteps objects in @p steps. If @p withWidgets
|
||||
* is @c true, then also queries for widget summaries alongside
|
||||
* the text summaries for each step.
|
||||
*/
|
||||
void setSummaryList( const Calamares::ViewStepList& steps, bool withWidgets = false );
|
||||
|
||||
QVector< StepSummary > m_summary;
|
||||
};
|
||||
|
||||
#endif
|
@@ -17,7 +17,6 @@ calamares_add_plugin(summaryq
|
||||
SOURCES
|
||||
SummaryQmlViewStep.cpp
|
||||
${_summary}/Config.cpp
|
||||
${_summary}/SummaryModel.cpp
|
||||
UI
|
||||
RESOURCES
|
||||
summaryq${QT_VERSION_SUFFIX}.qrc
|
||||
|
@@ -103,7 +103,7 @@ TrackingInstallJob::prettyName() const
|
||||
QString
|
||||
TrackingInstallJob::prettyStatusMessage() const
|
||||
{
|
||||
return QCoreApplication::translate( "TrackingInstallJob", "Sending installation feedback…", "@status" );
|
||||
return QCoreApplication::translate( "TrackingInstallJob", "Sending installation feedback." );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
@@ -138,7 +138,7 @@ TrackingMachineUpdateManagerJob::prettyName() const
|
||||
QString
|
||||
TrackingMachineUpdateManagerJob::prettyStatusMessage() const
|
||||
{
|
||||
return QCoreApplication::translate( "TrackingMachineUpdateManagerJob", "Configuring machine feedback…", "@status" );
|
||||
return QCoreApplication::translate( "TrackingMachineUpdateManagerJob", "Configuring machine feedback." );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
@@ -195,7 +195,7 @@ TrackingKUserFeedbackJob::prettyName() const
|
||||
QString
|
||||
TrackingKUserFeedbackJob::prettyStatusMessage() const
|
||||
{
|
||||
return QCoreApplication::translate( "TrackingKUserFeedbackJob", "Configuring KDE user feedback…", "@status" );
|
||||
return QCoreApplication::translate( "TrackingKUserFeedbackJob", "Configuring KDE user feedback." );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -46,7 +46,7 @@ TrackingViewStep::~TrackingViewStep()
|
||||
QString
|
||||
TrackingViewStep::prettyName() const
|
||||
{
|
||||
return tr( "Feedback", "@title" );
|
||||
return tr( "Feedback" );
|
||||
}
|
||||
|
||||
|
||||
|
@@ -36,7 +36,7 @@ UmountJob::~UmountJob() {}
|
||||
QString
|
||||
UmountJob::prettyName() const
|
||||
{
|
||||
return tr( "Unmounting file systems…", "@status" );
|
||||
return tr( "Unmount file systems." );
|
||||
}
|
||||
|
||||
static Calamares::JobResult
|
||||
|
@@ -36,13 +36,13 @@ CreateUserJob::prettyName() const
|
||||
QString
|
||||
CreateUserJob::prettyDescription() const
|
||||
{
|
||||
return tr( "Create user <strong>%1</strong>" ).arg( m_config->loginName() );
|
||||
return tr( "Create user <strong>%1</strong>." ).arg( m_config->loginName() );
|
||||
}
|
||||
|
||||
QString
|
||||
CreateUserJob::prettyStatusMessage() const
|
||||
{
|
||||
return m_status.isEmpty() ? tr( "Creating user %1…", "@status" ).arg( m_config->loginName() ) : m_status;
|
||||
return m_status.isEmpty() ? tr( "Creating user %1" ).arg( m_config->loginName() ) : m_status;
|
||||
}
|
||||
|
||||
static Calamares::JobResult
|
||||
@@ -117,7 +117,7 @@ CreateUserJob::exec()
|
||||
// This GS setting comes from the **partitioning** module.
|
||||
if ( reuseHome )
|
||||
{
|
||||
m_status = tr( "Preserving home directory…", "@status" );
|
||||
m_status = tr( "Preserving home directory" );
|
||||
emit progress( 0.2 );
|
||||
QString shellFriendlyHome = "/home/" + m_config->loginName();
|
||||
QDir existingHome( destDir.absolutePath() + shellFriendlyHome );
|
||||
@@ -134,7 +134,7 @@ CreateUserJob::exec()
|
||||
|
||||
cDebug() << "[CREATEUSER]: creating user";
|
||||
|
||||
m_status = tr( "Creating user %1…", "@status" ).arg( m_config->loginName() );
|
||||
m_status = tr( "Creating user %1" ).arg( m_config->loginName() );
|
||||
emit progress( 0.5 );
|
||||
auto useraddResult = createUser( m_config->loginName(), m_config->fullName(), m_config->userShell() );
|
||||
if ( !useraddResult )
|
||||
@@ -142,7 +142,7 @@ CreateUserJob::exec()
|
||||
return useraddResult;
|
||||
}
|
||||
|
||||
m_status = tr( "Configuring user %1", "@status" ).arg( m_config->loginName() );
|
||||
m_status = tr( "Configuring user %1" ).arg( m_config->loginName() );
|
||||
emit progress( 0.8 );
|
||||
auto usergroupsResult = setUserGroups( m_config->loginName(), m_config->groupsForThisUser() );
|
||||
if ( !usergroupsResult )
|
||||
@@ -150,7 +150,7 @@ CreateUserJob::exec()
|
||||
return usergroupsResult;
|
||||
}
|
||||
|
||||
m_status = tr( "Setting file permissions…", "@status" );
|
||||
m_status = tr( "Setting file permissions" );
|
||||
emit progress( 0.9 );
|
||||
QString userGroup = QString( "%1:%2" ).arg( m_config->loginName() ).arg( m_config->loginName() );
|
||||
QString homeDir = QString( "/home/%1" ).arg( m_config->loginName() );
|
||||
|
@@ -31,7 +31,7 @@ SetupSudoJob::SetupSudoJob( const QString& group, Config::SudoStyle style )
|
||||
QString
|
||||
SetupSudoJob::prettyName() const
|
||||
{
|
||||
return tr( "Configuring <pre>sudo</pre> users…", "@status" );
|
||||
return tr( "Configure <pre>sudo</pre> users." );
|
||||
}
|
||||
|
||||
static QString
|
||||
@@ -178,7 +178,7 @@ SetupGroupsJob::SetupGroupsJob( const Config* config )
|
||||
QString
|
||||
SetupGroupsJob::prettyName() const
|
||||
{
|
||||
return tr( "Preparing groups…", "@status" );
|
||||
return tr( "Preparing groups." );
|
||||
}
|
||||
|
||||
Calamares::JobResult
|
||||
|
@@ -45,7 +45,7 @@ SetHostNameJob::prettyDescription() const
|
||||
QString
|
||||
SetHostNameJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Setting hostname %1…", "@status" ).arg( m_config->hostname() );
|
||||
return tr( "Setting hostname %1." ).arg( m_config->hostname() );
|
||||
}
|
||||
|
||||
STATICTEST bool
|
||||
|
@@ -41,7 +41,7 @@ SetPasswordJob::prettyName() const
|
||||
QString
|
||||
SetPasswordJob::prettyStatusMessage() const
|
||||
{
|
||||
return tr( "Setting password for user %1…", "@status" ).arg( m_userName );
|
||||
return tr( "Setting password for user %1." ).arg( m_userName );
|
||||
}
|
||||
|
||||
#ifndef HAVE_CRYPT_GENSALT
|
||||
|
@@ -59,7 +59,7 @@ Kirigami.ScrollablePage {
|
||||
id: _userNameField
|
||||
width: parent.width
|
||||
enabled: config.isEditable("fullName")
|
||||
placeholderText: qsTr("Your full name")
|
||||
placeholderText: qsTr("Your Full Name")
|
||||
text: config.fullName
|
||||
onTextChanged: config.setFullName(text)
|
||||
|
||||
@@ -83,7 +83,7 @@ Kirigami.ScrollablePage {
|
||||
id: _userLoginField
|
||||
width: parent.width
|
||||
enabled: config.isEditable("loginName")
|
||||
placeholderText: qsTr("Login name")
|
||||
placeholderText: qsTr("Login Name")
|
||||
text: config.loginName
|
||||
validator: RegularExpressionValidator { regularExpression: /[a-z_][a-z0-9_-]*[$]?$/ }
|
||||
|
||||
@@ -149,7 +149,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _hostName
|
||||
width: parent.width
|
||||
placeholderText: qsTr("Computer name")
|
||||
placeholderText: qsTr("Computer Name")
|
||||
text: config.hostname
|
||||
validator: RegularExpressionValidator { regularExpression: /[a-zA-Z0-9][-a-zA-Z0-9_]+/ }
|
||||
|
||||
@@ -234,7 +234,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _verificationPasswordField
|
||||
width: parent.width / 2 - 10
|
||||
placeholderText: qsTr("Repeat password")
|
||||
placeholderText: qsTr("Repeat Password")
|
||||
text: config.userPasswordSecondary
|
||||
|
||||
onTextChanged: _passwordField.text === _verificationPasswordField.text
|
||||
@@ -324,7 +324,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _rootPasswordField
|
||||
width: parent.width / 2 -10
|
||||
placeholderText: qsTr("Root password")
|
||||
placeholderText: qsTr("Root Password")
|
||||
text: config.rootPassword
|
||||
|
||||
onTextChanged: config.setRootPassword(text)
|
||||
@@ -342,7 +342,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _verificationRootPasswordField
|
||||
width: parent.width / 2 -10
|
||||
placeholderText: qsTr("Repeat root password")
|
||||
placeholderText: qsTr("Repeat Root Password")
|
||||
text: config.rootPasswordSecondary
|
||||
|
||||
onTextChanged: _rootPasswordField.text === _verificationRootPasswordField.text
|
||||
|
@@ -60,7 +60,7 @@ Kirigami.ScrollablePage {
|
||||
id: _userNameField
|
||||
width: parent.width
|
||||
enabled: config.isEditable("fullName")
|
||||
placeholderText: qsTr("Your full name")
|
||||
placeholderText: qsTr("Your Full Name")
|
||||
text: config.fullName
|
||||
onTextChanged: config.setFullName(text)
|
||||
|
||||
@@ -84,7 +84,7 @@ Kirigami.ScrollablePage {
|
||||
id: _userLoginField
|
||||
width: parent.width
|
||||
enabled: config.isEditable("loginName")
|
||||
placeholderText: qsTr("Login name")
|
||||
placeholderText: qsTr("Login Name")
|
||||
text: config.loginName
|
||||
validator: RegularExpressionValidator { regularExpression: /[a-z_][a-z0-9_-]*[$]?$/ }
|
||||
|
||||
@@ -150,7 +150,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _hostName
|
||||
width: parent.width
|
||||
placeholderText: qsTr("Computer name")
|
||||
placeholderText: qsTr("Computer Name")
|
||||
text: config.hostname
|
||||
validator: RegularExpressionValidator { regularExpression: /[a-zA-Z0-9][-a-zA-Z0-9_]+/ }
|
||||
|
||||
@@ -235,7 +235,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _verificationPasswordField
|
||||
width: parent.width / 2 - 10
|
||||
placeholderText: qsTr("Repeat password")
|
||||
placeholderText: qsTr("Repeat Password")
|
||||
text: config.userPasswordSecondary
|
||||
|
||||
onTextChanged: _passwordField.text === _verificationPasswordField.text
|
||||
@@ -325,7 +325,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _rootPasswordField
|
||||
width: parent.width / 2 -10
|
||||
placeholderText: qsTr("Root password")
|
||||
placeholderText: qsTr("Root Password")
|
||||
text: config.rootPassword
|
||||
|
||||
onTextChanged: config.setRootPassword(text)
|
||||
@@ -343,7 +343,7 @@ Kirigami.ScrollablePage {
|
||||
TextField {
|
||||
id: _verificationRootPasswordField
|
||||
width: parent.width / 2 -10
|
||||
placeholderText: qsTr("Repeat root password")
|
||||
placeholderText: qsTr("Repeat Root Password")
|
||||
text: config.rootPasswordSecondary
|
||||
|
||||
onTextChanged: _rootPasswordField.text === _verificationRootPasswordField.text
|
||||
|
@@ -209,7 +209,7 @@ WelcomePage::retranslate()
|
||||
|
||||
ui->mainText->setText( message.arg( Calamares::Branding::instance()->versionedName() ) );
|
||||
ui->retranslateUi( this );
|
||||
ui->supportButton->setText( tr( "%1 Support", "@action" ).arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
ui->supportButton->setText( tr( "%1 support" ).arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -43,7 +43,7 @@ WelcomeViewStep::~WelcomeViewStep()
|
||||
QString
|
||||
WelcomeViewStep::prettyName() const
|
||||
{
|
||||
return tr( "Welcome", "@title" );
|
||||
return tr( "Welcome" );
|
||||
}
|
||||
|
||||
|
||||
|
@@ -37,7 +37,7 @@ WelcomeQmlViewStep::WelcomeQmlViewStep( QObject* parent )
|
||||
QString
|
||||
WelcomeQmlViewStep::prettyName() const
|
||||
{
|
||||
return tr( "Welcome", "@title" );
|
||||
return tr( "Welcome" );
|
||||
}
|
||||
|
||||
bool
|
||||
|
@@ -77,7 +77,7 @@ Page
|
||||
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Known Issues")
|
||||
text: qsTr("Known issues")
|
||||
icon.name: "tools-report-bug"
|
||||
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||||
Kirigami.Theme.textColor: Kirigami.Theme.textColor
|
||||
@@ -88,7 +88,7 @@ Page
|
||||
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Release Notes")
|
||||
text: qsTr("Release notes")
|
||||
icon.name: "folder-text"
|
||||
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||||
Kirigami.Theme.textColor: Kirigami.Theme.textColor
|
||||
|
@@ -77,7 +77,7 @@ Page
|
||||
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Known Issues")
|
||||
text: qsTr("Known issues")
|
||||
icon.name: "tools-report-bug"
|
||||
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||||
Kirigami.Theme.textColor: Kirigami.Theme.textColor
|
||||
@@ -88,7 +88,7 @@ Page
|
||||
|
||||
Button {
|
||||
Layout.fillWidth: true
|
||||
text: qsTr("Release Notes")
|
||||
text: qsTr("Release notes")
|
||||
icon.name: "folder-text"
|
||||
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
|
||||
Kirigami.Theme.textColor: Kirigami.Theme.textColor
|
||||
|
@@ -99,7 +99,7 @@ ZfsJob::~ZfsJob() {}
|
||||
QString
|
||||
ZfsJob::prettyName() const
|
||||
{
|
||||
return tr( "Creating ZFS pools and datasets…", "@status" );
|
||||
return tr( "Create ZFS pools and datasets" );
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user