Merge branch 'master' of https://github.com/calamares/calamares into development
This commit is contained in:
commit
b2533793c7
20
CHANGES
20
CHANGES
@ -3,6 +3,26 @@ contributors are listed. Note that Calamares does not have a historical
|
|||||||
changelog -- this log starts with version 3.2.0. The release notes on the
|
changelog -- this log starts with version 3.2.0. The release notes on the
|
||||||
website will have to do for older versions.
|
website will have to do for older versions.
|
||||||
|
|
||||||
|
# 3.2.10 (unreleased) #
|
||||||
|
|
||||||
|
This release contains contributions from (alphabetically by first name):
|
||||||
|
|
||||||
|
## Core ##
|
||||||
|
|
||||||
|
- With this release, option *WITH_PYTHONQT* changes default to **off**.
|
||||||
|
There does not seem to be any serious use of the PythonQt API and
|
||||||
|
the UI opportunities it offers, so begin the process of deprecating
|
||||||
|
and removing that. Sometime in the future, QML pages will fill the
|
||||||
|
gap for easily-prototyped-yet-slick UI elements.
|
||||||
|
- A crash when no *finished* page (or rather, no page at all) is
|
||||||
|
configured after the last *exec* section of the sequence has been
|
||||||
|
solved. The *finished* page can be left out (but then you don't get
|
||||||
|
the restart-now functionality).
|
||||||
|
|
||||||
|
## Modules ##
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 3.2.9 (2019-06-03) #
|
# 3.2.9 (2019-06-03) #
|
||||||
|
|
||||||
This release contains contributions from (alphabetically by first name):
|
This release contains contributions from (alphabetically by first name):
|
||||||
|
@ -37,10 +37,10 @@
|
|||||||
|
|
||||||
cmake_minimum_required( VERSION 3.2 FATAL_ERROR )
|
cmake_minimum_required( VERSION 3.2 FATAL_ERROR )
|
||||||
project( CALAMARES
|
project( CALAMARES
|
||||||
VERSION 3.2.9
|
VERSION 3.2.10
|
||||||
LANGUAGES C CXX )
|
LANGUAGES C CXX )
|
||||||
|
|
||||||
set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development
|
set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development
|
||||||
|
|
||||||
### OPTIONS
|
### OPTIONS
|
||||||
#
|
#
|
||||||
@ -48,7 +48,7 @@ option( INSTALL_CONFIG "Install configuration files" OFF )
|
|||||||
option( INSTALL_POLKIT "Install Polkit configuration" ON )
|
option( INSTALL_POLKIT "Install Polkit configuration" ON )
|
||||||
option( BUILD_TESTING "Build the testing tree." ON )
|
option( BUILD_TESTING "Build the testing tree." ON )
|
||||||
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
|
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
|
||||||
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." ON )
|
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." OFF )
|
||||||
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
|
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
|
||||||
|
|
||||||
|
|
||||||
|
@ -854,17 +854,17 @@ El instalador terminará y se perderán todos los cambios.</translation>
|
|||||||
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="34"/>
|
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="34"/>
|
||||||
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="48"/>
|
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="48"/>
|
||||||
<source>Deactivate volume group named %1.</source>
|
<source>Deactivate volume group named %1.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Desactivar el grupo de volúmenes llamado%1.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="41"/>
|
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="41"/>
|
||||||
<source>Deactivate volume group named <strong>%1</strong>.</source>
|
<source>Deactivate volume group named <strong>%1</strong>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Desactivar el grupo de volúmenes llamado<strong>% 1</strong>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="61"/>
|
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="61"/>
|
||||||
<source>The installer failed to deactivate a volume group named %1.</source>
|
<source>The installer failed to deactivate a volume group named %1.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>El instalador no pudo desactivar un grupo de volúmenes llamado%1.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -1098,7 +1098,7 @@ El instalador terminará y se perderán todos los cambios.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
|
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
|
||||||
<source><Restart checkbox tooltip></source>
|
<source><Restart checkbox tooltip></source>
|
||||||
<translation type="unfinished"/>
|
<translation><Restart checkbox tooltip></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
|
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
|
||||||
@ -1108,12 +1108,12 @@ El instalador terminará y se perderán todos los cambios.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="54"/>
|
<location filename="../src/modules/finished/FinishedPage.cpp" line="54"/>
|
||||||
<source><h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system.</source>
|
<source><h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system.</source>
|
||||||
<translation type="unfinished"/>
|
<translation><h1>Todo listo.</h1><br/>% 1 se ha configurado en su computadora. <br/>Ahora puede comenzar a usar su nuevo sistema.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="58"/>
|
<location filename="../src/modules/finished/FinishedPage.cpp" line="58"/>
|
||||||
<source><html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the setup program.</p></body></html></source>
|
<source><html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the setup program.</p></body></html></source>
|
||||||
<translation type="unfinished"/>
|
<translation><html><head/><body><p>Cuando esta casilla está marcada, su sistema se reiniciará inmediatamente cuando haga clic en <span style="font-style:italic;">Listo</span> o cierre el programa de instalación.</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="66"/>
|
<location filename="../src/modules/finished/FinishedPage.cpp" line="66"/>
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="24"/>
|
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="24"/>
|
||||||
<source>GlobalStorage</source>
|
<source>GlobalStorage</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Globaali-tallennus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="34"/>
|
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="34"/>
|
||||||
@ -1392,63 +1392,63 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="122"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="122"/>
|
||||||
<source><strong>%1 driver</strong><br/>by %2</source>
|
<source><strong>%1 driver</strong><br/>by %2</source>
|
||||||
<extracomment>%1 is an untranslatable product name, example: Creative Audigy driver</extracomment>
|
<extracomment>%1 is an untranslatable product name, example: Creative Audigy driver</extracomment>
|
||||||
<translation type="unfinished"/>
|
<translation><strong>%1 ajuri</strong><br/>- %2</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="129"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="129"/>
|
||||||
<source><strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font></source>
|
<source><strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font></source>
|
||||||
<extracomment>%1 is usually a vendor name, example: Nvidia graphics driver</extracomment>
|
<extracomment>%1 is usually a vendor name, example: Nvidia graphics driver</extracomment>
|
||||||
<translation type="unfinished"/>
|
<translation><strong>%1 näytönohjaimet</strong><br/><font color="Grey">- %2</font></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="135"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="135"/>
|
||||||
<source><strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font></source>
|
<source><strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font></source>
|
||||||
<translation type="unfinished"/>
|
<translation><strong>%1 selaimen laajennus</strong><br/><font color="Grey">- %2</font></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="141"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="141"/>
|
||||||
<source><strong>%1 codec</strong><br/><font color="Grey">by %2</font></source>
|
<source><strong>%1 codec</strong><br/><font color="Grey">by %2</font></source>
|
||||||
<translation type="unfinished"/>
|
<translation><strong>%1 kodekki</strong><br/><font color="Grey">- %2</font></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="147"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="147"/>
|
||||||
<source><strong>%1 package</strong><br/><font color="Grey">by %2</font></source>
|
<source><strong>%1 package</strong><br/><font color="Grey">by %2</font></source>
|
||||||
<translation type="unfinished"/>
|
<translation><strong>%1 paketti</strong><br/><font color="Grey">- %2</font></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="153"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="153"/>
|
||||||
<source><strong>%1</strong><br/><font color="Grey">by %2</font></source>
|
<source><strong>%1</strong><br/><font color="Grey">by %2</font></source>
|
||||||
<translation type="unfinished"/>
|
<translation><strong>%1</strong><br/><font color="Grey">- %2</font></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="191"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="191"/>
|
||||||
<source>Shows the complete license text</source>
|
<source>Shows the complete license text</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Näyttää täydellisen lisenssin tekstin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="192"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="192"/>
|
||||||
<source>Hide license text</source>
|
<source>Hide license text</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Piilota lisenssin teksti</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="196"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="196"/>
|
||||||
<source>Show license agreement</source>
|
<source>Show license agreement</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Näytä lisenssisopimus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="197"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="197"/>
|
||||||
<source>Hide license agreement</source>
|
<source>Hide license agreement</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Piilota lisenssisopimus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="201"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="201"/>
|
||||||
<source>Opens the license agreement in a browser window.</source>
|
<source>Opens the license agreement in a browser window.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Avaa lisenssisopimus selaimessa.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/license/LicenseWidget.cpp" line="202"/>
|
<location filename="../src/modules/license/LicenseWidget.cpp" line="202"/>
|
||||||
<source><a href="%1">View license agreement</a></source>
|
<source><a href="%1">View license agreement</a></source>
|
||||||
<translation type="unfinished"/>
|
<translation><a href="%1">Näytä lisenssisopimus</a></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -1456,12 +1456,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/locale/LocalePage.cpp" line="396"/>
|
<location filename="../src/modules/locale/LocalePage.cpp" line="396"/>
|
||||||
<source>The system language will be set to %1.</source>
|
<source>The system language will be set to %1.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Järjestelmän kielen asetuksena on %1.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/locale/LocalePage.cpp" line="397"/>
|
<location filename="../src/modules/locale/LocalePage.cpp" line="397"/>
|
||||||
<source>The numbers and dates locale will be set to %1.</source>
|
<source>The numbers and dates locale will be set to %1.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Numerot ja päivämäärät, paikallinen asetus on %1.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/locale/LocalePage.cpp" line="219"/>
|
<location filename="../src/modules/locale/LocalePage.cpp" line="219"/>
|
||||||
@ -1513,12 +1513,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="84"/>
|
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="84"/>
|
||||||
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
|
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Verkkoasennus. (Ei käytössä: Pakettiluetteloita ei voi hakea, tarkista verkkoyhteys)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="94"/>
|
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="94"/>
|
||||||
<source>Network Installation. (Disabled: Received invalid groups data)</source>
|
<source>Network Installation. (Disabled: Received invalid groups data)</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Verkkoasennus. (Ei käytössä: Vastaanotettiin virheellisiä ryhmän tietoja)</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -1534,17 +1534,17 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/oemid/OEMPage.ui" line="28"/>
|
<location filename="../src/modules/oemid/OEMPage.ui" line="28"/>
|
||||||
<source>Ba&tch:</source>
|
<source>Ba&tch:</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Ba&tch:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/oemid/OEMPage.ui" line="38"/>
|
<location filename="../src/modules/oemid/OEMPage.ui" line="38"/>
|
||||||
<source><html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html></source>
|
<source><html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html></source>
|
||||||
<translation type="unfinished"/>
|
<translation><html><head/><body><p>Syötä erän tunniste tähän. Tämä tallennetaan kohdejärjestelmään.</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/oemid/OEMPage.ui" line="48"/>
|
<location filename="../src/modules/oemid/OEMPage.ui" line="48"/>
|
||||||
<source><html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html></source>
|
<source><html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html></source>
|
||||||
<translation type="unfinished"/>
|
<translation><html><head/><body><h1>OEM asetukset</h1><p>Calamares käyttää OEM-asetuksia määritettäessä kohdejärjestelmää.</p></body></html></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -1557,7 +1557,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/oemid/OEMViewStep.cpp" line="120"/>
|
<location filename="../src/modules/oemid/OEMViewStep.cpp" line="120"/>
|
||||||
<source>Set the OEM Batch Identifier to <code>%1</code>.</source>
|
<source>Set the OEM Batch Identifier to <code>%1</code>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Aseta OEM valmistajan erän tunnus <code>%1</code>.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -1580,92 +1580,92 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
|
||||||
<source>Memory allocation error when setting '%1'</source>
|
<source>Memory allocation error when setting '%1'</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Muistin varausvirhe asetettaessa '%1'</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
|
||||||
<source>Memory allocation error</source>
|
<source>Memory allocation error</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Muistin varausvirhe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="182"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="182"/>
|
||||||
<source>The password is the same as the old one</source>
|
<source>The password is the same as the old one</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana on sama kuin vanha</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="184"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="184"/>
|
||||||
<source>The password is a palindrome</source>
|
<source>The password is a palindrome</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana on palindromi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="186"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="186"/>
|
||||||
<source>The password differs with case changes only</source>
|
<source>The password differs with case changes only</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana eroaa vain vähäisin muutoksin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="188"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="188"/>
|
||||||
<source>The password is too similar to the old one</source>
|
<source>The password is too similar to the old one</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana on liian samanlainen kuin vanha</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="190"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="190"/>
|
||||||
<source>The password contains the user name in some form</source>
|
<source>The password contains the user name in some form</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää jonkin käyttäjänimen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
|
||||||
<source>The password contains words from the real name of the user in some form</source>
|
<source>The password contains words from the real name of the user in some form</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää sanoja käyttäjän todellisesta nimestä jossain muodossa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="194"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="194"/>
|
||||||
<source>The password contains forbidden words in some form</source>
|
<source>The password contains forbidden words in some form</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää kiellettyjä sanoja</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="197"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="197"/>
|
||||||
<source>The password contains less than %1 digits</source>
|
<source>The password contains less than %1 digits</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää vähemmän kuin %1 numeroa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="198"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="198"/>
|
||||||
<source>The password contains too few digits</source>
|
<source>The password contains too few digits</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää liian vähän numeroita</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="201"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="201"/>
|
||||||
<source>The password contains less than %1 uppercase letters</source>
|
<source>The password contains less than %1 uppercase letters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää vähemmän kuin %1 isoja kirjaimia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
|
||||||
<source>The password contains too few uppercase letters</source>
|
<source>The password contains too few uppercase letters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää liian vähän isoja kirjaimia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
|
||||||
<source>The password contains less than %1 lowercase letters</source>
|
<source>The password contains less than %1 lowercase letters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää vähemmän kuin %1 pieniä kirjaimia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="206"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="206"/>
|
||||||
<source>The password contains too few lowercase letters</source>
|
<source>The password contains too few lowercase letters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää liian vähän pieniä kirjaimia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
|
||||||
<source>The password contains less than %1 non-alphanumeric characters</source>
|
<source>The password contains less than %1 non-alphanumeric characters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasanassa on vähemmän kuin %1 erikoismerkkiä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
|
||||||
<source>The password contains too few non-alphanumeric characters</source>
|
<source>The password contains too few non-alphanumeric characters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää liian vähän erikoismerkkejä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
|
||||||
<source>The password is shorter than %1 characters</source>
|
<source>The password is shorter than %1 characters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana on lyhyempi kuin %1 merkkiä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
|
||||||
@ -1675,47 +1675,47 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="216"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="216"/>
|
||||||
<source>The password is just rotated old one</source>
|
<source>The password is just rotated old one</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana on vain vanhan pyöritystä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="219"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="219"/>
|
||||||
<source>The password contains less than %1 character classes</source>
|
<source>The password contains less than %1 character classes</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää vähemmän kuin %1 merkkiluokkaa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
|
||||||
<source>The password does not contain enough character classes</source>
|
<source>The password does not contain enough character classes</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana ei sisällä tarpeeksi merkkiluokkia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="223"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="223"/>
|
||||||
<source>The password contains more than %1 same characters consecutively</source>
|
<source>The password contains more than %1 same characters consecutively</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää enemmän kuin %1 samaa merkkiä peräkkäin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
|
||||||
<source>The password contains too many same characters consecutively</source>
|
<source>The password contains too many same characters consecutively</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää liian monta samaa merkkiä peräkkäin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="227"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="227"/>
|
||||||
<source>The password contains more than %1 characters of the same class consecutively</source>
|
<source>The password contains more than %1 characters of the same class consecutively</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää enemmän kuin %1 merkkiä samasta luokasta peräkkäin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="228"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="228"/>
|
||||||
<source>The password contains too many characters of the same class consecutively</source>
|
<source>The password contains too many characters of the same class consecutively</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää liian monta saman luokan merkkiä peräkkäin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
|
||||||
<source>The password contains monotonic sequence longer than %1 characters</source>
|
<source>The password contains monotonic sequence longer than %1 characters</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana sisältää monotonisen merkkijonon, joka on pidempi kuin %1 merkkiä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="232"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="232"/>
|
||||||
<source>The password contains too long of a monotonic character sequence</source>
|
<source>The password contains too long of a monotonic character sequence</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasanassa on liian pitkä monotoninen merkkijono</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="234"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="234"/>
|
||||||
@ -1725,72 +1725,72 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="236"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="236"/>
|
||||||
<source>Cannot obtain random numbers from the RNG device</source>
|
<source>Cannot obtain random numbers from the RNG device</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Satunnaislukuja ei voi saada RNG-laitteesta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="238"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="238"/>
|
||||||
<source>Password generation failed - required entropy too low for settings</source>
|
<source>Password generation failed - required entropy too low for settings</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasanojen luonti epäonnistui - pakollinen vähimmäistaso liian alhainen asetuksia varten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
|
||||||
<source>The password fails the dictionary check - %1</source>
|
<source>The password fails the dictionary check - %1</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana epäonnistui sanaston tarkistuksessa -%1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="245"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="245"/>
|
||||||
<source>The password fails the dictionary check</source>
|
<source>The password fails the dictionary check</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Salasana epäonnistui sanaston tarkistuksessa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="249"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="249"/>
|
||||||
<source>Unknown setting - %1</source>
|
<source>Unknown setting - %1</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Tuntematon asetus - %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="253"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="253"/>
|
||||||
<source>Unknown setting</source>
|
<source>Unknown setting</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Tuntematon asetus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="257"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="257"/>
|
||||||
<source>Bad integer value of setting - %1</source>
|
<source>Bad integer value of setting - %1</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asetuksen virheellinen kokonaisluku - %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="261"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="261"/>
|
||||||
<source>Bad integer value</source>
|
<source>Bad integer value</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Virheellinen kokonaisluku</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>
|
||||||
<source>Setting %1 is not of integer type</source>
|
<source>Setting %1 is not of integer type</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asetus %1 ei ole kokonaisluku</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="269"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="269"/>
|
||||||
<source>Setting is not of integer type</source>
|
<source>Setting is not of integer type</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asetus ei ole kokonaisluku</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="273"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="273"/>
|
||||||
<source>Setting %1 is not of string type</source>
|
<source>Setting %1 is not of string type</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asetus %1 ei ole merkkijono</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="277"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="277"/>
|
||||||
<source>Setting is not of string type</source>
|
<source>Setting is not of string type</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asetus ei ole merkkijono</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="279"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="279"/>
|
||||||
<source>Opening the configuration file failed</source>
|
<source>Opening the configuration file failed</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Määritystiedoston avaaminen epäonnistui</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="281"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="281"/>
|
||||||
<source>The configuration file is malformed</source>
|
<source>The configuration file is malformed</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Määritystiedosto on väärin muotoiltu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/CheckPWQuality.cpp" line="283"/>
|
<location filename="../src/modules/users/CheckPWQuality.cpp" line="283"/>
|
||||||
@ -1861,12 +1861,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/page_usersetup.ui" line="466"/>
|
<location filename="../src/modules/users/page_usersetup.ui" line="466"/>
|
||||||
<source>Log in automatically without asking for the password.</source>
|
<source>Log in automatically without asking for the password.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Kirjaudu automaattisesti ilman salasanaa.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/page_usersetup.ui" line="473"/>
|
<location filename="../src/modules/users/page_usersetup.ui" line="473"/>
|
||||||
<source>Use the same password for the administrator account.</source>
|
<source>Use the same password for the administrator account.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Käytä pääkäyttäjän tilillä samaa salasanaa.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/page_usersetup.ui" line="496"/>
|
<location filename="../src/modules/users/page_usersetup.ui" line="496"/>
|
||||||
@ -1968,7 +1968,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="22"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="22"/>
|
||||||
<source>Storage de&vice:</source>
|
<source>Storage de&vice:</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Tallennus&laite:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="51"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="51"/>
|
||||||
@ -1983,7 +1983,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="107"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="107"/>
|
||||||
<source>Cre&ate</source>
|
<source>Cre&ate</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Luo&</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="114"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="114"/>
|
||||||
@ -1998,27 +1998,27 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="132"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="132"/>
|
||||||
<source>New Volume Group</source>
|
<source>New Volume Group</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Uusi aseman ryhmä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="139"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="139"/>
|
||||||
<source>Resize Volume Group</source>
|
<source>Resize Volume Group</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Muuta kokoa aseman-ryhmässä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="146"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="146"/>
|
||||||
<source>Deactivate Volume Group</source>
|
<source>Deactivate Volume Group</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Poista asemaryhmä käytöstä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="153"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="153"/>
|
||||||
<source>Remove Volume Group</source>
|
<source>Remove Volume Group</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Poista asemaryhmä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="180"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="180"/>
|
||||||
<source>I&nstall boot loader on:</source>
|
<source>I&nstall boot loader on:</source>
|
||||||
<translation type="unfinished"/>
|
<translation>A&senna käynnistyslatain:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="209"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="209"/>
|
||||||
@ -2028,12 +2028,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="238"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="238"/>
|
||||||
<source>Can not create new partition</source>
|
<source>Can not create new partition</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Ei voi luoda uutta osiota</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="239"/>
|
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="239"/>
|
||||||
<source>The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead.</source>
|
<source>The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 osio-taulukossa on jo %2 ensisijaista osiota, eikä sitä voi lisätä. Poista yksi ensisijainen osio ja lisää laajennettu osio.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -2518,7 +2518,7 @@ Ulostulo:
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/gui/ResizeVolumeGroupDialog.cpp" line="39"/>
|
<location filename="../src/modules/partition/gui/ResizeVolumeGroupDialog.cpp" line="39"/>
|
||||||
<source>Resize Volume Group</source>
|
<source>Resize Volume Group</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Muuta kokoa aseman-ryhmässä</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
Binary file not shown.
@ -120,7 +120,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/modules/unpackfs/main.py:326
|
#: src/modules/unpackfs/main.py:326
|
||||||
msgid "Bad mount point for root partition"
|
msgid "Bad mount point for root partition"
|
||||||
msgstr ""
|
msgstr "Huono kiinnityspiste root-osioon"
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:327
|
#: src/modules/unpackfs/main.py:327
|
||||||
msgid "rootMountPoint is \"{}\", which does not exist, doing nothing"
|
msgid "rootMountPoint is \"{}\", which does not exist, doing nothing"
|
||||||
@ -129,7 +129,7 @@ msgstr ""
|
|||||||
#: src/modules/unpackfs/main.py:340 src/modules/unpackfs/main.py:347
|
#: src/modules/unpackfs/main.py:340 src/modules/unpackfs/main.py:347
|
||||||
#: src/modules/unpackfs/main.py:352
|
#: src/modules/unpackfs/main.py:352
|
||||||
msgid "Bad unsquash configuration"
|
msgid "Bad unsquash configuration"
|
||||||
msgstr ""
|
msgstr "Huono epäpuhdas kokoonpano"
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:341
|
#: src/modules/unpackfs/main.py:341
|
||||||
msgid "The filesystem for \"{}\" ({}) is not supported"
|
msgid "The filesystem for \"{}\" ({}) is not supported"
|
||||||
@ -169,19 +169,19 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/modules/displaymanager/main.py:602
|
#: src/modules/displaymanager/main.py:602
|
||||||
msgid "Cannot configure LightDM"
|
msgid "Cannot configure LightDM"
|
||||||
msgstr ""
|
msgstr "LightDM määritysvirhe"
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:603
|
#: src/modules/displaymanager/main.py:603
|
||||||
msgid "No LightDM greeter installed."
|
msgid "No LightDM greeter installed."
|
||||||
msgstr ""
|
msgstr "LightDM ei ole asennettu."
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:634
|
#: src/modules/displaymanager/main.py:634
|
||||||
msgid "Cannot write SLIM configuration file"
|
msgid "Cannot write SLIM configuration file"
|
||||||
msgstr ""
|
msgstr "SLIM-määritystiedostoa ei voi kirjoittaa"
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:635
|
#: src/modules/displaymanager/main.py:635
|
||||||
msgid "SLIM config file {!s} does not exist"
|
msgid "SLIM config file {!s} does not exist"
|
||||||
msgstr ""
|
msgstr "SLIM-määritystiedostoa {!s} ei ole olemassa"
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:750
|
#: src/modules/displaymanager/main.py:750
|
||||||
msgid "No display managers selected for the displaymanager module."
|
msgid "No display managers selected for the displaymanager module."
|
||||||
@ -195,11 +195,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/modules/displaymanager/main.py:831
|
#: src/modules/displaymanager/main.py:831
|
||||||
msgid "Display manager configuration was incomplete"
|
msgid "Display manager configuration was incomplete"
|
||||||
msgstr ""
|
msgstr "Näytönhallinnan kokoonpano oli puutteellinen"
|
||||||
|
|
||||||
#: src/modules/initcpiocfg/main.py:36
|
#: src/modules/initcpiocfg/main.py:36
|
||||||
msgid "Configuring mkinitcpio."
|
msgid "Configuring mkinitcpio."
|
||||||
msgstr ""
|
msgstr "Määritetään mkinitcpio."
|
||||||
|
|
||||||
#: src/modules/initcpiocfg/main.py:192
|
#: src/modules/initcpiocfg/main.py:192
|
||||||
#: src/modules/luksopenswaphookcfg/main.py:100
|
#: src/modules/luksopenswaphookcfg/main.py:100
|
||||||
@ -215,7 +215,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/modules/initcpio/main.py:47
|
#: src/modules/initcpio/main.py:47
|
||||||
msgid "Process Failed"
|
msgid "Process Failed"
|
||||||
msgstr ""
|
msgstr "Prosessi epäonnistui"
|
||||||
|
|
||||||
#: src/modules/initcpio/main.py:48
|
#: src/modules/initcpio/main.py:48
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -229,7 +229,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: src/modules/rawfs/main.py:35
|
#: src/modules/rawfs/main.py:35
|
||||||
msgid "Installing data."
|
msgid "Installing data."
|
||||||
msgstr ""
|
msgstr "Asennetaan tietoja."
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:38
|
#: src/modules/services-openrc/main.py:38
|
||||||
msgid "Configure OpenRC services"
|
msgid "Configure OpenRC services"
|
||||||
|
@ -44,7 +44,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual ~JobThread() override;
|
virtual ~JobThread() override;
|
||||||
|
|
||||||
void setJobs( const JobList& jobs )
|
void setJobs( const JobList& jobs )
|
||||||
{
|
{
|
||||||
m_jobs = jobs;
|
m_jobs = jobs;
|
||||||
@ -157,6 +157,14 @@ JobQueue::JobQueue( QObject* parent )
|
|||||||
|
|
||||||
JobQueue::~JobQueue()
|
JobQueue::~JobQueue()
|
||||||
{
|
{
|
||||||
|
if ( m_thread->isRunning() )
|
||||||
|
{
|
||||||
|
m_thread->terminate();
|
||||||
|
if ( !m_thread->wait(300) )
|
||||||
|
cError() << "Could not terminate job thread (expect a crash now).";
|
||||||
|
delete m_thread;
|
||||||
|
}
|
||||||
|
|
||||||
delete m_storage;
|
delete m_storage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,10 +48,8 @@ ProcessJob::~ProcessJob()
|
|||||||
QString
|
QString
|
||||||
ProcessJob::prettyName() const
|
ProcessJob::prettyName() const
|
||||||
{
|
{
|
||||||
//TODO: show something more meaningful
|
return ( m_runInChroot ? tr( "Run command '%1' in target system." ) : tr( " Run command '%1'." ) )
|
||||||
return tr( "Run command %1 %2" )
|
.arg( m_command );
|
||||||
.arg( m_command )
|
|
||||||
.arg( m_runInChroot ? "in chroot." : " ." );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -67,83 +65,23 @@ ProcessJob::prettyStatusMessage() const
|
|||||||
JobResult
|
JobResult
|
||||||
ProcessJob::exec()
|
ProcessJob::exec()
|
||||||
{
|
{
|
||||||
int ec = 0;
|
using CalamaresUtils::System;
|
||||||
QString output;
|
|
||||||
if ( m_runInChroot )
|
if ( m_runInChroot )
|
||||||
ec = CalamaresUtils::System::instance()->
|
return CalamaresUtils::System::instance()->
|
||||||
targetEnvOutput( m_command,
|
targetEnvCommand( { m_command },
|
||||||
output,
|
|
||||||
m_workingPath,
|
m_workingPath,
|
||||||
QString(),
|
QString(),
|
||||||
m_timeoutSec );
|
m_timeoutSec )
|
||||||
|
.explainProcess( m_command, m_timeoutSec );
|
||||||
else
|
else
|
||||||
ec = callOutput( m_command,
|
return
|
||||||
output,
|
System::runCommand( System::RunLocation::RunInHost,
|
||||||
m_workingPath,
|
{ "/bin/sh", "-c", m_command },
|
||||||
QString(),
|
m_workingPath,
|
||||||
m_timeoutSec );
|
QString(),
|
||||||
|
m_timeoutSec )
|
||||||
return CalamaresUtils::ProcessResult::explainProcess( ec, m_command, output, m_timeoutSec );
|
.explainProcess( m_command, m_timeoutSec );
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int
|
|
||||||
ProcessJob::callOutput( const QString& command,
|
|
||||||
QString& output,
|
|
||||||
const QString& workingPath,
|
|
||||||
const QString& stdInput,
|
|
||||||
int timeoutSec )
|
|
||||||
{
|
|
||||||
output.clear();
|
|
||||||
|
|
||||||
QProcess process;
|
|
||||||
process.setProgram( "/bin/sh" );
|
|
||||||
process.setArguments( { "-c", command } );
|
|
||||||
process.setProcessChannelMode( QProcess::MergedChannels );
|
|
||||||
|
|
||||||
if ( !workingPath.isEmpty() )
|
|
||||||
{
|
|
||||||
if ( QDir( workingPath ).exists() )
|
|
||||||
process.setWorkingDirectory( QDir( workingPath ).absolutePath() );
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cWarning() << "Invalid working directory:" << workingPath;
|
|
||||||
return -3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cDebug() << "Running" << command;
|
|
||||||
process.start();
|
|
||||||
if ( !process.waitForStarted() )
|
|
||||||
{
|
|
||||||
cWarning() << "Process failed to start" << process.error();
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( !stdInput.isEmpty() )
|
|
||||||
{
|
|
||||||
process.write( stdInput.toLocal8Bit() );
|
|
||||||
process.closeWriteChannel();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( !process.waitForFinished( timeoutSec ? ( timeoutSec * 1000 ) : -1 ) )
|
|
||||||
{
|
|
||||||
cWarning() << "Timed out. output so far:";
|
|
||||||
output.append( QString::fromLocal8Bit( process.readAllStandardOutput() ).trimmed() );
|
|
||||||
cWarning() << output;
|
|
||||||
return -4;
|
|
||||||
}
|
|
||||||
|
|
||||||
output.append( QString::fromLocal8Bit( process.readAllStandardOutput() ).trimmed() );
|
|
||||||
|
|
||||||
if ( process.exitStatus() == QProcess::CrashExit )
|
|
||||||
{
|
|
||||||
cWarning() << "Process crashed";
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
cDebug() << "Finished. Exit code:" << process.exitCode();
|
|
||||||
return process.exitCode();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Calamares
|
} // namespace Calamares
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||||
*
|
*
|
||||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
* Copyright 2017-2019, Adriaan de Groot <groot@kde.org>
|
||||||
*
|
*
|
||||||
* Calamares is free software: you can redistribute it and/or modify
|
* Calamares is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -40,11 +40,6 @@ public:
|
|||||||
JobResult exec() override;
|
JobResult exec() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int callOutput( const QString& command,
|
|
||||||
QString& output,
|
|
||||||
const QString& workingPath = QString(),
|
|
||||||
const QString& stdInput = QString(),
|
|
||||||
int timeoutSec = 0 );
|
|
||||||
QString m_command;
|
QString m_command;
|
||||||
QString m_workingPath;
|
QString m_workingPath;
|
||||||
bool m_runInChroot;
|
bool m_runInChroot;
|
||||||
|
@ -18,9 +18,12 @@
|
|||||||
|
|
||||||
#include "Tests.h"
|
#include "Tests.h"
|
||||||
|
|
||||||
|
#include "utils/CalamaresUtilsSystem.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
#include "utils/Yaml.h"
|
#include "utils/Yaml.h"
|
||||||
|
|
||||||
|
#include <QTemporaryFile>
|
||||||
|
|
||||||
#include <QtTest/QtTest>
|
#include <QtTest/QtTest>
|
||||||
|
|
||||||
QTEST_GUILESS_MAIN( LibCalamaresTests )
|
QTEST_GUILESS_MAIN( LibCalamaresTests )
|
||||||
@ -113,3 +116,45 @@ LibCalamaresTests::testLoadSaveYamlExtended()
|
|||||||
}
|
}
|
||||||
QFile::remove( "out.yaml" );
|
QFile::remove( "out.yaml" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LibCalamaresTests::testCommands()
|
||||||
|
{
|
||||||
|
using CalamaresUtils::System;
|
||||||
|
auto r = System::runCommand(
|
||||||
|
System::RunLocation::RunInHost,
|
||||||
|
{ "/bin/ls", "/tmp" }
|
||||||
|
);
|
||||||
|
|
||||||
|
QVERIFY( r.getExitCode() == 0 );
|
||||||
|
|
||||||
|
QTemporaryFile tf( "/tmp/calamares-test-XXXXXX" );
|
||||||
|
QVERIFY( tf.open() );
|
||||||
|
QVERIFY( !tf.fileName().isEmpty() );
|
||||||
|
|
||||||
|
QFileInfo tfn( tf.fileName() );
|
||||||
|
QVERIFY( !r.getOutput().contains( tfn.fileName() ) );
|
||||||
|
|
||||||
|
// Run ls again, now that the file exists
|
||||||
|
r = System::runCommand(
|
||||||
|
System::RunLocation::RunInHost,
|
||||||
|
{ "/bin/ls", "/tmp" }
|
||||||
|
);
|
||||||
|
QVERIFY( r.getOutput().contains( tfn.fileName() ) );
|
||||||
|
|
||||||
|
// .. and without a working directory set, assume builddir != /tmp
|
||||||
|
r = System::runCommand(
|
||||||
|
System::RunLocation::RunInHost,
|
||||||
|
{ "/bin/ls" }
|
||||||
|
);
|
||||||
|
QVERIFY( !r.getOutput().contains( tfn.fileName() ) );
|
||||||
|
|
||||||
|
r = System::runCommand(
|
||||||
|
System::RunLocation::RunInHost,
|
||||||
|
{ "/bin/ls" },
|
||||||
|
"/tmp"
|
||||||
|
);
|
||||||
|
QVERIFY( r.getOutput().contains( tfn.fileName() ) );
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -34,6 +34,8 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void testLoadSaveYaml(); // Just settings.conf
|
void testLoadSaveYaml(); // Just settings.conf
|
||||||
void testLoadSaveYamlExtended(); // Do a find() in the src dir
|
void testLoadSaveYamlExtended(); // Do a find() in the src dir
|
||||||
|
|
||||||
|
void testCommands();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -114,14 +114,24 @@ System::mount( const QString& devicePath,
|
|||||||
const QString& options )
|
const QString& options )
|
||||||
{
|
{
|
||||||
if ( devicePath.isEmpty() || mountPoint.isEmpty() )
|
if ( devicePath.isEmpty() || mountPoint.isEmpty() )
|
||||||
return -3;
|
{
|
||||||
|
if ( devicePath.isEmpty() )
|
||||||
|
cWarning() << "Can't mount an empty device.";
|
||||||
|
if ( mountPoint.isEmpty() )
|
||||||
|
cWarning() << "Can't mount on an empty mountpoint.";
|
||||||
|
|
||||||
|
return static_cast<int>(ProcessResult::Code::NoWorkingDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
QDir mountPointDir( mountPoint );
|
QDir mountPointDir( mountPoint );
|
||||||
if ( !mountPointDir.exists() )
|
if ( !mountPointDir.exists() )
|
||||||
{
|
{
|
||||||
bool ok = mountPointDir.mkpath( mountPoint );
|
bool ok = mountPointDir.mkpath( mountPoint );
|
||||||
if ( !ok )
|
if ( !ok )
|
||||||
return -3;
|
{
|
||||||
|
cWarning() << "Could not create mountpoint" << mountPoint;
|
||||||
|
return static_cast<int>(ProcessResult::Code::NoWorkingDirectory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString program( "mount" );
|
QString program( "mount" );
|
||||||
@ -146,15 +156,13 @@ System::runCommand(
|
|||||||
{
|
{
|
||||||
QString output;
|
QString output;
|
||||||
|
|
||||||
if ( !Calamares::JobQueue::instance() )
|
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance() ? Calamares::JobQueue::instance()->globalStorage() : nullptr;
|
||||||
return -3;
|
|
||||||
|
|
||||||
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
|
||||||
if ( ( location == System::RunLocation::RunInTarget ) &&
|
if ( ( location == System::RunLocation::RunInTarget ) &&
|
||||||
( !gs || !gs->contains( "rootMountPoint" ) ) )
|
( !gs || !gs->contains( "rootMountPoint" ) ) )
|
||||||
{
|
{
|
||||||
cWarning() << "No rootMountPoint in global storage";
|
cWarning() << "No rootMountPoint in global storage";
|
||||||
return -3;
|
return ProcessResult::Code::NoWorkingDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
QProcess process;
|
QProcess process;
|
||||||
@ -167,7 +175,7 @@ System::runCommand(
|
|||||||
if ( !QDir( destDir ).exists() )
|
if ( !QDir( destDir ).exists() )
|
||||||
{
|
{
|
||||||
cWarning() << "rootMountPoint points to a dir which does not exist";
|
cWarning() << "rootMountPoint points to a dir which does not exist";
|
||||||
return -3;
|
return ProcessResult::Code::NoWorkingDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
program = "chroot";
|
program = "chroot";
|
||||||
@ -189,8 +197,10 @@ System::runCommand(
|
|||||||
if ( QDir( workingPath ).exists() )
|
if ( QDir( workingPath ).exists() )
|
||||||
process.setWorkingDirectory( QDir( workingPath ).absolutePath() );
|
process.setWorkingDirectory( QDir( workingPath ).absolutePath() );
|
||||||
else
|
else
|
||||||
|
{
|
||||||
cWarning() << "Invalid working directory:" << workingPath;
|
cWarning() << "Invalid working directory:" << workingPath;
|
||||||
return -3;
|
return ProcessResult::Code::NoWorkingDirectory;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cDebug() << "Running" << program << RedactedList( arguments );
|
cDebug() << "Running" << program << RedactedList( arguments );
|
||||||
@ -198,20 +208,20 @@ System::runCommand(
|
|||||||
if ( !process.waitForStarted() )
|
if ( !process.waitForStarted() )
|
||||||
{
|
{
|
||||||
cWarning() << "Process failed to start" << process.error();
|
cWarning() << "Process failed to start" << process.error();
|
||||||
return -2;
|
return ProcessResult::Code::FailedToStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !stdInput.isEmpty() )
|
if ( !stdInput.isEmpty() )
|
||||||
{
|
{
|
||||||
process.write( stdInput.toLocal8Bit() );
|
process.write( stdInput.toLocal8Bit() );
|
||||||
process.closeWriteChannel();
|
|
||||||
}
|
}
|
||||||
|
process.closeWriteChannel();
|
||||||
|
|
||||||
if ( !process.waitForFinished( timeoutSec ? ( timeoutSec * 1000 ) : -1 ) )
|
if ( !process.waitForFinished( timeoutSec ? ( timeoutSec * 1000 ) : -1 ) )
|
||||||
{
|
{
|
||||||
cWarning().noquote().nospace() << "Timed out. Output so far:\n" <<
|
cWarning().noquote().nospace() << "Timed out. Output so far:\n" <<
|
||||||
process.readAllStandardOutput();
|
process.readAllStandardOutput();
|
||||||
return -4;
|
return ProcessResult::Code::TimedOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
output.append( QString::fromLocal8Bit( process.readAllStandardOutput() ).trimmed() );
|
output.append( QString::fromLocal8Bit( process.readAllStandardOutput() ).trimmed() );
|
||||||
@ -219,12 +229,13 @@ System::runCommand(
|
|||||||
if ( process.exitStatus() == QProcess::CrashExit )
|
if ( process.exitStatus() == QProcess::CrashExit )
|
||||||
{
|
{
|
||||||
cWarning().noquote().nospace() << "Process crashed. Output so far:\n" << output;
|
cWarning().noquote().nospace() << "Process crashed. Output so far:\n" << output;
|
||||||
return -1;
|
return ProcessResult::Code::Crashed;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto r = process.exitCode();
|
auto r = process.exitCode();
|
||||||
cDebug() << "Finished. Exit code:" << r;
|
cDebug() << "Finished. Exit code:" << r;
|
||||||
if ( ( r != 0 ) || Calamares::Settings::instance()->debugMode() )
|
bool showDebug = ( !Calamares::Settings::instance() ) || ( Calamares::Settings::instance()->debugMode() );
|
||||||
|
if ( ( r != 0 ) || showDebug )
|
||||||
{
|
{
|
||||||
cDebug() << "Target cmd:" << RedactedList( args );
|
cDebug() << "Target cmd:" << RedactedList( args );
|
||||||
cDebug().noquote().nospace() << "Target output:\n" << output;
|
cDebug().noquote().nospace() << "Target output:\n" << output;
|
||||||
@ -306,22 +317,22 @@ ProcessResult::explainProcess( int ec, const QString& command, const QString& ou
|
|||||||
? QCoreApplication::translate( "ProcessResult", "\nThere was no output from the command.")
|
? QCoreApplication::translate( "ProcessResult", "\nThere was no output from the command.")
|
||||||
: (QCoreApplication::translate( "ProcessResult", "\nOutput:\n") + output);
|
: (QCoreApplication::translate( "ProcessResult", "\nOutput:\n") + output);
|
||||||
|
|
||||||
if ( ec == -1 ) //Crash!
|
if ( ec == static_cast<int>(ProcessResult::Code::Crashed) ) //Crash!
|
||||||
return JobResult::error( QCoreApplication::translate( "ProcessResult", "External command crashed." ),
|
return JobResult::error( QCoreApplication::translate( "ProcessResult", "External command crashed." ),
|
||||||
QCoreApplication::translate( "ProcessResult", "Command <i>%1</i> crashed." )
|
QCoreApplication::translate( "ProcessResult", "Command <i>%1</i> crashed." )
|
||||||
.arg( command )
|
.arg( command )
|
||||||
+ outputMessage );
|
+ outputMessage );
|
||||||
|
|
||||||
if ( ec == -2 )
|
if ( ec == static_cast<int>(ProcessResult::Code::FailedToStart) )
|
||||||
return JobResult::error( QCoreApplication::translate( "ProcessResult", "External command failed to start." ),
|
return JobResult::error( QCoreApplication::translate( "ProcessResult", "External command failed to start." ),
|
||||||
QCoreApplication::translate( "ProcessResult", "Command <i>%1</i> failed to start." )
|
QCoreApplication::translate( "ProcessResult", "Command <i>%1</i> failed to start." )
|
||||||
.arg( command ) );
|
.arg( command ) );
|
||||||
|
|
||||||
if ( ec == -3 )
|
if ( ec == static_cast<int>(ProcessResult::Code::NoWorkingDirectory) )
|
||||||
return JobResult::error( QCoreApplication::translate( "ProcessResult", "Internal error when starting command." ),
|
return JobResult::error( QCoreApplication::translate( "ProcessResult", "Internal error when starting command." ),
|
||||||
QCoreApplication::translate( "ProcessResult", "Bad parameters for process job call." ) );
|
QCoreApplication::translate( "ProcessResult", "Bad parameters for process job call." ) );
|
||||||
|
|
||||||
if ( ec == -4 )
|
if ( ec == static_cast<int>(ProcessResult::Code::TimedOut) )
|
||||||
return JobResult::error( QCoreApplication::translate( "ProcessResult", "External command failed to finish." ),
|
return JobResult::error( QCoreApplication::translate( "ProcessResult", "External command failed to finish." ),
|
||||||
QCoreApplication::translate( "ProcessResult", "Command <i>%1</i> failed to finish in %2 seconds." )
|
QCoreApplication::translate( "ProcessResult", "Command <i>%1</i> failed to finish in %2 seconds." )
|
||||||
.arg( command )
|
.arg( command )
|
||||||
|
@ -32,8 +32,16 @@ namespace CalamaresUtils
|
|||||||
class ProcessResult : public QPair< int, QString >
|
class ProcessResult : public QPair< int, QString >
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
enum class Code : int
|
||||||
|
{
|
||||||
|
Crashed = -1, // Must match special return values from QProcess
|
||||||
|
FailedToStart = -2, // Must match special return values from QProcess
|
||||||
|
NoWorkingDirectory = -3,
|
||||||
|
TimedOut = -4
|
||||||
|
} ;
|
||||||
|
|
||||||
/** @brief Implicit one-argument constructor has no output, only a return code */
|
/** @brief Implicit one-argument constructor has no output, only a return code */
|
||||||
ProcessResult( int r ) : QPair< int, QString >( r, QString() ) {}
|
ProcessResult( Code r ) : QPair< int, QString >( static_cast<int>(r), QString() ) {}
|
||||||
ProcessResult( int r, QString s ) : QPair< int, QString >( r, s ) {}
|
ProcessResult( int r, QString s ) : QPair< int, QString >( r, s ) {}
|
||||||
|
|
||||||
int getExitCode() const { return first; }
|
int getExitCode() const { return first; }
|
||||||
@ -93,9 +101,9 @@ public:
|
|||||||
* @param filesystemName the name of the filesystem (optional).
|
* @param filesystemName the name of the filesystem (optional).
|
||||||
* @param options any additional options as passed to mount -o (optional).
|
* @param options any additional options as passed to mount -o (optional).
|
||||||
* @returns the program's exit code, or:
|
* @returns the program's exit code, or:
|
||||||
* -1 = QProcess crash
|
* Crashed = QProcess crash
|
||||||
* -2 = QProcess cannot start
|
* FailedToStart = QProcess cannot start
|
||||||
* -3 = bad arguments
|
* NoWorkingDirectory = bad arguments
|
||||||
*/
|
*/
|
||||||
DLLEXPORT int mount( const QString& devicePath,
|
DLLEXPORT int mount( const QString& devicePath,
|
||||||
const QString& mountPoint,
|
const QString& mountPoint,
|
||||||
@ -120,10 +128,10 @@ public:
|
|||||||
*
|
*
|
||||||
* @returns the program's exit code and its output (if any). Special
|
* @returns the program's exit code and its output (if any). Special
|
||||||
* exit codes (which will never have any output) are:
|
* exit codes (which will never have any output) are:
|
||||||
* -1 = QProcess crash
|
* Crashed = QProcess crash
|
||||||
* -2 = QProcess cannot start
|
* FailedToStart = QProcess cannot start
|
||||||
* -3 = bad arguments
|
* NoWorkingDirectory = bad arguments
|
||||||
* -4 = QProcess timeout
|
* TimedOut = QProcess timeout
|
||||||
*/
|
*/
|
||||||
static DLLEXPORT ProcessResult runCommand(
|
static DLLEXPORT ProcessResult runCommand(
|
||||||
RunLocation location,
|
RunLocation location,
|
||||||
|
@ -283,18 +283,35 @@ ViewManager::next()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_currentStep++;
|
m_currentStep++;
|
||||||
m_stack->setCurrentIndex( m_currentStep );
|
|
||||||
|
m_stack->setCurrentIndex( m_currentStep ); // Does nothing if out of range
|
||||||
step->onLeave();
|
step->onLeave();
|
||||||
m_steps.at( m_currentStep )->onActivate();
|
|
||||||
executing = qobject_cast< ExecutionViewStep* >( m_steps.at( m_currentStep ) ) != nullptr;
|
if ( m_currentStep < m_steps.count() )
|
||||||
emit currentStepChanged();
|
{
|
||||||
|
m_steps.at( m_currentStep )->onActivate();
|
||||||
|
executing = qobject_cast< ExecutionViewStep* >( m_steps.at( m_currentStep ) ) != nullptr;
|
||||||
|
emit currentStepChanged();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Reached the end in a weird state (e.g. no finished step after an exec)
|
||||||
|
executing = false;
|
||||||
|
m_next->setEnabled( false );
|
||||||
|
m_back->setEnabled( false );
|
||||||
|
}
|
||||||
updateCancelEnabled( !settings->disableCancel() && !(executing && settings->disableCancelDuringExec() ) );
|
updateCancelEnabled( !settings->disableCancel() && !(executing && settings->disableCancelDuringExec() ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
step->next();
|
step->next();
|
||||||
|
}
|
||||||
|
|
||||||
m_next->setEnabled( !executing && m_steps.at( m_currentStep )->isNextEnabled() );
|
if ( m_currentStep < m_steps.count() )
|
||||||
m_back->setEnabled( !executing && m_steps.at( m_currentStep )->isBackEnabled() );
|
{
|
||||||
|
m_next->setEnabled( !executing && m_steps.at( m_currentStep )->isNextEnabled() );
|
||||||
|
m_back->setEnabled( !executing && m_steps.at( m_currentStep )->isBackEnabled() );
|
||||||
|
}
|
||||||
|
|
||||||
updateButtonLabels();
|
updateButtonLabels();
|
||||||
}
|
}
|
||||||
@ -320,7 +337,7 @@ ViewManager::updateButtonLabels()
|
|||||||
else
|
else
|
||||||
m_next->setText( tr( "&Next" ) );
|
m_next->setText( tr( "&Next" ) );
|
||||||
|
|
||||||
if ( m_currentStep == m_steps.count() -1 && m_steps.last()->isAtEnd() )
|
if ( isAtVeryEnd() )
|
||||||
{
|
{
|
||||||
m_quit->setText( tr( "&Done" ) );
|
m_quit->setText( tr( "&Done" ) );
|
||||||
m_quit->setToolTip( complete );
|
m_quit->setToolTip( complete );
|
||||||
@ -368,7 +385,7 @@ bool ViewManager::confirmCancelInstallation()
|
|||||||
const auto* const settings = Calamares::Settings::instance();
|
const auto* const settings = Calamares::Settings::instance();
|
||||||
|
|
||||||
// When we're at the very end, then it's always OK to exit.
|
// When we're at the very end, then it's always OK to exit.
|
||||||
if ( m_currentStep == m_steps.count() -1 && m_steps.last()->isAtEnd() )
|
if ( isAtVeryEnd() )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Not at the very end, cancel/quit might be disabled
|
// Not at the very end, cancel/quit might be disabled
|
||||||
|
@ -130,7 +130,12 @@ private:
|
|||||||
void insertViewStep( int before, ViewStep* step );
|
void insertViewStep( int before, ViewStep* step );
|
||||||
void updateButtonLabels();
|
void updateButtonLabels();
|
||||||
void updateCancelEnabled( bool enabled );
|
void updateCancelEnabled( bool enabled );
|
||||||
|
|
||||||
|
bool isAtVeryEnd() const
|
||||||
|
{
|
||||||
|
return ( m_currentStep >= m_steps.count() ) || ( m_currentStep == m_steps.count() - 1 && m_steps.last()->isAtEnd() );
|
||||||
|
}
|
||||||
|
|
||||||
static ViewManager* s_instance;
|
static ViewManager* s_instance;
|
||||||
|
|
||||||
ViewStepList m_steps;
|
ViewStepList m_steps;
|
||||||
|
Binary file not shown.
@ -4,16 +4,16 @@
|
|||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Zmicer Turok <zmicerturok@gmail.com>, 2018
|
# Zmicer Turok <nashtlumach@gmail.com>, 2018
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
|
"POT-Creation-Date: 2019-05-10 19:18-0400\n"
|
||||||
"PO-Revision-Date: 2016-12-16 12:18+0000\n"
|
"PO-Revision-Date: 2016-12-16 12:18+0000\n"
|
||||||
"Last-Translator: Zmicer Turok <zmicerturok@gmail.com>, 2018\n"
|
"Last-Translator: Zmicer Turok <nashtlumach@gmail.com>, 2018\n"
|
||||||
"Language-Team: Belarusian (https://www.transifex.com/calamares/teams/20061/be/)\n"
|
"Language-Team: Belarusian (https://www.transifex.com/calamares/teams/20061/be/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user