Merge pull request #828 from stikonas/lvm2
Add support for performing operations on LVM logical volumes.
This commit is contained in:
commit
12deb67ace
3
.gitignore
vendored
3
.gitignore
vendored
@ -46,3 +46,6 @@ CMakeLists.txt.user
|
||||
|
||||
# Backup files
|
||||
*~
|
||||
|
||||
# Kate
|
||||
*.kate-swp
|
||||
|
@ -1,6 +1,4 @@
|
||||
language:
|
||||
- cpp
|
||||
- python
|
||||
language: cpp
|
||||
|
||||
python:
|
||||
- 3.5
|
||||
@ -18,5 +16,5 @@ install:
|
||||
- docker build -t calamares .
|
||||
|
||||
script:
|
||||
- docker run -v $PWD:/src --tmpfs /build:rw,size=65536k calamares bash -lc "cd /build && cmake -DWEBVIEW_FORCE_WEBKIT=1 -DKDE_INSTALL_USE_QT_SYS_PATHS=ON /src && make -j2 && make install DESTDIR=/build/INSTALL_ROOT"
|
||||
- docker run -v $PWD:/src --tmpfs /build:rw,size=65536k -e SRCDIR=/src -e BUILDDIR=/build calamares "/src/ci/travis.sh"
|
||||
|
||||
|
26
AUTHORS
26
AUTHORS
@ -1,2 +1,24 @@
|
||||
Teo Mrnjavac <teo@kde.org>
|
||||
Adriaan de Groot <groot@kde.org>
|
||||
# MAINTAINER
|
||||
|
||||
Teo Mrnjavac <teo@kde.org> (maintainer -2017)
|
||||
Adriaan de Groot <groot@kde.org> (maintainer 2017-)
|
||||
|
||||
# CONTRIBUTORS
|
||||
|
||||
Alf Gaida
|
||||
Allen Welkie
|
||||
Andrius Štikonas
|
||||
Bernhard Landauer
|
||||
Bezzy1999
|
||||
bill-auger
|
||||
crispg72
|
||||
demmm
|
||||
Gabriel Craciunescu
|
||||
Kai Dohmen
|
||||
Kevin Kofler
|
||||
Kyle Robertze
|
||||
Lisa Vitolo
|
||||
n3rdopolis
|
||||
Philip Müller
|
||||
Ramon Buldó
|
||||
Rohan Garg
|
||||
|
@ -50,7 +50,7 @@ if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
|
||||
|
||||
# Clang warnings: doing *everything* is counter-productive, since it warns
|
||||
# about things which we can't fix (e.g. C++98 incompatibilities, but
|
||||
# Calaares is C++14).
|
||||
# Calamares is C++14).
|
||||
foreach( CLANG_WARNINGS
|
||||
-Weverything
|
||||
-Wno-c++98-compat
|
||||
@ -88,6 +88,8 @@ else()
|
||||
set( SUPPRESS_BOOST_WARNINGS "" )
|
||||
endif()
|
||||
|
||||
# Use mark_thirdparty_code() to reduce warnings from the compiler
|
||||
# on code that we're not going to fix. Call this with a list of files.
|
||||
macro(mark_thirdparty_code)
|
||||
set_source_files_properties( ${ARGV}
|
||||
PROPERTIES
|
||||
@ -164,8 +166,8 @@ set( CALAMARES_TRANSLATION_LANGUAGES ar ast bg ca cs_CZ da de el en en_GB es_MX
|
||||
### Bump version here
|
||||
set( CALAMARES_VERSION_MAJOR 3 )
|
||||
set( CALAMARES_VERSION_MINOR 1 )
|
||||
set( CALAMARES_VERSION_PATCH 5 )
|
||||
set( CALAMARES_VERSION_RC 0 )
|
||||
set( CALAMARES_VERSION_PATCH 8 )
|
||||
set( CALAMARES_VERSION_RC 1 )
|
||||
|
||||
set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} )
|
||||
set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" )
|
||||
@ -265,12 +267,9 @@ else()
|
||||
endif()
|
||||
# Doesn't list mksquashfs as an optional dep, though, because it
|
||||
# hasn't been sent through the find_package() scheme.
|
||||
set_package_properties( mksquashfs PROPERTIES
|
||||
DESCRIPTION "Create squashed filesystems"
|
||||
URL "http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html"
|
||||
PURPOSE "Create example distro"
|
||||
TYPE OPTIONAL
|
||||
)
|
||||
#
|
||||
# "http://tldp.org/HOWTO/SquashFS-HOWTO/creatingandusing.html"
|
||||
add_feature_info( ExampleDistro ${mksquashfs_FOUND} "Create example-distro target.")
|
||||
|
||||
# add_subdirectory( thirdparty )
|
||||
add_subdirectory( src )
|
||||
|
@ -6,9 +6,12 @@ set( MODULE_DATA_DESTINATION share/calamares/modules )
|
||||
function( calamares_add_module_subdirectory )
|
||||
set( SUBDIRECTORY ${ARGV0} )
|
||||
|
||||
set( MODULE_CONFIG_FILES "" )
|
||||
|
||||
# If this subdirectory has a CMakeLists.txt, we add_subdirectory it...
|
||||
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" )
|
||||
add_subdirectory( ${SUBDIRECTORY} )
|
||||
file( GLOB MODULE_CONFIG_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*.conf" )
|
||||
# ...otherwise, we look for a module.desc.
|
||||
elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/module.desc" )
|
||||
set( MODULES_DIR ${CMAKE_INSTALL_LIBDIR}/calamares/modules )
|
||||
@ -39,7 +42,7 @@ function( calamares_add_module_subdirectory )
|
||||
# message( " ${Green}FILES:${ColorReset} ${MODULE_FILES}" )
|
||||
message( " ${Green}MODULE_DESTINATION:${ColorReset} ${MODULE_DESTINATION}" )
|
||||
if( MODULE_CONFIG_FILES )
|
||||
if (INSTALL_CONFIG)
|
||||
if ( INSTALL_CONFIG )
|
||||
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${MODULE_CONFIG_FILES} => ${MODULE_DATA_DESTINATION}" )
|
||||
else()
|
||||
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${MODULE_CONFIG_FILES} => [Skipping installation]" )
|
||||
@ -56,9 +59,23 @@ function( calamares_add_module_subdirectory )
|
||||
RENAME calamares-${SUBDIRECTORY}.mo
|
||||
)
|
||||
endif()
|
||||
|
||||
else()
|
||||
message( "-- ${BoldYellow}Warning:${ColorReset} tried to add module subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no CMakeLists.txt or module.desc." )
|
||||
message( "" )
|
||||
endif()
|
||||
|
||||
# Check any config files for basic correctness
|
||||
if ( BUILD_TESTING AND MODULE_CONFIG_FILES )
|
||||
set( _count 0 )
|
||||
foreach( _config_file ${MODULE_CONFIG_FILES} )
|
||||
set( _count_str "-${_count}" )
|
||||
if ( _count EQUAL 0 )
|
||||
set( _count_str "" )
|
||||
endif()
|
||||
add_test(
|
||||
NAME config-${SUBDIRECTORY}${_count_str}
|
||||
COMMAND test_conf ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${_config_file} )
|
||||
math( EXPR _count "${_count} + 1" )
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
|
@ -9,6 +9,20 @@ if(NOT PYTHONLIBS_FOUND)
|
||||
message(FATAL_ERROR "error: Python is required to build PythonQt")
|
||||
endif()
|
||||
|
||||
# Cut X.Y[.Z] down to just X.Y
|
||||
string(REGEX REPLACE
|
||||
"^([0-9][0-9]*)\.([0-9][0-9]*)"
|
||||
"\\1.\\2@"
|
||||
_PYTHONLIBS_MAJMIN
|
||||
${PYTHONLIBS_VERSION_STRING}
|
||||
)
|
||||
string(REGEX REPLACE
|
||||
"@.*"
|
||||
""
|
||||
PYTHONLIBS_MAJMIN
|
||||
${_PYTHONLIBS_MAJMIN}
|
||||
)
|
||||
|
||||
if(NOT EXISTS "${PYTHONQT_INSTALL_DIR}")
|
||||
find_path(PYTHONQT_INSTALL_DIR include/PythonQt/PythonQt.h DOC "Directory where PythonQt was installed.")
|
||||
endif()
|
||||
@ -22,17 +36,58 @@ find_path(PYTHONQT_INCLUDE_DIR PythonQt.h
|
||||
"${PYTHONQT_INSTALL_DIR}/src"
|
||||
DOC "Path to the PythonQt include directory")
|
||||
|
||||
# Minimum v3.1 is needed
|
||||
find_library(PYTHONQT_LIBRARY_RELEASE PythonQt PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "The PythonQt library.")
|
||||
find_library(PYTHONQT_LIBRARY_DEBUG NAMES PythonQt${CTK_CMAKE_DEBUG_POSTFIX} PythonQt${CMAKE_DEBUG_POSTFIX} PythonQt PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "The PythonQt library.")
|
||||
find_library(PYTHONQT_QTALL_LIBRARY_RELEASE PythonQt_QtAll PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "Full Qt bindings for the PythonQt library.")
|
||||
find_library(PYTHONQT_QTALL_LIBRARY_DEBUG NAMES PythonQt_QtAll${CTK_CMAKE_DEBUG_POSTFIX} PythonQt_QtAll${CMAKE_DEBUG_POSTFIX} PythonQt_QtAll PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "Full Qt bindings for the PythonQt library.")
|
||||
if ( NOT PythonQt_FIND_QUIETLY )
|
||||
message( STATUS "Searching for PythonQt (PythonLibs ${PYTHONLIBS_MAJMIN}) .." )
|
||||
if ( PYTHONQT_INCLUDE_DIR )
|
||||
message( STATUS " .. found include ${PYTHONQT_INCLUDE_DIR}" )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Also check for v3.2+
|
||||
find_library(PYTHONQT_LIBRARY_RELEASE PythonQt-Qt5-Python3 PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "The PythonQt library.")
|
||||
find_library(PYTHONQT_LIBRARY_DEBUG NAMES PythonQt-Qt5-Python3${CTK_CMAKE_DEBUG_POSTFIX} PythonQt-Qt5-Python3${CMAKE_DEBUG_POSTFIX} PythonQt-Qt5-Python3 PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "The PythonQt library.")
|
||||
find_library(PYTHONQT_QTALL_LIBRARY_RELEASE PythonQt_QtAll-Qt5-Python3 PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "Full Qt bindings for the PythonQt library.")
|
||||
find_library(PYTHONQT_QTALL_LIBRARY_DEBUG NAMES PythonQt_QtAll-Qt5-Python3${CTK_CMAKE_DEBUG_POSTFIX} PythonQt_QtAll-Qt5-Python3${CMAKE_DEBUG_POSTFIX} PythonQt_QtAll-Qt5-Python3 PATHS "${PYTHONQT_INSTALL_DIR}/lib" DOC "Full Qt bindings for the PythonQt library.")
|
||||
# Minimum v3.1 is needed
|
||||
find_library(PYTHONQT_LIBRARY_RELEASE
|
||||
NAMES
|
||||
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}
|
||||
PythonQt-Qt5-Python3
|
||||
PythonQt
|
||||
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
|
||||
DOC "The PythonQt library."
|
||||
)
|
||||
find_library(PYTHONQT_LIBRARY_DEBUG
|
||||
NAMES
|
||||
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}JMIN${CTK_CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}${CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt-Qt5-Python${PYTHONLIBS_MAJMIN}
|
||||
PythonQt-Qt5-Python3${CTK_CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt-Qt5-Python3${CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt-Qt5-Python3
|
||||
PythonQt${CTK_CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt${CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt
|
||||
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
|
||||
DOC "The PythonQt library (debug build)."
|
||||
)
|
||||
find_library(PYTHONQT_QTALL_LIBRARY_RELEASE
|
||||
NAMES
|
||||
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}
|
||||
PythonQt_QtAll-Qt5-Python3
|
||||
PythonQt_QtAll
|
||||
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
|
||||
DOC "Full Qt bindings for the PythonQt library."
|
||||
)
|
||||
find_library(PYTHONQT_QTALL_LIBRARY_DEBUG
|
||||
NAMES
|
||||
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}${CTK_CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}${CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt_QtAll-Qt5-Python${PYTHONLIBS_MAJMIN}
|
||||
PythonQt_QtAll-Qt5-Python3${CTK_CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt_QtAll-Qt5-Python3${CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt_QtAll-Qt5-Python3
|
||||
PythonQt_QtAll${CTK_CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt_QtAll${CMAKE_DEBUG_POSTFIX}
|
||||
PythonQt_QtAll
|
||||
PATHS "${PYTHONQT_INSTALL_DIR}/lib"
|
||||
DOC "Full Qt bindings for the PythonQt library (debug build)."
|
||||
)
|
||||
|
||||
set(PYTHONQT_LIBRARY)
|
||||
if(PYTHONQT_LIBRARY_RELEASE)
|
||||
@ -50,6 +105,16 @@ if(PYTHONQT_QTALL_LIBRARY_DEBUG)
|
||||
list(APPEND PYTHONQT_QTALL_LIBRARY debug ${PYTHONQT_QTALL_LIBRARY_DEBUG})
|
||||
endif()
|
||||
|
||||
if ( NOT PythonQt_FIND_QUIETLY )
|
||||
if ( PYTHONQT_LIBRARY )
|
||||
message( STATUS " .. found library ${PYTHONQT_LIBRARY}" )
|
||||
endif()
|
||||
if ( PYTHONQT_QTALL_LIBRARY )
|
||||
message( STATUS " .. found qtall ${PYTHONQT_QTALL_LIBRARY}" )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
mark_as_advanced(PYTHONQT_INSTALL_DIR)
|
||||
mark_as_advanced(PYTHONQT_INCLUDE_DIR)
|
||||
mark_as_advanced(PYTHONQT_LIBRARY_RELEASE)
|
||||
|
@ -66,7 +66,11 @@ Comment[ja]=Calamares — システムインストーラー
|
||||
Name[lt]=Calamares
|
||||
Icon[lt]=calamares
|
||||
GenericName[lt]=Sistemos diegimas į kompiuterį
|
||||
Comment[lt]=Calamares — sistemos diegyklė
|
||||
Comment[lt]=Calamares — Sistemos diegimo programa
|
||||
Name[nb]=Calamares
|
||||
Icon[nb]=calamares
|
||||
GenericName[nb]=Systeminstallatør
|
||||
Comment[nb]=Calamares-systeminstallatør
|
||||
Name[nl]=Calamares
|
||||
Icon[nl]=calamares
|
||||
GenericName[nl]=Installatieprogramma
|
||||
@ -81,8 +85,8 @@ GenericName[pt_BR]=Instalador de Sistema
|
||||
Comment[pt_BR]=Calamares — Instalador de Sistema
|
||||
Name[cs_CZ]=Calamares
|
||||
Icon[cs_CZ]=calamares
|
||||
GenericName[cs_CZ]=Instalační program systému
|
||||
Comment[cs_CZ]=Calamares - instalační program systému
|
||||
GenericName[cs_CZ]=Instalátor systému
|
||||
Comment[cs_CZ]=Calamares – instalátor operačních systémů
|
||||
Name[ru]=Calamares
|
||||
Icon[ru]=calamares
|
||||
GenericName[ru]=Установщик системы
|
||||
|
@ -1,9 +1,15 @@
|
||||
Hacking on Calamares
|
||||
====================
|
||||
|
||||
These are the guidelines for hacking on Calamares. Except for the licensing,
|
||||
which **must** be GPLv3+, these are guidelines and -- like PEP8 -- the most
|
||||
important thing is to know when you can ignore them.
|
||||
|
||||
|
||||
Licensing
|
||||
---------
|
||||
Calamares is released under the terms of the GNU GPL, version 3 or later. Every source file must have a license header, with a list of copyright holders and years.
|
||||
Calamares is released under the terms of the GNU GPL, version 3 or later.
|
||||
Every source file must have a license header, with a list of copyright holders and years.
|
||||
|
||||
Example:
|
||||
```
|
||||
@ -34,9 +40,9 @@ organization, etc.
|
||||
Please add your name to files you touch when making any contribution (even if
|
||||
it's just a typo-fix which might not be copyrightable in all jurisdictions).
|
||||
|
||||
Formatting
|
||||
----------
|
||||
|
||||
Formatting C++
|
||||
--------------
|
||||
This formatting guide applies to C++ code only; for Python modules, we use
|
||||
[pycodestyle][https://github.com/PyCQA/pycodestyle] to apply a check of
|
||||
some PEP8 guidelines.
|
||||
@ -48,10 +54,10 @@ some PEP8 guidelines.
|
||||
* No space before brackets, except for keywords, for example `function( argument )` but
|
||||
`if ( condition )`.
|
||||
* For pointer and reference variable declarations, put a space before the variable name
|
||||
and no space between the type and the `*` or `&`.
|
||||
* `for`, `if`, `else`, `while` and similar statements put the brackets on the next line,
|
||||
although brackets are not needed for single statements.
|
||||
* Function and class definitions have their brackets on separate lines.
|
||||
and no space between the type and the `*` or `&`, e.g. `int* p`.
|
||||
* `for`, `if`, `else`, `while` and similar statements put the braces on the next line,
|
||||
if the following block is more than one statement. Use no braces for single statements.
|
||||
* Function and class definitions have their braces on separate lines.
|
||||
* A function implementation's return type is on its own line.
|
||||
* `CamelCase.{cpp,h}` style file names.
|
||||
|
||||
@ -63,8 +69,9 @@ MyClass::myMethod( QStringList list, const QString& name )
|
||||
if ( list.isEmpty() )
|
||||
return false;
|
||||
|
||||
cDebug() << "Items in list ..";
|
||||
foreach ( const QString& string, list )
|
||||
cDebug() << "Current string is " << string;
|
||||
cDebug() << " .." << string;
|
||||
|
||||
switch ( m_enumValue )
|
||||
{
|
||||
@ -77,7 +84,7 @@ MyClass::myMethod( QStringList list, const QString& name )
|
||||
}
|
||||
```
|
||||
|
||||
You can use the `hacking/calamaresstyle` script to run
|
||||
You can use the `ci/calamaresstyle` script to run
|
||||
[astyle](http://astyle.sf.net) on your code and have it formatted the right
|
||||
way.
|
||||
|
||||
@ -85,6 +92,7 @@ way.
|
||||
order to take advantage of this functionality you will need to acquire the
|
||||
[EditorConfig](http://editorconfig.org/#download) plug-in for your editor.
|
||||
|
||||
|
||||
Naming
|
||||
------
|
||||
* Use CamelCase for everything.
|
||||
@ -97,6 +105,7 @@ Naming
|
||||
* If it's a getter for a boolean, prefix with 'is', so `isCondition()`.
|
||||
* A setter is `setVariable( arg )`.
|
||||
|
||||
|
||||
Includes
|
||||
--------
|
||||
Header includes should be listed in the following order:
|
||||
@ -109,8 +118,9 @@ Header includes should be listed in the following order:
|
||||
|
||||
They should also be sorted alphabetically for ease of locating them.
|
||||
|
||||
Includes in a header file should be kept to the absolute minimum, as to keep compile times short. This can be achieved by using forward declarations instead of includes,
|
||||
like `class QListView;`.
|
||||
Includes in a header file should be kept to the absolute minimum, as to keep
|
||||
compile times short. This can be achieved by using forward declarations
|
||||
instead of includes, like `class QListView;`.
|
||||
|
||||
Example:
|
||||
```
|
||||
@ -129,6 +139,7 @@ Example:
|
||||
|
||||
Use include guards, not `#pragma once`.
|
||||
|
||||
|
||||
C++ tips
|
||||
--------
|
||||
All C++11 features are acceptable, and the use of new C++11 features is encouraged when
|
||||
@ -141,8 +152,8 @@ range-based `for` syntax introduced with C++11 is preferred ([see this blog post
|
||||
|
||||
When re-implementing a virtual method, always add the `override` keyword.
|
||||
|
||||
Try to keep your code const correct. Declare methods const if they don't mutate the
|
||||
object, and use const variables. It improves safety, and also makes it easier to
|
||||
Try to keep your code const correct. Declare methods const if they don't mutate the
|
||||
object, and use const variables. It improves safety, and also makes it easier to
|
||||
understand the code.
|
||||
|
||||
For the Qt signal-slot system, the new (Qt5) syntax is to be preferred because it allows
|
||||
@ -160,10 +171,31 @@ connect( m_moduleManager, &Calamares::ModuleManager::modulesLoaded, [this]
|
||||
});
|
||||
```
|
||||
|
||||
Debugging
|
||||
---------
|
||||
Use `cDebug()` and `cLog()` from `utils/Logger.h`.
|
||||
|
||||
|
||||
[1]: http://blog.qt.digia.com/blog/2011/05/26/cpp0x-in-qt/
|
||||
[2]: http://qt-project.org/wiki/New_Signal_Slot_Syntax
|
||||
|
||||
|
||||
Debugging
|
||||
---------
|
||||
Use `cDebug()` and `cLog()` from `utils/Logger.h`. You can pass a debug-level to
|
||||
either macro (1 is debugging, higher is less important). Use `cLog()` for warning
|
||||
messages. It is recommended to add *WARNING* as the first part of a warning
|
||||
message.
|
||||
|
||||
For log messages that are continued across multiple calls to `cDebug()`,
|
||||
in particular listing things, conventional formatting is as follows:
|
||||
* End the first debug message with ` ..`
|
||||
* Indent following lines with ` ..`
|
||||
|
||||
|
||||
Commit Messages
|
||||
---------------
|
||||
Keep commit messages short(-ish) and try to describe what is being changed
|
||||
*as well as why*. Use the commit keywords for GitHub, especially *FIXES:*
|
||||
to auto-close issues when they are resolved.
|
||||
|
||||
For functional changes to Calamares modules or libraries, try to put
|
||||
*[modulename]* in front of the first line of the commit message.
|
||||
|
||||
For non-functional changes to infrastructure, try to label the change
|
||||
with the kind of change, e.g. *CMake* or *i18n* or *Documentation*.
|
||||
|
@ -2,7 +2,9 @@ The Calamares release process
|
||||
=============================
|
||||
|
||||
#### (0) A week in advance
|
||||
* Run [Coverity scan][coverity], fix what's relevant. The Coverity scan runs
|
||||
|
||||
* (Only releases from master)
|
||||
Run [Coverity scan][coverity], fix what's relevant. The Coverity scan runs
|
||||
automatically once a week on master.
|
||||
* Build with clang -Weverything, fix what's relevant.
|
||||
```
|
||||
@ -16,8 +18,10 @@ The Calamares release process
|
||||
```
|
||||
Note that *all* means all-that-make-sense. The partition-manager tests need
|
||||
an additional environment variable to be set for some tests, which will
|
||||
destroy an attached disk. This is not always desirable.
|
||||
* Notify [translators][transifex]. In the dashboard there is an *Announcements*
|
||||
destroy an attached disk. This is not always desirable. There are some
|
||||
sample config-files that are empty and which fail the config-tests.
|
||||
* (Only releases from master)
|
||||
Notify [translators][transifex]. In the dashboard there is an *Announcements*
|
||||
link that you can use to send a translation announcement.
|
||||
|
||||
[coverity]: https://scan.coverity.com/projects/calamares-calamares?tab=overview
|
||||
@ -27,17 +31,24 @@ The Calamares release process
|
||||
|
||||
* Bump version in `CMakeLists.txt`, *CALAMARES_VERSION* variables, and set
|
||||
RC to a non-zero value (e.g. doing -rc1, -rc2, ...). Push that.
|
||||
* Check `README.md` and everything in `hacking`, make sure it's all still
|
||||
relevant. Run `hacking/calamaresstyle` to check the C++ code style.
|
||||
Python code is checked as part of the Travis CI builds.
|
||||
* Check `README.md` and everything `ci/HACKING.md`, make sure it's all still
|
||||
relevant. Run `ci/calamaresstyle` to check the C++ code style.
|
||||
Run pycodestyle on recently-modified Python modules, fix what makes sense.
|
||||
* Check defaults in `settings.conf` and other configuration files.
|
||||
* Pull latest translations from Transifex. This is done nightly on Jenkins,
|
||||
so a manual pull is rarely necessary.
|
||||
* Update the list of enabled translation languages in `CMakeLists.txt`.
|
||||
* (Only releases from master)
|
||||
Pull latest translations from Transifex. We only push / pull translations
|
||||
from master, so longer-lived branches (e.g. 3.1.x) don't get translation
|
||||
updates. This is to keep the translation workflow simple.
|
||||
```
|
||||
sh ci/txpull.sh
|
||||
```
|
||||
* (Only releases from master)
|
||||
Update the list of enabled translation languages in `CMakeLists.txt`.
|
||||
Check the [translation site][transifex] for the list of languages with
|
||||
fairly complete translations.
|
||||
|
||||
#### (2) Tarball
|
||||
|
||||
* Create tarball: `git-archive-all -v calamares-1.1-rc1.tar.gz` or without
|
||||
the helper script,
|
||||
```
|
||||
@ -45,9 +56,10 @@ The Calamares release process
|
||||
git archive -o $V.tar.gz --prefix $V/ master
|
||||
```
|
||||
Double check that the tarball matches the version number.
|
||||
* Test tarball.
|
||||
* Test tarball (e.g. unpack somewhere else and run the tests from step 0).
|
||||
|
||||
#### (3) Tag
|
||||
|
||||
* Set RC to zero in `CMakeLists.txt` if this is the actual release.
|
||||
* `git tag -s v1.1.0` Make sure the signing key is known in GitHub, so that the
|
||||
tag is shown as a verified tag. Do not sign -rc tags.
|
||||
@ -57,6 +69,7 @@ The Calamares release process
|
||||
* Write release article.
|
||||
|
||||
#### (4) Release day
|
||||
|
||||
* Publish tarball.
|
||||
* Update download page.
|
||||
* Publish release article on `calamares.io`.
|
||||
|
@ -1,44 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Make sure we can make git operations from the Calamares Docker+Jenkins environment.
|
||||
cp ~/jenkins-master/.gitconfig ~
|
||||
cp -R ~/jenkins-master/.ssh ~
|
||||
|
||||
cd "$WORKSPACE"
|
||||
git config --global http.sslVerify false
|
||||
|
||||
rm -Rf "$WORKSPACE/prefix"
|
||||
mkdir "$WORKSPACE/prefix"
|
||||
|
||||
git clone git://anongit.kde.org/kpmcore "$WORKSPACE/kpmcore"
|
||||
cd "$WORKSPACE/kpmcore"
|
||||
mkdir "$WORKSPACE/kpmcore/build"
|
||||
cd "$WORKSPACE/kpmcore/build"
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ..
|
||||
nice -n 18 make -j2
|
||||
make DESTDIR="$WORKSPACE/prefix" install
|
||||
|
||||
cd "$WORKSPACE"
|
||||
|
||||
wget https://scan.coverity.com/download/cxx/linux64 --no-check-certificate \
|
||||
--post-data "token=ll90T04noQ4cORJx_zczKA&project=calamares%2Fcalamares" \
|
||||
-O coverity_tool.tar.gz
|
||||
mkdir "$WORKSPACE/coveritytool"
|
||||
tar xvf coverity_tool.tar.gz -C "$WORKSPACE/coveritytool" --strip-components 2
|
||||
export PATH="$WORKSPACE/coveritytool/bin:$PATH"
|
||||
|
||||
rm -Rf "$WORKSPACE/build"
|
||||
mkdir "$WORKSPACE/build"
|
||||
cd "$WORKSPACE/build"
|
||||
|
||||
CMAKE_PREFIX_PATH="$WORKSPACE/prefix/usr" cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DWEBVIEW_FORCE_WEBKIT=1 ..
|
||||
nice -n 18 cov-build --dir cov-int make -j2
|
||||
|
||||
tar caf calamares-ci.tar.xz cov-int
|
||||
|
||||
curl -k --form token=ll90T04noQ4cORJx_zczKA \
|
||||
--form email=teo@kde.org \
|
||||
--form file=@calamares-ci.tar.xz \
|
||||
--form version="master-`date -u +%Y%m%d`" \
|
||||
--form description="master on `date -u`" \
|
||||
https://scan.coverity.com/builds?project=calamares%2Fcalamares
|
@ -1,30 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#Hack for Coverity build, so the compiler doesn't complain about InheritanceChecker
|
||||
sudo cp ~/jenkins-master/kpluginfactory.h /usr/include/KF5/KCoreAddons
|
||||
|
||||
cd "$WORKSPACE"
|
||||
wget https://scan.coverity.com/download/cxx/linux64 --no-check-certificate \
|
||||
--post-data "token=cyOjQZx5EOFLdhfo7ZDa4Q&project=KDE+Partition+Manager+Core+Library+-+KPMcore" \
|
||||
-O coverity_tool.tar.gz
|
||||
mkdir "$WORKSPACE/coveritytool"
|
||||
tar xvf coverity_tool.tar.gz -C "$WORKSPACE/coveritytool" --strip-components 2
|
||||
export PATH="$WORKSPACE/coveritytool/bin:$PATH"
|
||||
|
||||
rm -Rf "$WORKSPACE/build"
|
||||
mkdir "$WORKSPACE/build"
|
||||
cd "$WORKSPACE/build"
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ..
|
||||
nice -n 18 cov-build --dir cov-int make -j2
|
||||
|
||||
tar cavf kpmcore-ci.tar.xz cov-int
|
||||
|
||||
cat cov-int/build-log.txt
|
||||
|
||||
curl -k --form token=cyOjQZx5EOFLdhfo7ZDa4Q \
|
||||
--form email=teo@kde.org \
|
||||
--form file=@kpmcore-ci.tar.xz \
|
||||
--form version="master-`date -u +%Y%m%d`" \
|
||||
--form description="master on `date -u`" \
|
||||
https://scan.coverity.com/builds?project=KDE+Partition+Manager+Core+Library+-+KPMcore
|
15
ci/travis-continuous.sh
Executable file
15
ci/travis-continuous.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Travis CI script for use on every-commit:
|
||||
# - build and install Calamares
|
||||
#
|
||||
test -n "$BUILDDIR" || exit 1
|
||||
test -n "$SRCDIR" || exit 1
|
||||
|
||||
test -d $BUILDDIR || exit 1
|
||||
test -d $SRCDIR || exit 1
|
||||
test -f $SRCDIR/CMakeLists.txt || exit 1
|
||||
|
||||
cd $BUILDDIR || exit 1
|
||||
|
||||
cmake -DWEBVIEW_FORCE_WEBKIT=1 -DKDE_INSTALL_USE_QT_SYS_PATHS=ON $SRCDIR && make -j2 && make install DESTDIR=/build/INSTALL_ROOT
|
34
ci/travis-coverity.sh
Executable file
34
ci/travis-coverity.sh
Executable file
@ -0,0 +1,34 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Travis CI script for weekly (cron) use:
|
||||
# - use the coverity tool to build and and upload results
|
||||
#
|
||||
test -n "$COVERITY_SCAN_TOKEN" || exit 1
|
||||
test -n "$BUILDDIR" || exit 1
|
||||
test -n "$SRCDIR" || exit 1
|
||||
|
||||
test -d $BUILDDIR || exit 1
|
||||
test -d $SRCDIR || exit 1
|
||||
test -f $SRCDIR/CMakeLists.txt || exit 1
|
||||
|
||||
cd $BUILDDIR || exit 1
|
||||
|
||||
curl -k -o coverity_tool.tar.gz \
|
||||
-d "token=$COVERITY_SCAN_TOKEN&project=calamares%2Fcalamares" \
|
||||
https://scan.coverity.com/download/cxx/linux64 || exit 1
|
||||
mkdir "$BUILDDIR/coveritytool"
|
||||
tar xvf coverity_tool.tar.gz -C "$BUILDDIR/coveritytool" --strip-components 2
|
||||
export PATH="$BUILDDIR/coveritytool/bin:$PATH"
|
||||
|
||||
|
||||
cmake -DCMAKE_BUILD_TYPE=Debug -DWEBVIEW_FORCE_WEBKIT=1 -DKDE_INSTALL_USE_QT_SYS_PATHS=ON $SRCDIR || exit 1
|
||||
cov-build --dir cov-int make -j2
|
||||
|
||||
tar caf calamares-ci.tar.xz cov-int
|
||||
|
||||
curl -k --form token=$COVERITY_SCAN_TOKEN \
|
||||
--form email=groot@kde.org \
|
||||
--form file=@calamares-ci.tar.xz \
|
||||
--form version="master-`date -u +%Y%m%d`" \
|
||||
--form description="master on `date -u`" \
|
||||
https://scan.coverity.com/builds?project=calamares%2Fcalamares
|
19
ci/travis.sh
Executable file
19
ci/travis.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Travis build driver script:
|
||||
# - the regular CI runs, triggered by commits, run a script that builds
|
||||
# and installs calamares, and then runs the tests.
|
||||
# - the cronjob CI runs, triggered weekly, run a script that uses the
|
||||
# coverity tools to submit a build. This is slightly more resource-
|
||||
# intensive than the coverity add-on, but works on master.
|
||||
#
|
||||
D=`dirname "$0"`
|
||||
test -d "$D" || exit 1
|
||||
test -x "$D/travis-continuous.sh" || exit 1
|
||||
test -x "$D/travis-coverity.sh" || exit 1
|
||||
|
||||
if test "$TRAVIS_EVENT_TYPE" = "cron" ; then
|
||||
exec "$D/travis-coverity.sh"
|
||||
else
|
||||
exec "$D/travis-continuous.sh"
|
||||
fi
|
@ -2225,12 +2225,12 @@ L'instal·lador es tancarà i tots els canvis es perdran.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>La contrasenya és massa curta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>La contrasenya és massa llarga.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -631,7 +631,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="73"/>
|
||||
<source>Creating new %1 partition on %2.</source>
|
||||
<translation>Opretter ny %1 partition på %2.</translation>
|
||||
<translation>Opretter ny %1-partition på %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="85"/>
|
||||
@ -692,12 +692,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="50"/>
|
||||
<source>Create new %1 partition table on %2.</source>
|
||||
<translation>Opret en ny %1 partitionstabel på %2.</translation>
|
||||
<translation>Opret en ny %1-partitionstabel på %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="57"/>
|
||||
<source>Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3).</source>
|
||||
<translation>Opret en ny <strong>%1</strong> partitionstabel på <strong>%2</strong> (%3).</translation>
|
||||
<translation>Opret en ny <strong>%1</strong>-partitionstabel på <strong>%2</strong> (%3).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="67"/>
|
||||
@ -984,7 +984,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="191"/>
|
||||
<source>Install %1 on <strong>new</strong> %2 system partition.</source>
|
||||
<translation>Installér %1 på <strong>nye</strong> %2-systempartition.</translation>
|
||||
<translation>Installér %1 på <strong>ny</strong> %2-systempartition.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
||||
@ -2225,12 +2225,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Adgangskoden er for kort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Adgangskoden er for lang</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2225,12 +2225,12 @@ L'installateur se fermera et les changements seront perdus.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Le mot de passe est trop court</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Le mot de passe est trop long</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1254,39 +1254,39 @@ O instalador pecharase e perderanse todos os cambios.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="387"/>
|
||||
<source>The system language will be set to %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A linguaxe do sistema será establecida a %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="389"/>
|
||||
<source>The numbers and dates locale will be set to %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A localización de números e datas será establecida a %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="215"/>
|
||||
<source>Region:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rexión:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="216"/>
|
||||
<source>Zone:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zona:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="220"/>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="221"/>
|
||||
<source>&Change...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Cambio...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="398"/>
|
||||
<source>Set timezone to %1/%2.<br/></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Establecer a zona de tempo a %1/%2.<br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="480"/>
|
||||
<source>%1 (%2)</source>
|
||||
<extracomment>Language (Country)</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 (%2)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1294,12 +1294,12 @@ O instalador pecharase e perderanse todos os cambios.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocaleViewStep.cpp" line="52"/>
|
||||
<source>Loading location data...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cargando datos de localización...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocaleViewStep.cpp" line="169"/>
|
||||
<source>Location</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Localización...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1307,48 +1307,48 @@ O instalador pecharase e perderanse todos os cambios.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="66"/>
|
||||
<source>Move file system of partition %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Move-lo sistema de ficheiro da partición %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="80"/>
|
||||
<source>Could not open file system on partition %1 for moving.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Non foi posible abri-lo sistema de ficheiros na partición %1 para move-lo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="86"/>
|
||||
<source>Could not create target for moving file system on partition %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Non foi posible crea-lo destino para move-lo sistema de ficheiros na partición %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="95"/>
|
||||
<source>Moving of partition %1 failed, changes have been rolled back.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Fallou move-la partición %1, desfixeronse os cambios.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="101"/>
|
||||
<source>Moving of partition %1 failed. Roll back of the changes have failed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Fallou move-la partición %1. Non se pudo desface-los cambios.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="113"/>
|
||||
<source>Updating boot sector after the moving of partition %1 failed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Actualizando o sector de arranque tra-lo fallo do movimento da partición %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="127"/>
|
||||
<source>The logical sector sizes in the source and target for copying are not the same. This is currently unsupported.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>O tamaño do sector lóxico na orixe e no destino para a copia non é o mesmo. Actualmente non é posible face-lo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="201"/>
|
||||
<source>Source and target for copying do not overlap: Rollback is not required.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Orixe e destino para copia non se superpoñen: Non cómpre desfacer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="225"/>
|
||||
<location filename="../src/modules/partition/jobs/MoveFileSystemJob.cpp" line="233"/>
|
||||
<source>Could not open device %1 to rollback copying.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Non se pudo abrir o dispositivo %1 para copia de respaldo.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1356,18 +1356,18 @@ O instalador pecharase e perderanse todos os cambios.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="79"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nome</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="80"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Descripción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="97"/>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="104"/>
|
||||
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Installación por rede. (Desactivadas. Non se pudo recupera-la lista de pacotes, comprobe a sua conexión a rede)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1375,7 +1375,7 @@ O instalador pecharase e perderanse todos os cambios.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="51"/>
|
||||
<source>Package selection</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Selección de pacotes.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1388,12 +1388,12 @@ O instalador pecharase e perderanse todos os cambios.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/KeyboardPage.ui" line="70"/>
|
||||
<source>Keyboard Model:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Modelo de teclado.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/KeyboardPage.ui" line="131"/>
|
||||
<source>Type here to test your keyboard</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Teclee aquí para comproba-lo seu teclado.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1406,49 +1406,49 @@ O instalador pecharase e perderanse todos os cambios.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="36"/>
|
||||
<source>What is your name?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cal é o seu nome?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="117"/>
|
||||
<source>What name do you want to use to log in?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cal é o nome que quere usar para entrar?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="306"/>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="437"/>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="582"/>
|
||||
<source>font-weight: normal</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tamaño de letra: normal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="200"/>
|
||||
<source><small>If more than one person will use this computer, you can set up multiple accounts after installation.</small></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><small>Se máis dunha persoa vai usa-lo computador, pode configurar contas múltiples trala instalción.</small></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="335"/>
|
||||
<source>Choose a password to keep your account safe.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Escolla un contrasinal para mante-la sua conta segura.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="440"/>
|
||||
<source><small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><small>Entre o mesmo contrasinal dúas veces, deste xeito podese comprobar errores ó teclear. Un bo contrasinal debe conter un conxunto de letras, números e signos de puntuación, deberá ter como mínimo oito carácteres, e debe cambiarse a intervalos de tempo regulares.</small></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="226"/>
|
||||
<source>What is the name of this computer?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Cal é o nome deste computador?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="309"/>
|
||||
<source><small>This name will be used if you make the computer visible to others on a network.</small></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><small>Este nome usarase se fai o computador visible para outros nunha rede.</small></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="450"/>
|
||||
<source>Log in automatically without asking for the password.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Entrar automáticamente sen preguntar polo contrasinal.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="457"/>
|
||||
|
@ -2225,12 +2225,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הסיסמה קצרה מדי</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הסיסמה ארוכה מדי</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2225,12 +2225,12 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.</translatio
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lozinka je prekratka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lozinka je preduga</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2291,7 +2291,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.</translatio
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>
|
||||
<source><h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="http://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software.</source>
|
||||
<translation><h1>%1</h1><br/><strong>%2<br/>za %3</strong><br/><br/>Autorska prava 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorska prava 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Zahvale: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg i <a href="https://www.transifex.com/calamares/calamares/">Calamares timu za prevođenje</a>.<br/><br/><a href="http://calamares.io/">Calamares</a>sponzorira <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software.</translation>
|
||||
<translation><h1>%1</h1><br/><strong>%2<br/>za %3</strong><br/><br/>Autorska prava 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorska prava 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Zahvale: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg i <a href="https://www.transifex.com/calamares/calamares/">Calamares timu za prevođenje</a>.<br/><br/><a href="http://calamares.io/">Calamares</a> sponzorira <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="201"/>
|
||||
|
@ -240,7 +240,7 @@ Išvestis:
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="301"/>
|
||||
<source>Cancel installation without changing the system.</source>
|
||||
<translation>Atsisakyti diegimo, nieko nekeisti sistemoje.</translation>
|
||||
<translation>Atsisakyti diegimo, nieko sistemoje nekeičiant.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="99"/>
|
||||
@ -277,7 +277,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="234"/>
|
||||
<source>The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong></source>
|
||||
<translation>%1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.<br/><strong>Negalėsite atšaukti šių pakeitimų.</strong></translation>
|
||||
<translation>%1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.<br/><strong>Šių pakeitimų atšaukti nebegalėsite.</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="239"/>
|
||||
@ -369,12 +369,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="113"/>
|
||||
<source>This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled.</source>
|
||||
<translation>Šis kompiuteris netenkina kai kurių %1 diegimui rekomenduojamų reikalavimų.<br/>Diegti galite, bet kai kurios funkcijos gali būti išjungtos.</translation>
|
||||
<translation>Šis kompiuteris netenkina kai kurių %1 diegimui rekomenduojamų reikalavimų.<br/>Diegimą galima tęsti, tačiau kai kurios funkcijos gali būti išjungtos.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="151"/>
|
||||
<source>This program will ask you some questions and set up %2 on your computer.</source>
|
||||
<translation>Programa užduos klausimus ir padės įsidiegti %2.</translation>
|
||||
<translation>Programa užduos kelis klausimus ir padės įsidiegti %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="174"/>
|
||||
@ -908,12 +908,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="70"/>
|
||||
<source>Format</source>
|
||||
<translation>Suženklinti</translation>
|
||||
<translation>Formatuoti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="89"/>
|
||||
<source>Warning: Formatting the partition will erase all existing data.</source>
|
||||
<translation>Įspėjimas: suženklinant skaidinį, sunaikinami visi jame esantys duomenys.</translation>
|
||||
<translation>Įspėjimas: Formatuojant skaidinį, sunaikinami visi jame esantys duomenys.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="99"/>
|
||||
@ -1058,22 +1058,22 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="49"/>
|
||||
<source>Format partition %1 (file system: %2, size: %3 MB) on %4.</source>
|
||||
<translation>Suženklinti skaidinį %1 (failų sistema: %2, dydis: %3 MB) diske %4.</translation>
|
||||
<translation>Formatuoti skaidinį %1 (failų sistema: %2, dydis: %3 MB) diske %4.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="60"/>
|
||||
<source>Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>.</source>
|
||||
<translation>Suženklinti <strong>%3MB</strong> skaidinį <strong>%1</strong> su failų sistema <strong>%2</strong>.</translation>
|
||||
<translation>Formatuoti <strong>%3MB</strong> skaidinį <strong>%1</strong> su failų sistema <strong>%2</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="71"/>
|
||||
<source>Formatting partition %1 with file system %2.</source>
|
||||
<translation>Suženklinamas skaidinys %1 su %2 failų sistema.</translation>
|
||||
<translation>Formatuojamas skaidinys %1 su %2 failų sistema.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="83"/>
|
||||
<source>The installer failed to format partition %1 on disk '%2'.</source>
|
||||
<translation>Diegimo programai nepavyko suženklinti „%2“ disko skaidinio %1.</translation>
|
||||
<translation>Diegimo programai nepavyko formatuoti „%2“ disko skaidinio %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="91"/>
|
||||
@ -1237,7 +1237,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="202"/>
|
||||
<source><a href="%1">view license agreement</a></source>
|
||||
<translation><a href="%1">žiūrėti licenciją</a></translation>
|
||||
<translation><a href="%1">žiūrėti licencijos sutartį</a></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1578,7 +1578,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="121"/>
|
||||
<source>&Delete</source>
|
||||
<translation>Ša&linti</translation>
|
||||
<translation>Iš&trinti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="148"/>
|
||||
@ -2225,12 +2225,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Slaptažodis yra per trumpas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Slaptažodis yra per ilgas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -37,12 +37,12 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="111"/>
|
||||
<source>Do not install a boot loader</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>आरंभ सूचक अधिष्ठापित करु नका</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="125"/>
|
||||
<source>%1 (%2)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 (%2)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -115,12 +115,12 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="51"/>
|
||||
<source>Run command %1 %2</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 %2 आज्ञा चालवा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="60"/>
|
||||
<source>Running command %1 %2</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 %2 आज्ञा चालवला जातोय</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="89"/>
|
||||
@ -137,17 +137,17 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="95"/>
|
||||
<source>External command failed to start</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>बाह्य आज्ञा सुरु करण्यात अपयश</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="96"/>
|
||||
<source>Command %1 failed to start.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 आज्ञा सुरु करण्यात अपयश</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="100"/>
|
||||
<source>Internal error when starting command</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>आज्ञा सुरु करताना अंतर्गत त्रुटी</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="101"/>
|
||||
@ -157,26 +157,30 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="104"/>
|
||||
<source>External command failed to finish</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>बाह्य आज्ञा पूर्ण करताना अपयश</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="105"/>
|
||||
<source>Command %1 failed to finish in %2s.
|
||||
Output:
|
||||
%3</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 ही आज्ञा %2s मधे पूर्ण करताना अपयश.
|
||||
आउटपुट :
|
||||
%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="111"/>
|
||||
<source>External command finished with errors</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>बाह्य आज्ञा त्रुट्यांसहित पूर्ण झाली</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="112"/>
|
||||
<source>Command %1 finished with exit code %2.
|
||||
Output:
|
||||
%3</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 ही आज्ञा %2 या निर्गम कोडसहित पूर्ण झाली.
|
||||
आउटपुट :
|
||||
%3</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -184,7 +188,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="265"/>
|
||||
<source>Running %1 operation.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 क्रिया चालवला जातोय</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="280"/>
|
||||
@ -217,29 +221,29 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="73"/>
|
||||
<source>&Back</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&मागे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="74"/>
|
||||
<source>&Next</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&पुढे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="75"/>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="300"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&रद्द करा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="301"/>
|
||||
<source>Cancel installation without changing the system.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>प्रणालीत बदल न करता अधिष्टापना रद्द करा.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="99"/>
|
||||
<source>Cancel installation?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>अधिष्ठापना रद्द करायचे?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="100"/>
|
||||
@ -250,17 +254,17 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="105"/>
|
||||
<source>&Yes</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&होय</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="106"/>
|
||||
<source>&No</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&नाही</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="183"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&बंद करा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="233"/>
|
||||
@ -275,32 +279,32 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="239"/>
|
||||
<source>&Install now</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&आता अधिष्ठापित करा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="240"/>
|
||||
<source>Go &back</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&मागे जा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="269"/>
|
||||
<source>&Done</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&पूर्ण झाली</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="270"/>
|
||||
<source>The installation is complete. Close the installer.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>अधिष्ठापना संपूर्ण झाली. अधिष्ठापक बंद करा.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="180"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>त्रुटी</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="181"/>
|
||||
<source>Installation Failed</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>अधिष्ठापना अयशस्वी झाली</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -331,7 +335,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="45"/>
|
||||
<source>%1 Installer</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 अधिष्ठापक</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="112"/>
|
||||
@ -344,12 +348,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CheckFileSystemJob.cpp" line="39"/>
|
||||
<source>Checking file system on partition %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 या विभाजनावरील फाइल प्रणाली तपासत आहे.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CheckFileSystemJob.cpp" line="77"/>
|
||||
<source>The file system check on partition %1 failed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 या विभाजनावरील प्रणाली विफल झाली.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -377,7 +381,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="202"/>
|
||||
<source>System requirements</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>प्रणालीची आवशक्यता</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -418,7 +422,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="950"/>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1029"/>
|
||||
<source>Current:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>सद्या :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="775"/>
|
||||
@ -541,7 +545,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="14"/>
|
||||
<source>Create a Partition</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>विभाजन निर्माण करा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="48"/>
|
||||
@ -551,12 +555,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="55"/>
|
||||
<source>Partition &Type:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>विभाजन &प्रकार :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="67"/>
|
||||
<source>&Primary</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&प्राथमिक</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="77"/>
|
||||
@ -591,12 +595,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="162"/>
|
||||
<source>Logical</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>तार्किक</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="167"/>
|
||||
<source>Primary</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>प्राथमिक</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="184"/>
|
||||
@ -624,7 +628,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="73"/>
|
||||
<source>Creating new %1 partition on %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%2 वर %1 हे नवीन विभाजन निर्माण करत आहे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="85"/>
|
||||
@ -657,7 +661,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionTableDialog.ui" line="20"/>
|
||||
<source>Create Partition Table</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>विभाजन कोष्टक निर्माण करा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/CreatePartitionTableDialog.ui" line="39"/>
|
||||
@ -1935,7 +1939,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/users/SetHostNameJob.cpp" line="61"/>
|
||||
<location filename="../src/modules/users/SetHostNameJob.cpp" line="68"/>
|
||||
<source>Internal Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>अंतर्गत त्रूटी </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetHostNameJob.cpp" line="75"/>
|
||||
@ -2133,7 +2137,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/SetTimezoneJob.cpp" line="43"/>
|
||||
<source>Set timezone to %1/%2</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1/%2 हा वेळक्षेत्र निश्चित करा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/SetTimezoneJob.cpp" line="71"/>
|
||||
@ -2148,7 +2152,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/SetTimezoneJob.cpp" line="86"/>
|
||||
<source>Cannot set timezone.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>वेळक्षेत्र निश्चित करु शकत नाही</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/SetTimezoneJob.cpp" line="87"/>
|
||||
@ -2158,12 +2162,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/SetTimezoneJob.cpp" line="96"/>
|
||||
<source>Cannot set timezone,</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>वेळक्षेत्र निश्चित करु शकत नाही,</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/SetTimezoneJob.cpp" line="97"/>
|
||||
<source>Cannot open /etc/timezone for writing</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation> /etc/timezone लिहिण्याकरिता उघडू शकत नाही</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2179,7 +2183,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/summary/SummaryViewStep.cpp" line="43"/>
|
||||
<source>Summary</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>सारांश</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2187,43 +2191,43 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="287"/>
|
||||
<source>Your username is too long.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>तुमचा वापरकर्तानाव खूप लांब आहे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="293"/>
|
||||
<source>Your username contains invalid characters. Only lowercase letters and numbers are allowed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>तुमच्या वापरकर्तानावात अवैध अक्षरे आहेत. फक्त अक्षरे, अंक आणि डॅश स्वीकारले जातील.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="331"/>
|
||||
<source>Your hostname is too short.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>तुमचा संगणकनाव खूप लहान आहे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="337"/>
|
||||
<source>Your hostname is too long.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>तुमचा संगणकनाव खूप लांब आहे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="343"/>
|
||||
<source>Your hostname contains invalid characters. Only letters, numbers and dashes are allowed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>तुमच्या संगणकनावात अवैध अक्षरे आहेत. फक्त अक्षरे, अंक आणि डॅश स्वीकारले जातील.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="371"/>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="415"/>
|
||||
<source>Your passwords do not match!</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>तुमचा परवलीशब्द जुळत नाही</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>परवलीशब्द खूप लहान आहे</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>परवलीशब्द खूप लांब आहे</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2231,7 +2235,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersViewStep.cpp" line="50"/>
|
||||
<source>Users</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>वापरकर्ते</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2239,47 +2243,47 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>स्वरुप</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="75"/>
|
||||
<source>&Language:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&भाषा :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="176"/>
|
||||
<source>&Release notes</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&प्रकाशन टिपा</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="166"/>
|
||||
<source>&Known issues</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&ज्ञात त्रुटी</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="156"/>
|
||||
<source>&Support</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 पाठबळ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="146"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&विषयी</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
|
||||
<source><h1>Welcome to the %1 installer.</h1></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>%1 अधिष्ठापकमधे स्वागत आहे.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
|
||||
<source><h1>Welcome to the Calamares installer for %1.</h1></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>%1 साठी असलेल्या अधिष्ठापकमध्ये स्वागत आहे.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="73"/>
|
||||
<source>About %1 installer</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 अधिष्ठापक बद्दल</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>
|
||||
@ -2289,7 +2293,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="201"/>
|
||||
<source>%1 support</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 पाठबळ</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2297,7 +2301,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomeViewStep.cpp" line="51"/>
|
||||
<source>Welcome</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>स्वागत</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -37,7 +37,7 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="111"/>
|
||||
<source>Do not install a boot loader</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ikke installer en oppstartslaster</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="125"/>
|
||||
@ -81,12 +81,12 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="71"/>
|
||||
<source>Interface:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Grensesnitt:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="93"/>
|
||||
<source>Tools</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Verktøy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.cpp" line="182"/>
|
||||
@ -99,7 +99,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="77"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Installer</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2225,12 +2225,12 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.</translatio
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hasło jest zbyt krótkie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Hasło jest zbyt długie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2227,12 +2227,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A senha é muito curta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A senha é muito longa</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -1162,12 +1162,12 @@ O instalador será encerrado e todas as alterações serão perdidas.</translati
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="66"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Cancelar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="67"/>
|
||||
<source>&OK</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2225,12 +2225,12 @@ O instalador será encerrado e todas as alterações serão perdidas.</translati
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A palavra-passe é demasiado curta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>A palavra-passe é demasiado longa</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2225,12 +2225,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Heslo je príliš krátke</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Heslo je príliš dlhé</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2304,7 +2304,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomeViewStep.cpp" line="51"/>
|
||||
<source>Welcome</source>
|
||||
<translation>Vitajte</translation>
|
||||
<translation>Uvítanie</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1162,12 +1162,12 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="66"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Avsluta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="67"/>
|
||||
<source>&OK</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Okej</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1185,17 +1185,17 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="115"/>
|
||||
<source><h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>Licensavtal</h1>Denna installationsprocedur kommer att installera proprietär mjukvara som omfattas av licensvillkor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="118"/>
|
||||
<source>Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Läs igenom End User Agreements (EULA:s) ovan.<br/>Om du inte accepterar villkoren kan inte installationsproceduren fortsätta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="124"/>
|
||||
<source><h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>Licensavtal</h1>Denna installationsprocedur kan installera proprietär mjukvara som omfattas av licensvillkor för att tillhandahålla ytterligare funktioner och förbättra användarupplevelsen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="129"/>
|
||||
@ -1253,7 +1253,7 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="387"/>
|
||||
<source>The system language will be set to %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Systemspråket kommer ändras till %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="389"/>
|
||||
@ -1285,7 +1285,7 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<location filename="../src/modules/locale/LocalePage.cpp" line="480"/>
|
||||
<source>%1 (%2)</source>
|
||||
<extracomment>Language (Country)</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 (%2)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1355,18 +1355,18 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="79"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Namn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="80"/>
|
||||
<source>Description</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Beskrivning</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="97"/>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="104"/>
|
||||
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nätverksinstallation. (Inaktiverad: Kan inte hämta paketlistor, kontrollera nätverksanslutningen)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1374,7 +1374,7 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="51"/>
|
||||
<source>Package selection</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Paketval</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1500,7 +1500,7 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionLabelsView.cpp" line="207"/>
|
||||
<source>New partition</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ny partition</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionLabelsView.cpp" line="224"/>
|
||||
@ -1858,7 +1858,7 @@ Alla ändringar kommer att gå förlorade.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/RequirementsChecker.cpp" line="156"/>
|
||||
<source>The screen is too small to display the installer.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Skärmen är för liten för att visa installationshanteraren.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2230,12 +2230,12 @@ Sistem güç kaynağına bağlı değil.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Şifre çok kısa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Şifre çok uzun</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -4,17 +4,17 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="69"/>
|
||||
<source>The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>Завантажувальне середовище</strong> цієї системи.<br><br>Старі x86-системи підтримують тільки <strong>BIOS</strong>.<br>Нові системи зазвичай використовують<strong>EFI</strong>, проте можуть також відображатися як BIOS, якщо запущені у режимі сумісності.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="79"/>
|
||||
<source>This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Цю систему було запущено із завантажувальним середовищем <strong>EFI</strong>.<br><br>Щоб налаштувати завантаження з середовища EFI, установник повинен встановити на <strong>Системний Розділ EFI</strong> програму-завантажувач таку, як <strong>GRUB</strong> або <strong>systemd-boot</strong>. Це буде зроблено автоматично, якщо ви не обрали розподілення диску вручну. В останньому випадку вам потрібно обрати завантажувач або встановити його власноруч.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="91"/>
|
||||
<source>This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Цю систему було запущено із завантажувальним середовищем <strong>BIOS</strong>.<br><br>Щоб налаштувати завантаження з середовища BIOS, установник повинен встановити завантажувач, такий, як <strong>GRUB</strong> або на початку розділу або у <strong>Головний Завантажувальний Запис (Master Boot Record)</strong> біля початку таблиці розділів (рекомендовано). Це буде зроблено автотматично, якщо ви не обрали розподілення диску вручну. В останньому випадку вам потрібно встановити завантажувач власноруч.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -22,7 +22,7 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="59"/>
|
||||
<source>Master Boot Record of %1</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Головний Завантажувальний Запис (Master Boot Record) %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="76"/>
|
||||
@ -37,12 +37,12 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="111"/>
|
||||
<source>Do not install a boot loader</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Не встановлювати завантажувач</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="125"/>
|
||||
<source>%1 (%2)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 (%2)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -50,48 +50,48 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Форма</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="24"/>
|
||||
<source>GlobalStorage</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Глобальне сховище</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="34"/>
|
||||
<source>JobQueue</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Черга завдань</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="44"/>
|
||||
<source>Modules</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Модулі</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="57"/>
|
||||
<source>Type:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Тип:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="64"/>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="78"/>
|
||||
<source>none</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>немає</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="71"/>
|
||||
<source>Interface:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Інтерфейс:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="93"/>
|
||||
<source>Tools</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Інструменти</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.cpp" line="182"/>
|
||||
<source>Debug information</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Відлагоджувальна інформація</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -99,7 +99,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="77"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Встановити</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -115,68 +115,74 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="51"/>
|
||||
<source>Run command %1 %2</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Запустити команду %1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="60"/>
|
||||
<source>Running command %1 %2</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Запуск команди %1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="89"/>
|
||||
<source>External command crashed</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Зовнішня команда завершилася аварією</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="90"/>
|
||||
<source>Command %1 crashed.
|
||||
Output:
|
||||
%2</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Команда %1 завершилася аварією.
|
||||
Вивід:
|
||||
%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="95"/>
|
||||
<source>External command failed to start</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Не вдалося запустити зовнішню команду</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="96"/>
|
||||
<source>Command %1 failed to start.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Не вдалося запустити команду %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="100"/>
|
||||
<source>Internal error when starting command</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Внутрішня помилка під час запуску команди</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="101"/>
|
||||
<source>Bad parameters for process job call.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Неправильні параметри визову завдання обробки.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="104"/>
|
||||
<source>External command failed to finish</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Не вдалося завершити зовнішню команду</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="105"/>
|
||||
<source>Command %1 failed to finish in %2s.
|
||||
Output:
|
||||
%3</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Не вдалося завершити зовнішню команду %1 протягом %2с.
|
||||
Вивід:
|
||||
%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="111"/>
|
||||
<source>External command finished with errors</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Зовнішня програма завершилася з помилками</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="112"/>
|
||||
<source>Command %1 finished with exit code %2.
|
||||
Output:
|
||||
%3</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Команда %1 завершилася з кодом %2.
|
||||
Вивід:
|
||||
%3</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -184,32 +190,32 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="265"/>
|
||||
<source>Running %1 operation.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Запуск операції %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="280"/>
|
||||
<source>Bad working directory path</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Неправильний шлях робочого каталогу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="281"/>
|
||||
<source>Working directory %1 for python job %2 is not readable.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Неможливо прочитати робочу директорію %1 для завдання python %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="291"/>
|
||||
<source>Bad main script file</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Неправильний файл головного сценарію</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="292"/>
|
||||
<source>Main script file %1 for python job %2 is not readable.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Неможливо прочитати файл головного сценарію %1 для завдання python %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonJob.cpp" line="368"/>
|
||||
<source>Boost.Python error in job "%1".</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Помилка Boost.Python у завданні "%1".</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -217,90 +223,91 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="73"/>
|
||||
<source>&Back</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Назад</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="74"/>
|
||||
<source>&Next</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Вперед</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="75"/>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="300"/>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Скасувати</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="301"/>
|
||||
<source>Cancel installation without changing the system.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Скасувати встановлення без змінення системи.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="99"/>
|
||||
<source>Cancel installation?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Скасувати встановлення?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="100"/>
|
||||
<source>Do you really want to cancel the current install process?
|
||||
The installer will quit and all changes will be lost.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Чи ви насправді бажаєте скасувати процес встановлення?
|
||||
Установник закриється і всі зміни буде втрачено.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="105"/>
|
||||
<source>&Yes</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Так</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="106"/>
|
||||
<source>&No</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Ні</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="183"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Закрити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="233"/>
|
||||
<source>Continue with setup?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Продовжити встановлення?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="234"/>
|
||||
<source>The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Установник %1 збирається зробити зміни на вашому диску, щоб встановити %2.<br/><strong>Ці зміни неможливо буде повернути.</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="239"/>
|
||||
<source>&Install now</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Встановити зараз</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="240"/>
|
||||
<source>Go &back</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Перейти &назад</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="269"/>
|
||||
<source>&Done</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Закінчити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="270"/>
|
||||
<source>The installation is complete. Close the installer.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Встановлення виконано. Закрити установник.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="180"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Помилка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="181"/>
|
||||
<source>Installation Failed</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Втановлення завершилося невдачею</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -308,22 +315,22 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonHelper.cpp" line="263"/>
|
||||
<source>Unknown exception type</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Невідомий тип виключної ситуації</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonHelper.cpp" line="276"/>
|
||||
<source>unparseable Python error</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>нерозбірлива помилка Python</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonHelper.cpp" line="292"/>
|
||||
<source>unparseable Python traceback</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>нерозбірливе відстеження помилки Python</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/PythonHelper.cpp" line="296"/>
|
||||
<source>Unfetchable Python error.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Помилка Python, інформацію про яку неможливо отримати.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -336,7 +343,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="112"/>
|
||||
<source>Show debug information</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Показати відлагоджувальну інформацію</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -344,12 +351,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CheckFileSystemJob.cpp" line="39"/>
|
||||
<source>Checking file system on partition %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Перевірка файлової системи на розділі %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CheckFileSystemJob.cpp" line="77"/>
|
||||
<source>The file system check on partition %1 failed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Перевірка файлової системи на розділі %1 завершилася невдачею.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -2225,12 +2225,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="494"/>
|
||||
<source>Password is too short</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>密碼太短</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="513"/>
|
||||
<source>Password is too long</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>密碼太長</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
Binary file not shown.
@ -10,7 +10,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-28 10:35-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: pavelrz <pavel@rzehak.cz>, 2017\n"
|
||||
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2017\n"
|
||||
"Language-Team: Czech (Czech Republic) (https://www.transifex.com/calamares/teams/20061/cs_CZ/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -21,23 +21,23 @@ msgstr ""
|
||||
#: src/modules/packages/main.py:59
|
||||
#, python-format
|
||||
msgid "Processing packages (%(count)d / %(total)d)"
|
||||
msgstr ""
|
||||
msgstr "Zpracovávání balíčků (%(count)d / %(total)d)"
|
||||
|
||||
#: src/modules/packages/main.py:61
|
||||
#, python-format
|
||||
msgid "Installing one package."
|
||||
msgid_plural "Installing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[0] "Je instalován jeden balíček."
|
||||
msgstr[1] "Jsou instalovány %(num)d balíčky."
|
||||
msgstr[2] "Je instalováno %(num)d balíčků."
|
||||
|
||||
#: src/modules/packages/main.py:64
|
||||
#, python-format
|
||||
msgid "Removing one package."
|
||||
msgid_plural "Removing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[2] ""
|
||||
msgstr[0] "Odebírá se jeden balíček."
|
||||
msgstr[1] "Odebírají se %(num)d balíčky."
|
||||
msgstr[2] "Odebírá se %(num)d balíčků."
|
||||
|
||||
#: src/modules/packages/main.py:68
|
||||
msgid "Install packages."
|
||||
@ -53,4 +53,4 @@ msgstr "Testovací krok {} python."
|
||||
|
||||
#: src/modules/machineid/main.py:35
|
||||
msgid "Generate machine-id."
|
||||
msgstr "Vytvořit machine-id."
|
||||
msgstr "Vytvořit identifikátor stroje."
|
||||
|
Binary file not shown.
@ -28,7 +28,7 @@ msgstr "Forarbejder pakker (%(count)d / %(total)d)"
|
||||
msgid "Installing one package."
|
||||
msgid_plural "Installing %(num)d packages."
|
||||
msgstr[0] "Installerer én pakke."
|
||||
msgstr[1] "Installer %(num)d pakker."
|
||||
msgstr[1] "Installerer %(num)d pakker."
|
||||
|
||||
#: src/modules/packages/main.py:64
|
||||
#, python-format
|
||||
|
Binary file not shown.
@ -10,6 +10,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-28 10:35-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Paul Combal <abonnementspaul@gmail.com>, 2017\n"
|
||||
"Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -20,7 +21,7 @@ msgstr ""
|
||||
#: src/modules/packages/main.py:59
|
||||
#, python-format
|
||||
msgid "Processing packages (%(count)d / %(total)d)"
|
||||
msgstr ""
|
||||
msgstr "Traitement des paquets (%(count)d / %(total)d)"
|
||||
|
||||
#: src/modules/packages/main.py:61
|
||||
#, python-format
|
||||
@ -38,7 +39,7 @@ msgstr[1] ""
|
||||
|
||||
#: src/modules/packages/main.py:68
|
||||
msgid "Install packages."
|
||||
msgstr ""
|
||||
msgstr "Installer des paquets."
|
||||
|
||||
#: src/modules/dummypython/main.py:44
|
||||
msgid "Dummy python job."
|
||||
@ -50,4 +51,4 @@ msgstr ""
|
||||
|
||||
#: src/modules/machineid/main.py:35
|
||||
msgid "Generate machine-id."
|
||||
msgstr ""
|
||||
msgstr "Générer un machine-id."
|
||||
|
Binary file not shown.
@ -10,6 +10,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-28 10:35-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Tyler Moss <inactive+lazerbeta@transifex.com>, 2017\n"
|
||||
"Language-Team: Norwegian Bokmål (https://www.transifex.com/calamares/teams/20061/nb/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -38,7 +39,7 @@ msgstr[1] ""
|
||||
|
||||
#: src/modules/packages/main.py:68
|
||||
msgid "Install packages."
|
||||
msgstr ""
|
||||
msgstr "Installer pakker."
|
||||
|
||||
#: src/modules/dummypython/main.py:44
|
||||
msgid "Dummy python job."
|
||||
@ -50,4 +51,4 @@ msgstr ""
|
||||
|
||||
#: src/modules/machineid/main.py:35
|
||||
msgid "Generate machine-id."
|
||||
msgstr ""
|
||||
msgstr "Generer maskin-ID."
|
||||
|
@ -8,10 +8,17 @@ componentName: default
|
||||
# same distribution.
|
||||
welcomeStyleCalamares: false
|
||||
|
||||
# Should the welcome image (productWelcome, below) be scaled
|
||||
# up beyond its natural size?
|
||||
welcomeExpandingLogo: true
|
||||
|
||||
# These are strings shown to the user in the user interface.
|
||||
# There is no provision for translating them -- since they
|
||||
# are names, the string is included as-is.
|
||||
#
|
||||
# The four Url strings are the Urls used by the buttons in
|
||||
# the welcome screen, and are not shown to the user. Clicking
|
||||
# on the "Support" button, for instance, opens the link supportUrl.
|
||||
# If a Url is empty, the corresponding button is not shown.
|
||||
#
|
||||
# bootloaderEntryName is how this installation / distro is named
|
||||
# in the boot loader (e.g. in the GRUB menu).
|
||||
strings:
|
||||
productName: Generic GNU/Linux
|
||||
shortProductName: Generic
|
||||
@ -25,11 +32,33 @@ strings:
|
||||
knownIssuesUrl: http://calamares.io/about/
|
||||
releaseNotesUrl: http://calamares.io/about/
|
||||
|
||||
# Should the welcome image (productWelcome, below) be scaled
|
||||
# up beyond its natural size? If false, the image does not grow
|
||||
# with the window but remains the same size throughout (this
|
||||
# may have surprising effects on HiDPI monitors).
|
||||
welcomeExpandingLogo: true
|
||||
|
||||
# These images are loaded from the branding module directory.
|
||||
#
|
||||
# productIcon is used as the window icon, and will (usually) be used
|
||||
# by the window manager to represent the application. This image
|
||||
# should be square, and may be displayed by the window manager
|
||||
# as small as 16x16 (but possibly larger).
|
||||
# productLogo is used as the logo at the top of the left-hand column
|
||||
# which shows the steps to be taken. The image should be square,
|
||||
# and is displayed at 80x80 pixels (also on HiDPI).
|
||||
# productWelcome is shown on the welcome page of the application in
|
||||
# the middle of the window, below the welcome text. It can be
|
||||
# any size and proportion, and will be scaled to fit inside
|
||||
# the window. Use `welcomeExpandingLogo` to make it non-scaled.
|
||||
# Recommended size is 320x150.
|
||||
images:
|
||||
productLogo: "squid.png"
|
||||
productIcon: "squid.png"
|
||||
productWelcome: "languages.png"
|
||||
|
||||
# The slideshow is displayed during execution steps (e.g. when the
|
||||
# installer is actually writing to disk and doing other slow things).
|
||||
slideshow: "show.qml"
|
||||
|
||||
# Colors for text and background components.
|
||||
|
@ -96,7 +96,7 @@ CalamaresWindow::CalamaresWindow( QWidget* parent )
|
||||
logoLabel->setAlignment( Qt::AlignCenter );
|
||||
logoLabel->setFixedSize( 80, 80 );
|
||||
logoLabel->setPixmap( Calamares::Branding::instance()->
|
||||
image( Calamares::Branding::ProductIcon,
|
||||
image( Calamares::Branding::ProductLogo,
|
||||
logoLabel->size() ) );
|
||||
logoLayout->addWidget( logoLabel );
|
||||
logoLayout->addStretch();
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
#endif
|
||||
}
|
||||
|
||||
void setJobs( const QList< job_ptr >& jobs )
|
||||
void setJobs( const JobList& jobs )
|
||||
{
|
||||
m_jobs = jobs;
|
||||
}
|
||||
@ -73,7 +73,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
QList< job_ptr > m_jobs;
|
||||
JobList m_jobs;
|
||||
JobQueue* m_queue;
|
||||
int m_jobIndex;
|
||||
|
||||
@ -164,7 +164,7 @@ JobQueue::enqueue( const job_ptr& job )
|
||||
|
||||
|
||||
void
|
||||
JobQueue::enqueue( const QList< job_ptr >& jobs )
|
||||
JobQueue::enqueue( const JobList& jobs )
|
||||
{
|
||||
Q_ASSERT( !m_thread->isRunning() );
|
||||
m_jobs.append( jobs );
|
||||
|
@ -42,11 +42,11 @@ public:
|
||||
GlobalStorage* globalStorage() const;
|
||||
|
||||
void enqueue( const job_ptr& job );
|
||||
void enqueue( const QList< job_ptr >& jobs );
|
||||
void enqueue( const JobList& jobs );
|
||||
void start();
|
||||
|
||||
signals:
|
||||
void queueChanged( const QList< job_ptr >& jobs );
|
||||
void queueChanged( const JobList& jobs );
|
||||
void progress( qreal percent, const QString& prettyName );
|
||||
void finished();
|
||||
void failed( const QString& message, const QString& details );
|
||||
@ -54,7 +54,7 @@ signals:
|
||||
private:
|
||||
static JobQueue* s_instance;
|
||||
|
||||
QList< job_ptr > m_jobs;
|
||||
JobList m_jobs;
|
||||
JobThread* m_thread;
|
||||
GlobalStorage* m_storage;
|
||||
};
|
||||
|
@ -19,6 +19,7 @@
|
||||
#ifndef TYPEDEFS_H
|
||||
#define TYPEDEFS_H
|
||||
|
||||
#include <QList>
|
||||
#include <QSharedPointer>
|
||||
|
||||
namespace Calamares
|
||||
@ -26,6 +27,7 @@ namespace Calamares
|
||||
class Job;
|
||||
|
||||
typedef QSharedPointer< Job > job_ptr;
|
||||
using JobList = QList< job_ptr >;
|
||||
|
||||
enum ModuleAction : char
|
||||
{
|
||||
|
@ -326,5 +326,35 @@ crash()
|
||||
*a = 1;
|
||||
}
|
||||
|
||||
bool
|
||||
getBool( const QVariantMap& map, const QString& key, bool d )
|
||||
{
|
||||
bool result = d;
|
||||
if ( map.contains( key ) )
|
||||
{
|
||||
auto v = map.value( key );
|
||||
if ( v.type() == QVariant::Bool )
|
||||
result = v.toBool();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
QVariantMap
|
||||
getSubMap( const QVariantMap& map, const QString& key, bool& success )
|
||||
{
|
||||
success = false;
|
||||
|
||||
if ( map.contains( key ) )
|
||||
{
|
||||
auto v = map.value( key );
|
||||
if ( v.type() == QVariant::Map )
|
||||
{
|
||||
success = true;
|
||||
return v.toMap();
|
||||
}
|
||||
}
|
||||
return QVariantMap();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -97,6 +97,22 @@ namespace CalamaresUtils
|
||||
* @brief crash makes Calamares crash immediately.
|
||||
*/
|
||||
DLLEXPORT void crash();
|
||||
|
||||
/**
|
||||
* Get a bool value from a mapping with a given key; returns the default
|
||||
* if no value is stored in the map.
|
||||
*/
|
||||
DLLEXPORT bool getBool( const QVariantMap& map, const QString& key, bool d );
|
||||
|
||||
/**
|
||||
* Returns a sub-map (i.e. a nested map) from the given mapping with the
|
||||
* given key. @p success is set to true if the @p key exists
|
||||
* in @p map and converts to a map, false otherwise.
|
||||
*
|
||||
* Returns an empty map if there is no such key or it is not a map-value.
|
||||
* (e.g. if @p success is false).
|
||||
*/
|
||||
DLLEXPORT QVariantMap getSubMap( const QVariantMap& map, const QString& key, bool& success );
|
||||
}
|
||||
|
||||
#endif // CALAMARESUTILS_H
|
||||
|
@ -72,9 +72,10 @@ calamares_add_library( calamaresui
|
||||
EXPORT_MACRO UIDLLEXPORT_PRO
|
||||
LINK_PRIVATE_LIBRARIES
|
||||
${YAMLCPP_LIBRARY}
|
||||
${OPTIONAL_PRIVATE_LIBRARIES}
|
||||
LINK_LIBRARIES
|
||||
Qt5::Svg
|
||||
Qt5::QuickWidgets
|
||||
${OPTIONAL_PRIVATE_LIBRARIES}
|
||||
RESOURCES libcalamaresui.qrc
|
||||
EXPORT CalamaresLibraryDepends
|
||||
VERSION ${CALAMARES_VERSION_SHORT}
|
||||
|
@ -148,10 +148,10 @@ ExecutionViewStep::onActivate()
|
||||
}
|
||||
|
||||
|
||||
QList< Calamares::job_ptr >
|
||||
JobList
|
||||
ExecutionViewStep::jobs() const
|
||||
{
|
||||
return QList< Calamares::job_ptr >();
|
||||
return JobList();
|
||||
}
|
||||
|
||||
|
||||
|
@ -52,7 +52,7 @@ public:
|
||||
|
||||
void onActivate() override;
|
||||
|
||||
QList< job_ptr > jobs() const override;
|
||||
JobList jobs() const override;
|
||||
|
||||
void appendJobModuleInstanceKey( const QString& instanceKey );
|
||||
|
||||
|
@ -75,10 +75,10 @@ CppJobModule::loadSelf()
|
||||
}
|
||||
|
||||
|
||||
QList< job_ptr >
|
||||
JobList
|
||||
CppJobModule::jobs() const
|
||||
{
|
||||
return QList< job_ptr >() << m_job;
|
||||
return JobList() << m_job;
|
||||
}
|
||||
|
||||
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
Interface interface() const override;
|
||||
|
||||
void loadSelf() override;
|
||||
QList< job_ptr > jobs() const override;
|
||||
JobList jobs() const override;
|
||||
|
||||
protected:
|
||||
void initFrom( const QVariantMap& moduleDescriptor ) override;
|
||||
|
@ -70,7 +70,6 @@ public:
|
||||
ProcessInterface,
|
||||
PythonQtInterface
|
||||
};
|
||||
virtual ~Module();
|
||||
|
||||
/**
|
||||
* @brief fromDescriptor creates a new Module object of the correct type.
|
||||
@ -84,6 +83,7 @@ public:
|
||||
const QString& instanceId,
|
||||
const QString& configFileName,
|
||||
const QString& moduleDirectory );
|
||||
virtual ~Module();
|
||||
|
||||
/**
|
||||
* @brief name returns the name of this module.
|
||||
@ -159,7 +159,7 @@ public:
|
||||
* @brief jobs returns any jobs exposed by this module.
|
||||
* @return a list of jobs (can be empty).
|
||||
*/
|
||||
virtual QList< job_ptr > jobs() const = 0;
|
||||
virtual JobList jobs() const = 0;
|
||||
|
||||
/**
|
||||
* @brief configurationMap returns the contents of the configuration file for
|
||||
|
@ -53,10 +53,10 @@ ProcessJobModule::loadSelf()
|
||||
}
|
||||
|
||||
|
||||
QList< job_ptr >
|
||||
JobList
|
||||
ProcessJobModule::jobs() const
|
||||
{
|
||||
return QList< job_ptr >() << m_job;
|
||||
return JobList() << m_job;
|
||||
}
|
||||
|
||||
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
Interface interface() const override;
|
||||
|
||||
void loadSelf() override;
|
||||
QList< job_ptr > jobs() const override;
|
||||
JobList jobs() const override;
|
||||
|
||||
protected:
|
||||
void initFrom( const QVariantMap& moduleDescriptor ) override;
|
||||
|
@ -53,10 +53,10 @@ PythonJobModule::loadSelf()
|
||||
}
|
||||
|
||||
|
||||
QList< job_ptr >
|
||||
JobList
|
||||
PythonJobModule::jobs() const
|
||||
{
|
||||
return QList< job_ptr >() << m_job;
|
||||
return JobList() << m_job;
|
||||
}
|
||||
|
||||
|
||||
|
@ -32,7 +32,7 @@ public:
|
||||
Interface interface() const override;
|
||||
|
||||
void loadSelf() override;
|
||||
QList< job_ptr > jobs() const override;
|
||||
JobList jobs() const override;
|
||||
|
||||
protected:
|
||||
void initFrom( const QVariantMap& moduleDescriptor ) override;
|
||||
|
@ -171,7 +171,7 @@ PythonQtViewModule::loadSelf()
|
||||
}
|
||||
|
||||
|
||||
QList< job_ptr >
|
||||
JobList
|
||||
PythonQtViewModule::jobs() const
|
||||
{
|
||||
return m_viewStep->jobs();
|
||||
|
@ -33,7 +33,7 @@ public:
|
||||
Interface interface() const override;
|
||||
|
||||
void loadSelf() override;
|
||||
QList< job_ptr > jobs() const override;
|
||||
JobList jobs() const override;
|
||||
|
||||
protected:
|
||||
void initFrom( const QVariantMap& moduleDescriptor ) override;
|
||||
|
@ -76,7 +76,7 @@ ViewModule::loadSelf()
|
||||
}
|
||||
|
||||
|
||||
QList< job_ptr >
|
||||
JobList
|
||||
ViewModule::jobs() const
|
||||
{
|
||||
return m_viewStep->jobs();
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
Interface interface() const override;
|
||||
|
||||
void loadSelf() override;
|
||||
QList< job_ptr > jobs() const override;
|
||||
JobList jobs() const override;
|
||||
|
||||
protected:
|
||||
void initFrom( const QVariantMap& moduleDescriptor ) override;
|
||||
|
@ -62,7 +62,7 @@ DebugWindow::DebugWindow()
|
||||
// JobQueue page
|
||||
jobQueueText->setReadOnly( true );
|
||||
connect( JobQueue::instance(), &JobQueue::queueChanged,
|
||||
this, [ this ]( const QList< Calamares::job_ptr >& jobs )
|
||||
this, [ this ]( const JobList& jobs )
|
||||
{
|
||||
QStringList text;
|
||||
for ( const auto &job : jobs )
|
||||
|
@ -26,11 +26,9 @@
|
||||
#include "qjsonitem.h"
|
||||
|
||||
QJsonTreeItem::QJsonTreeItem(QJsonTreeItem *parent)
|
||||
: mParent( parent )
|
||||
, mType( QJsonValue::Type::Null )
|
||||
{
|
||||
|
||||
mParent = parent;
|
||||
|
||||
|
||||
}
|
||||
|
||||
QJsonTreeItem::~QJsonTreeItem()
|
||||
|
@ -33,14 +33,19 @@
|
||||
|
||||
QJsonModel::QJsonModel(QObject *parent) :
|
||||
QAbstractItemModel(parent)
|
||||
, mRootItem( new QJsonTreeItem )
|
||||
{
|
||||
mRootItem = new QJsonTreeItem;
|
||||
mHeaders.append("key");
|
||||
mHeaders.append("value");
|
||||
|
||||
|
||||
}
|
||||
|
||||
QJsonModel::~QJsonModel()
|
||||
{
|
||||
delete mRootItem;
|
||||
}
|
||||
|
||||
bool QJsonModel::load(const QString &fileName)
|
||||
{
|
||||
QFile file(fileName);
|
||||
@ -66,6 +71,7 @@ bool QJsonModel::loadJson(const QByteArray &json)
|
||||
if (!mDocument.isNull())
|
||||
{
|
||||
beginResetModel();
|
||||
delete mRootItem;
|
||||
if (mDocument.isArray()) {
|
||||
mRootItem = QJsonTreeItem::load(QJsonValue(mDocument.array()));
|
||||
} else {
|
||||
|
@ -17,6 +17,7 @@ class QJsonModel : public QAbstractItemModel
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QJsonModel(QObject *parent = 0);
|
||||
~QJsonModel();
|
||||
bool load(const QString& fileName);
|
||||
bool load(QIODevice * device);
|
||||
bool loadJson(const QByteArray& json);
|
||||
|
@ -159,10 +159,10 @@ PythonQtViewStep::isAtEnd() const
|
||||
}
|
||||
|
||||
|
||||
QList< Calamares::job_ptr >
|
||||
JobList
|
||||
PythonQtViewStep::jobs() const
|
||||
{
|
||||
QList< Calamares::job_ptr > jobs;
|
||||
JobList jobs;
|
||||
|
||||
PythonQtObjectPtr jobsCallable = PythonQt::self()->lookupCallable( m_obj, "jobs" );
|
||||
if ( jobsCallable.isNull() )
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
bool isAtBeginning() const override;
|
||||
bool isAtEnd() const override;
|
||||
|
||||
QList< Calamares::job_ptr > jobs() const override;
|
||||
JobList jobs() const override;
|
||||
|
||||
void setConfigurationMap( const QVariantMap& configurationMap ) override;
|
||||
|
||||
|
@ -91,7 +91,7 @@ public:
|
||||
*/
|
||||
virtual void onLeave();
|
||||
|
||||
virtual QList< job_ptr > jobs() const = 0;
|
||||
virtual JobList jobs() const = 0;
|
||||
|
||||
void setModuleInstanceKey( const QString& instanceKey );
|
||||
QString moduleInstanceKey() const
|
||||
|
@ -1,5 +1,11 @@
|
||||
include( CMakeColors )
|
||||
|
||||
if( BUILD_TESTING )
|
||||
add_executable( test_conf test_conf.cpp )
|
||||
target_link_libraries( test_conf ${YAMLCPP_LIBRARY} )
|
||||
target_include_directories( test_conf PUBLIC ${YAMLCPP_INCLUDE_DIR} )
|
||||
endif()
|
||||
|
||||
file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" )
|
||||
string( REPLACE " " ";" SKIP_LIST "${SKIP_MODULES}" )
|
||||
foreach( SUBDIRECTORY ${SUBDIRECTORIES} )
|
||||
|
@ -8,11 +8,12 @@
|
||||
# Copyright 2014, Daniel Hillenbrand <codeworkx@bbqlinux.org>
|
||||
# Copyright 2014, Benjamin Vaudour <benjamin.vaudour@yahoo.fr>
|
||||
# Copyright 2014, Kevin Kofler <kevin.kofler@chello.at>
|
||||
# Copyright 2015, Philip Mueller <philm@manjaro.org>
|
||||
# Copyright 2015-2017, Philip Mueller <philm@manjaro.org>
|
||||
# Copyright 2016-2017, Teo Mrnjavac <teo@kde.org>
|
||||
# Copyright 2017, Alf Gaida <agaida@siduction.org>
|
||||
# Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
# Copyright 2017, Gabriel Craciunescu <crazy@frugalware.org>
|
||||
# Copyright 2017, Ben Green <Bezzy1999@hotmail.com>
|
||||
#
|
||||
# Calamares is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -235,10 +236,18 @@ def install_grub(efi_directory, fw_type):
|
||||
# if the kernel is older than 4.0, the UEFI bitness likely isn't
|
||||
# exposed to the userspace so we assume a 64 bit UEFI here
|
||||
efi_bitness = "64"
|
||||
bitness_translate = {"32": "--target=i386-efi",
|
||||
"64": "--target=x86_64-efi"}
|
||||
|
||||
if efi_bitness == "32":
|
||||
efi_target = "i386-efi"
|
||||
efi_grub_file = "grubia32.efi"
|
||||
efi_boot_file = "bootia32.efi"
|
||||
elif efi_bitness == "64":
|
||||
efi_target = "x86_64-efi"
|
||||
efi_grub_file = "grubx64.efi"
|
||||
efi_boot_file = "bootx64.efi"
|
||||
|
||||
check_target_env_call([libcalamares.job.configuration["grubInstall"],
|
||||
bitness_translate[efi_bitness],
|
||||
"--target=" + efi_target,
|
||||
"--efi-directory=" + efi_directory,
|
||||
"--bootloader-id=" + efi_bootloader_id,
|
||||
"--force"])
|
||||
@ -260,13 +269,13 @@ def install_grub(efi_directory, fw_type):
|
||||
os.makedirs(install_efi_boot_directory)
|
||||
|
||||
# Workaround for some UEFI firmwares
|
||||
efi_file_source = {"32": os.path.join(install_efi_directory_firmware,
|
||||
efi_bootloader_id,
|
||||
"grubia32.efi"),
|
||||
"64": os.path.join(install_efi_directory_firmware,
|
||||
efi_bootloader_id,
|
||||
"grubx64.efi")}
|
||||
shutil.copy2(efi_file_source[efi_bitness], install_efi_boot_directory)
|
||||
efi_file_source = os.path.join(install_efi_directory_firmware,
|
||||
efi_bootloader_id,
|
||||
efi_grub_file)
|
||||
efi_file_target = os.path.join(install_efi_boot_directory,
|
||||
efi_boot_file)
|
||||
|
||||
shutil.copy2(efi_file_source, efi_file_target)
|
||||
else:
|
||||
print("Bootloader: grub (bios)")
|
||||
if libcalamares.globalstorage.value("bootLoader") is None:
|
||||
|
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-04 08:16-0400\n"
|
||||
"POT-Creation-Date: 2017-09-28 10:34-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: pavelrz <pavel@rzehak.cz>, 2016\n"
|
||||
"Language-Team: Czech (Czech Republic) (https://www.transifex.com/calamares/teams/20061/cs_CZ/)\n"
|
||||
@ -20,7 +20,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:84
|
||||
msgid "Click me!"
|
||||
msgstr "Klikni na mě!"
|
||||
msgstr "Klikněte na mě!"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:94
|
||||
msgid "A new QLabel."
|
||||
@ -36,7 +36,7 @@ msgstr "Testovací úloha PythonQt"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:186
|
||||
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
|
||||
msgstr "Toto je testovací úloha PythonQt. Testovací úloha říká: {}"
|
||||
msgstr "Toto je testovací úloha PythonQt. Testovací úloha sděluje: {}"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:190
|
||||
msgid "A status message for Dummy PythonQt Job."
|
||||
|
Binary file not shown.
@ -8,8 +8,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-04 08:16-0400\n"
|
||||
"POT-Creation-Date: 2017-09-28 10:34-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Paul Combal <abonnementspaul@gmail.com>, 2017\n"
|
||||
"Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -19,11 +20,11 @@ msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:84
|
||||
msgid "Click me!"
|
||||
msgstr ""
|
||||
msgstr "Cliquez-moi!"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:94
|
||||
msgid "A new QLabel."
|
||||
msgstr ""
|
||||
msgstr "Un nouveau QLabel."
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:97
|
||||
msgid "Dummy PythonQt ViewStep"
|
||||
|
@ -178,7 +178,7 @@ FinishedViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
||||
configurationMap.value( "restartNowCommand" ).type() == QVariant::String )
|
||||
m_widget->setRestartNowCommand( configurationMap.value( "restartNowCommand" ).toString() );
|
||||
else
|
||||
m_widget->setRestartNowCommand( "systemctl -i reboot" );
|
||||
m_widget->setRestartNowCommand( "shutdown -r now" );
|
||||
}
|
||||
}
|
||||
if ( configurationMap.contains( "notifyOnFinished" ) &&
|
||||
|
@ -1,14 +1,18 @@
|
||||
Configuration for the "finished" page, which is usually shown only at
|
||||
the end of the installation (successful or not).
|
||||
# Configuration for the "finished" page, which is usually shown only at
|
||||
# the end of the installation (successful or not).
|
||||
---
|
||||
# The finished page can hold a "restart system now" checkbox.
|
||||
# If this is false, no checkbox is show and the system is not restarted
|
||||
# If this is false, no checkbox is shown and the system is not restarted
|
||||
# when Calamares exits.
|
||||
restartNowEnabled: true
|
||||
# Initial state of the checkbox "restart now".
|
||||
|
||||
# Initial state of the checkbox "restart now". Only relevant when the
|
||||
# checkbox is shown by restartNowEnabled.
|
||||
restartNowChecked: false
|
||||
|
||||
# If the checkbox is shown, and the checkbox is checked, then when
|
||||
# Calamares exits from the finished-page it will run this command.
|
||||
# If not set, falls back to "shutdown -r now".
|
||||
restartNowCommand: "systemctl -i reboot"
|
||||
|
||||
# When the last page is (successfully) reached, send a DBus notification
|
||||
|
@ -24,6 +24,8 @@
|
||||
# along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import libcalamares
|
||||
|
||||
import inspect
|
||||
import os
|
||||
import shutil
|
||||
|
||||
|
@ -21,6 +21,7 @@ calamares_add_plugin( interactiveterminal
|
||||
InteractiveTerminalPage.cpp
|
||||
LINK_PRIVATE_LIBRARIES
|
||||
calamaresui
|
||||
LINK_LIBRARIES
|
||||
KF5::Service
|
||||
KF5::Parts
|
||||
SHARED_LIB
|
||||
|
@ -1,3 +1,5 @@
|
||||
# NOTE: you must have ckbcomp installed and runnable
|
||||
# on the live system, for keyboard layout previews.
|
||||
---
|
||||
# The name of the file to write X11 keyboard settings to
|
||||
# The default value is the name used by upstream systemd-localed.
|
||||
|
@ -20,6 +20,7 @@
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "utils/Logger.h"
|
||||
#include "keyboardpreview.h"
|
||||
|
||||
KeyBoardPreview::KeyBoardPreview( QWidget* parent )
|
||||
@ -113,10 +114,16 @@ bool KeyBoardPreview::loadCodes() {
|
||||
process.setEnvironment(QStringList() << "LANG=C" << "LC_MESSAGES=C");
|
||||
process.start("ckbcomp", param);
|
||||
if (!process.waitForStarted())
|
||||
{
|
||||
cDebug() << "WARNING: ckbcomp not found , keyboard preview disabled";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!process.waitForFinished())
|
||||
{
|
||||
cDebug() << "WARNING: ckbcomp failed, keyboard preview disabled";
|
||||
return false;
|
||||
}
|
||||
|
||||
// Clear codes
|
||||
codes.clear();
|
||||
|
@ -120,7 +120,7 @@ LocaleViewStep::fetchGeoIpTimezone()
|
||||
|
||||
try
|
||||
{
|
||||
YAML::Node doc = YAML::Load( reply->readAll() );
|
||||
YAML::Node doc = YAML::Load( data );
|
||||
|
||||
QVariant var = CalamaresUtils::yamlToVariant( doc );
|
||||
if ( !var.isNull() &&
|
||||
|
@ -1,7 +1,27 @@
|
||||
---
|
||||
# This settings are used to set your default system time zone.
|
||||
# Time zones are usually located under /usr/share/zoneinfo and
|
||||
# provided by the 'tzdata' package of your Distribution.
|
||||
#
|
||||
# Distributions using systemd can list available
|
||||
# time zones by using the timedatectl command.
|
||||
# timedatectl list-timezones
|
||||
region: "America"
|
||||
zone: "New_York"
|
||||
|
||||
# GeoIP settings. Leave commented out to disable GeoIP.
|
||||
#localeGenPath: "/etc/locale.gen"
|
||||
|
||||
# System locales are detected in the following order:
|
||||
#
|
||||
# /usr/share/i18n/SUPPORTED
|
||||
# localeGenPath (defaults to /etc/locale.gen if not set)
|
||||
# 'locale -a' output
|
||||
# Enable only when your Distribution is using an
|
||||
# custom path for locale.gen
|
||||
#localeGenPath: "PATH_TO/locale.gen"
|
||||
|
||||
# GeoIP based Language settings:
|
||||
# GeoIP need an working Internet connecion.
|
||||
# This can be managed from welcome.conf by adding
|
||||
# internet to the list of required conditions.
|
||||
# Leave commented out to disable GeoIP.
|
||||
#geoipUrl: "freegeoip.net"
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Originally from the Manjaro Installation Framework
|
||||
* by Roland Singer <roland@manjaro.org>
|
||||
@ -20,61 +21,70 @@
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include "timezonewidget.h"
|
||||
|
||||
TimeZoneWidget::TimeZoneWidget(QWidget* parent) :
|
||||
QWidget(parent)
|
||||
constexpr double MATH_PI = 3.14159265;
|
||||
|
||||
TimeZoneWidget::TimeZoneWidget( QWidget* parent ) :
|
||||
QWidget( parent )
|
||||
{
|
||||
setMouseTracking(false);
|
||||
setCursor(Qt::PointingHandCursor);
|
||||
setMouseTracking( false );
|
||||
setCursor( Qt::PointingHandCursor );
|
||||
|
||||
// Font
|
||||
font.setPointSize(12);
|
||||
font.setBold(false);
|
||||
font.setPointSize( 12 );
|
||||
font.setBold( false );
|
||||
|
||||
// Images
|
||||
background = QImage(":/images/bg.png").scaled(X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||
pin = QImage(":/images/pin.png");
|
||||
background = QImage( ":/images/bg.png" ).scaled( X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
|
||||
pin = QImage( ":/images/pin.png" );
|
||||
|
||||
// Set size
|
||||
setMinimumSize(background.size());
|
||||
setMaximumSize(background.size());
|
||||
setMinimumSize( background.size() );
|
||||
setMaximumSize( background.size() );
|
||||
|
||||
// Zone images
|
||||
QStringList zones = QString(ZONES).split(" ", QString::SkipEmptyParts);
|
||||
for (int i = 0; i < zones.size(); ++i)
|
||||
timeZoneImages.append(QImage(":/images/timezone_" + zones.at(i) + ".png").scaled(X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
|
||||
QStringList zones = QString( ZONES ).split( " ", QString::SkipEmptyParts );
|
||||
for ( int i = 0; i < zones.size(); ++i )
|
||||
timeZoneImages.append( QImage( ":/images/timezone_" + zones.at( i ) + ".png" ).scaled( X_SIZE, Y_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ) );
|
||||
}
|
||||
|
||||
|
||||
void TimeZoneWidget::setCurrentLocation(QString region, QString zone) {
|
||||
void TimeZoneWidget::setCurrentLocation( QString region, QString zone )
|
||||
{
|
||||
QHash<QString, QList<LocaleGlobal::Location> > hash = LocaleGlobal::getLocations();
|
||||
|
||||
if (!hash.contains(region))
|
||||
if ( !hash.contains( region ) )
|
||||
return;
|
||||
|
||||
QList<LocaleGlobal::Location> locations = hash.value(region);
|
||||
for (int i = 0; i < locations.size(); ++i) {
|
||||
if (locations.at(i).zone == zone) {
|
||||
setCurrentLocation(locations.at(i));
|
||||
QList<LocaleGlobal::Location> locations = hash.value( region );
|
||||
for ( int i = 0; i < locations.size(); ++i )
|
||||
{
|
||||
if ( locations.at( i ).zone == zone )
|
||||
{
|
||||
setCurrentLocation( locations.at( i ) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TimeZoneWidget::setCurrentLocation(LocaleGlobal::Location location) {
|
||||
void TimeZoneWidget::setCurrentLocation( LocaleGlobal::Location location )
|
||||
{
|
||||
currentLocation = location;
|
||||
|
||||
// Set zone
|
||||
QPoint pos = getLocationPosition(currentLocation.longitude, currentLocation.latitude);
|
||||
QPoint pos = getLocationPosition( currentLocation.longitude, currentLocation.latitude );
|
||||
|
||||
for (int i = 0; i < timeZoneImages.size(); ++i) {
|
||||
for ( int i = 0; i < timeZoneImages.size(); ++i )
|
||||
{
|
||||
QImage zone = timeZoneImages[i];
|
||||
|
||||
// If not transparent set as current
|
||||
if (zone.pixel(pos) != RGB_TRANSPARENT) {
|
||||
if ( zone.pixel( pos ) != RGB_TRANSPARENT )
|
||||
{
|
||||
currentZoneImage = zone;
|
||||
break;
|
||||
}
|
||||
@ -91,74 +101,87 @@ void TimeZoneWidget::setCurrentLocation(LocaleGlobal::Location location) {
|
||||
//###
|
||||
|
||||
|
||||
QPoint TimeZoneWidget::getLocationPosition(double longitude, double latitude) {
|
||||
QPoint TimeZoneWidget::getLocationPosition( double longitude, double latitude )
|
||||
{
|
||||
const int width = this->width();
|
||||
const int height = this->height();
|
||||
|
||||
double x = (width / 2.0 + (width / 2.0) * longitude / 180.0) + MAP_X_OFFSET * width;
|
||||
double y = (height / 2.0 - (height / 2.0) * latitude / 90.0) + MAP_Y_OFFSET * height;
|
||||
double x = ( width / 2.0 + ( width / 2.0 ) * longitude / 180.0 ) + MAP_X_OFFSET * width;
|
||||
double y = ( height / 2.0 - ( height / 2.0 ) * latitude / 90.0 ) + MAP_Y_OFFSET * height;
|
||||
|
||||
if (x < 0)
|
||||
//Far north, the MAP_Y_OFFSET no longer holds, cancel the Y offset; it's noticeable
|
||||
// from 62 degrees north, so scale those 28 degrees as if the world is flat south
|
||||
// of there, and we have a funny "rounded" top of the world. In practice the locations
|
||||
// of the different cities / regions looks ok -- at least Thule ends up in the right
|
||||
// country, and Inuvik isn't in the ocean.
|
||||
if ( latitude > 62.0 )
|
||||
y -= sin( MATH_PI * ( latitude - 62.0 ) / 56.0 ) * MAP_Y_OFFSET * height;
|
||||
// Antarctica isn't shown on the map, but you could try clicking there
|
||||
if ( latitude < -60 )
|
||||
y = height - 1;
|
||||
|
||||
if ( x < 0 )
|
||||
x = width+x;
|
||||
if (x >= width)
|
||||
if ( x >= width )
|
||||
x -= width;
|
||||
if (y < 0)
|
||||
if ( y < 0 )
|
||||
y = height+y;
|
||||
if (y >= height)
|
||||
if ( y >= height )
|
||||
y -= height;
|
||||
|
||||
return QPoint( int(x), int(y) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TimeZoneWidget::paintEvent(QPaintEvent*) {
|
||||
void TimeZoneWidget::paintEvent( QPaintEvent* )
|
||||
{
|
||||
const int width = this->width();
|
||||
const int height = this->height();
|
||||
QFontMetrics fontMetrics(font);
|
||||
QPainter painter(this);
|
||||
QFontMetrics fontMetrics( font );
|
||||
QPainter painter( this );
|
||||
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
painter.setFont(font);
|
||||
painter.setRenderHint( QPainter::Antialiasing );
|
||||
painter.setFont( font );
|
||||
|
||||
// Draw background
|
||||
painter.drawImage(0, 0, background);
|
||||
painter.drawImage( 0, 0, background );
|
||||
|
||||
// Draw zone image
|
||||
painter.drawImage(0, 0, currentZoneImage);
|
||||
painter.drawImage( 0, 0, currentZoneImage );
|
||||
|
||||
// Draw pin
|
||||
QPoint point = getLocationPosition(currentLocation.longitude, currentLocation.latitude);
|
||||
painter.drawImage(point.x() - pin.width()/2, point.y() - pin.height()/2, pin);
|
||||
QPoint point = getLocationPosition( currentLocation.longitude, currentLocation.latitude );
|
||||
painter.drawImage( point.x() - pin.width()/2, point.y() - pin.height()/2, pin );
|
||||
|
||||
// Draw text and box
|
||||
const int textWidth = fontMetrics.width(LocaleGlobal::Location::pretty(currentLocation.zone));
|
||||
const int textWidth = fontMetrics.width( LocaleGlobal::Location::pretty( currentLocation.zone ) );
|
||||
const int textHeight = fontMetrics.height();
|
||||
|
||||
QRect rect = QRect(point.x() - textWidth/2 - 5, point.y() - textHeight - 8, textWidth + 10, textHeight - 2);
|
||||
QRect rect = QRect( point.x() - textWidth/2 - 5, point.y() - textHeight - 8, textWidth + 10, textHeight - 2 );
|
||||
|
||||
if (rect.x() <= 5)
|
||||
rect.moveLeft(5);
|
||||
if (rect.right() >= width-5)
|
||||
rect.moveRight(width - 5);
|
||||
if (rect.y() <= 5)
|
||||
rect.moveTop(5);
|
||||
if (rect.y() >= height-5)
|
||||
rect.moveBottom(height-5);
|
||||
if ( rect.x() <= 5 )
|
||||
rect.moveLeft( 5 );
|
||||
if ( rect.right() >= width-5 )
|
||||
rect.moveRight( width - 5 );
|
||||
if ( rect.y() <= 5 )
|
||||
rect.moveTop( 5 );
|
||||
if ( rect.y() >= height-5 )
|
||||
rect.moveBottom( height-5 );
|
||||
|
||||
painter.setPen(QPen()); // no pen
|
||||
painter.setBrush(QColor(40, 40, 40));
|
||||
painter.drawRoundedRect(rect, 3, 3);
|
||||
painter.setPen(Qt::white);
|
||||
painter.drawText(rect.x() + 5, rect.bottom() - 4, LocaleGlobal::Location::pretty(currentLocation.zone));
|
||||
painter.setPen( QPen() ); // no pen
|
||||
painter.setBrush( QColor( 40, 40, 40 ) );
|
||||
painter.drawRoundedRect( rect, 3, 3 );
|
||||
painter.setPen( Qt::white );
|
||||
painter.drawText( rect.x() + 5, rect.bottom() - 4, LocaleGlobal::Location::pretty( currentLocation.zone ) );
|
||||
|
||||
painter.end();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TimeZoneWidget::mousePressEvent(QMouseEvent* event) {
|
||||
if (event->button() != Qt::LeftButton)
|
||||
void TimeZoneWidget::mousePressEvent( QMouseEvent* event )
|
||||
{
|
||||
if ( event->button() != Qt::LeftButton )
|
||||
return;
|
||||
|
||||
// Set nearest location
|
||||
@ -167,14 +190,17 @@ void TimeZoneWidget::mousePressEvent(QMouseEvent* event) {
|
||||
QHash<QString, QList<LocaleGlobal::Location> > hash = LocaleGlobal::getLocations();
|
||||
QHash<QString, QList<LocaleGlobal::Location> >::iterator iter = hash.begin();
|
||||
|
||||
while (iter != hash.end()) {
|
||||
while ( iter != hash.end() )
|
||||
{
|
||||
QList<LocaleGlobal::Location> locations = iter.value();
|
||||
|
||||
for (int i = 0; i < locations.size(); ++i) {
|
||||
for ( int i = 0; i < locations.size(); ++i )
|
||||
{
|
||||
LocaleGlobal::Location loc = locations[i];
|
||||
QPoint locPos = getLocationPosition(loc.longitude, loc.latitude);
|
||||
QPoint locPos = getLocationPosition( loc.longitude, loc.latitude );
|
||||
|
||||
if ((abs(mX - locPos.x()) + abs(mY - locPos.y()) < abs(mX - nX) + abs(mY - nY))) {
|
||||
if ( ( abs( mX - locPos.x() ) + abs( mY - locPos.y() ) < abs( mX - nX ) + abs( mY - nY ) ) )
|
||||
{
|
||||
currentLocation = loc;
|
||||
nX = locPos.x();
|
||||
nY = locPos.y();
|
||||
@ -185,8 +211,8 @@ void TimeZoneWidget::mousePressEvent(QMouseEvent* event) {
|
||||
}
|
||||
|
||||
// Set zone image and repaint widget
|
||||
setCurrentLocation(currentLocation);
|
||||
setCurrentLocation( currentLocation );
|
||||
|
||||
// Emit signal
|
||||
emit locationChanged(currentLocation);
|
||||
emit locationChanged( currentLocation );
|
||||
}
|
||||
|
@ -48,14 +48,17 @@ class TimeZoneWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit TimeZoneWidget(QWidget* parent = nullptr);
|
||||
explicit TimeZoneWidget( QWidget* parent = nullptr );
|
||||
|
||||
LocaleGlobal::Location getCurrentLocation() { return currentLocation; }
|
||||
void setCurrentLocation(QString region, QString zone);
|
||||
void setCurrentLocation(LocaleGlobal::Location location);
|
||||
LocaleGlobal::Location getCurrentLocation()
|
||||
{
|
||||
return currentLocation;
|
||||
}
|
||||
void setCurrentLocation( QString region, QString zone );
|
||||
void setCurrentLocation( LocaleGlobal::Location location );
|
||||
|
||||
signals:
|
||||
void locationChanged(LocaleGlobal::Location location);
|
||||
void locationChanged( LocaleGlobal::Location location );
|
||||
|
||||
private:
|
||||
QFont font;
|
||||
@ -63,10 +66,14 @@ private:
|
||||
QList<QImage> timeZoneImages;
|
||||
LocaleGlobal::Location currentLocation;
|
||||
|
||||
QPoint getLocationPosition(double longitude, double latitude);
|
||||
QPoint getLocationPosition( const LocaleGlobal::Location& l )
|
||||
{
|
||||
return getLocationPosition( l.longitude, l.latitude );
|
||||
}
|
||||
QPoint getLocationPosition( double longitude, double latitude );
|
||||
|
||||
void paintEvent(QPaintEvent* event);
|
||||
void mousePressEvent(QMouseEvent* event);
|
||||
void paintEvent( QPaintEvent* event );
|
||||
void mousePressEvent( QMouseEvent* event );
|
||||
};
|
||||
|
||||
#endif // TIMEZONEWIDGET_H
|
||||
|
@ -3,6 +3,7 @@
|
||||
* Copyright 2016, Lisa Vitolo <shainer@chakraos.org>
|
||||
* Copyright 2017, Kyle Robbertze <krobbertze@gmail.com>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017, Gabriel Craciunescu <crazy@frugalware.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -56,14 +57,6 @@ NetInstallPage::NetInstallPage( QWidget* parent )
|
||||
ui->setupUi( this );
|
||||
}
|
||||
|
||||
bool
|
||||
NetInstallPage::isReady()
|
||||
{
|
||||
// nothing to wait for, the data are immediately ready
|
||||
// if the user does not select any group nothing is installed
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
NetInstallPage::readGroups( const QByteArray& yamlData )
|
||||
{
|
||||
@ -77,7 +70,7 @@ NetInstallPage::readGroups( const QByteArray& yamlData )
|
||||
m_groups = new PackageModel( groups );
|
||||
CALAMARES_RETRANSLATE(
|
||||
m_groups->setHeaderData( 0, Qt::Horizontal, tr( "Name" ) );
|
||||
m_groups->setHeaderData( 0, Qt::Horizontal, tr( "Description" ) ); )
|
||||
m_groups->setHeaderData( 1, Qt::Horizontal, tr( "Description" ) ); )
|
||||
return true;
|
||||
|
||||
}
|
||||
@ -91,18 +84,22 @@ NetInstallPage::readGroups( const QByteArray& yamlData )
|
||||
void
|
||||
NetInstallPage::dataIsHere( QNetworkReply* reply )
|
||||
{
|
||||
// If m_required is *false* then we still say we're ready
|
||||
// even if the reply is corrupt or missing.
|
||||
if ( reply->error() != QNetworkReply::NoError )
|
||||
{
|
||||
cDebug() << reply->errorString();
|
||||
ui->netinst_status->setText( tr( "Network Installation. (Disabled: Unable to fetch package lists, check your network connection)" ) );
|
||||
emit checkReady( !m_required );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( !readGroups( reply->readAll() ) )
|
||||
{
|
||||
cDebug() << "Netinstall groups data was received, but invalid.";
|
||||
ui->netinst_status->setText( tr( "Network Installation. (Disabled: Unable to fetch package lists, check your network connection)" ) );
|
||||
ui->netinst_status->setText( tr( "Network Installation. (Disabled: Received invalid groups data)" ) );
|
||||
reply->deleteLater();
|
||||
emit checkReady( !m_required );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -111,15 +108,23 @@ NetInstallPage::dataIsHere( QNetworkReply* reply )
|
||||
ui->groupswidget->header()->setSectionResizeMode( 1, QHeaderView::Stretch );
|
||||
|
||||
reply->deleteLater();
|
||||
emit checkReady( isReady() );
|
||||
emit checkReady( true );
|
||||
}
|
||||
|
||||
QList<PackageTreeItem::ItemData> NetInstallPage::selectedPackages() const
|
||||
PackageModel::PackageItemDataList
|
||||
NetInstallPage::selectedPackages() const
|
||||
{
|
||||
return m_groups->getPackages();
|
||||
if ( m_groups )
|
||||
return m_groups->getPackages();
|
||||
else
|
||||
{
|
||||
cDebug() << "WARNING: no netinstall groups are available.";
|
||||
return PackageModel::PackageItemDataList();
|
||||
}
|
||||
}
|
||||
|
||||
void NetInstallPage::loadGroupList()
|
||||
void
|
||||
NetInstallPage::loadGroupList()
|
||||
{
|
||||
QString confUrl(
|
||||
Calamares::JobQueue::instance()->globalStorage()->value(
|
||||
@ -138,7 +143,15 @@ void NetInstallPage::loadGroupList()
|
||||
m_networkManager.get( request );
|
||||
}
|
||||
|
||||
void NetInstallPage::onActivate()
|
||||
void
|
||||
NetInstallPage::setRequired( bool b )
|
||||
{
|
||||
m_required = b;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
NetInstallPage::onActivate()
|
||||
{
|
||||
ui->groupswidget->setFocus();
|
||||
}
|
||||
|
@ -46,17 +46,24 @@ public:
|
||||
|
||||
void onActivate();
|
||||
|
||||
bool isReady();
|
||||
|
||||
// Retrieves the groups, with name, description and packages, from
|
||||
// the remote URL configured in the settings. Assumes the URL is already
|
||||
// in the global storage. This should be called before displaying the page.
|
||||
void loadGroupList();
|
||||
|
||||
// Sets the "required" state of netinstall data. Influences whether
|
||||
// corrupt or unavailable data causes checkReady() to be emitted
|
||||
// true (not-required) or false.
|
||||
void setRequired( bool );
|
||||
bool getRequired() const
|
||||
{
|
||||
return m_required;
|
||||
}
|
||||
|
||||
// Returns the list of packages belonging to groups that are
|
||||
// selected in the view in this given moment. No data is cached here, so
|
||||
// this function does not have constant time.
|
||||
QList<PackageTreeItem::ItemData> selectedPackages() const;
|
||||
PackageModel::PackageItemDataList selectedPackages() const;
|
||||
|
||||
public slots:
|
||||
void dataIsHere( QNetworkReply* );
|
||||
@ -76,6 +83,7 @@ private:
|
||||
QNetworkAccessManager m_networkManager;
|
||||
|
||||
PackageModel* m_groups;
|
||||
bool m_required;
|
||||
};
|
||||
|
||||
#endif // NETINSTALLPAGE_H
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright 2016, Luca Giambonini <almack@chakraos.org>
|
||||
* Copyright 2016, Lisa Vitolo <shainer@chakraos.org>
|
||||
* Copyright 2017, Kyle Robbertze <krobbertze@gmail.com>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -30,11 +31,11 @@ CALAMARES_PLUGIN_FACTORY_DEFINITION( NetInstallViewStepFactory, registerPlugin<N
|
||||
NetInstallViewStep::NetInstallViewStep( QObject* parent )
|
||||
: Calamares::ViewStep( parent )
|
||||
, m_widget( new NetInstallPage() )
|
||||
, m_nextEnabled( true )
|
||||
, m_nextEnabled( false )
|
||||
{
|
||||
emit nextStatusChanged( true );
|
||||
connect( m_widget, &NetInstallPage::checkReady,
|
||||
this, &NetInstallViewStep::nextStatusChanged );
|
||||
this, &NetInstallViewStep::nextIsReady );
|
||||
}
|
||||
|
||||
|
||||
@ -126,18 +127,26 @@ NetInstallViewStep::onLeave()
|
||||
cDebug() << "Leaving netinstall, adding packages to be installed"
|
||||
<< "to global storage";
|
||||
|
||||
QMap<QString, QVariant> packagesWithOperation;
|
||||
QList<PackageTreeItem::ItemData> packages = m_widget->selectedPackages();
|
||||
PackageModel::PackageItemDataList packages = m_widget->selectedPackages();
|
||||
QVariantList installPackages;
|
||||
QVariantList tryInstallPackages;
|
||||
cDebug() << "Processing";
|
||||
QVariantList packageOperations;
|
||||
|
||||
cDebug() << "Processing" << packages.length() << "packages from netinstall.";
|
||||
|
||||
for ( auto package : packages )
|
||||
{
|
||||
QMap<QString, QVariant> details;
|
||||
details.insert( "pre-script", package.preScript );
|
||||
details.insert( "package", package.packageName );
|
||||
details.insert( "post-script", package.postScript );
|
||||
QVariant details( package.packageName );
|
||||
// If it's a package with a pre- or post-script, replace
|
||||
// with the more complicated datastructure.
|
||||
if ( !package.preScript.isEmpty() || !package.postScript.isEmpty() )
|
||||
{
|
||||
QMap<QString, QVariant> sdetails;
|
||||
sdetails.insert( "pre-script", package.preScript );
|
||||
sdetails.insert( "package", package.packageName );
|
||||
sdetails.insert( "post-script", package.postScript );
|
||||
details = sdetails;
|
||||
}
|
||||
if ( package.isCritical )
|
||||
installPackages.append( details );
|
||||
else
|
||||
@ -145,14 +154,24 @@ NetInstallViewStep::onLeave()
|
||||
}
|
||||
|
||||
if ( !installPackages.empty() )
|
||||
packagesWithOperation.insert( "install", QVariant( installPackages ) );
|
||||
{
|
||||
QMap<QString, QVariant> op;
|
||||
op.insert( "install", QVariant( installPackages ) );
|
||||
packageOperations.append( op );
|
||||
cDebug() << " .." << installPackages.length() << "critical packages.";
|
||||
}
|
||||
if ( !tryInstallPackages.empty() )
|
||||
packagesWithOperation.insert( "try_install", QVariant( tryInstallPackages ) );
|
||||
{
|
||||
QMap<QString, QVariant> op;
|
||||
op.insert( "try_install", QVariant( tryInstallPackages ) );
|
||||
packageOperations.append( op );
|
||||
cDebug() << " .." << tryInstallPackages.length() << "non-critical packages.";
|
||||
}
|
||||
|
||||
if ( !packagesWithOperation.isEmpty() )
|
||||
if ( !packageOperations.isEmpty() )
|
||||
{
|
||||
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
||||
gs->insert( "packageOperations", QVariant( packagesWithOperation ) );
|
||||
gs->insert( "packageOperations", QVariant( packageOperations ) );
|
||||
}
|
||||
}
|
||||
|
||||
@ -160,6 +179,11 @@ NetInstallViewStep::onLeave()
|
||||
void
|
||||
NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
||||
{
|
||||
m_widget->setRequired(
|
||||
configurationMap.contains( "required" ) &&
|
||||
configurationMap.value( "required" ).type() == QVariant::Bool &&
|
||||
configurationMap.value( "required" ).toBool() );
|
||||
|
||||
if ( configurationMap.contains( "groupsUrl" ) &&
|
||||
configurationMap.value( "groupsUrl" ).type() == QVariant::String )
|
||||
{
|
||||
@ -168,3 +192,10 @@ NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
||||
m_widget->loadGroupList();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
NetInstallViewStep::nextIsReady( bool b )
|
||||
{
|
||||
m_nextEnabled = b;
|
||||
emit nextStatusChanged( b );
|
||||
}
|
||||
|
@ -60,6 +60,9 @@ public:
|
||||
|
||||
void setConfigurationMap( const QVariantMap& configurationMap ) override;
|
||||
|
||||
public slots:
|
||||
void nextIsReady( bool );
|
||||
|
||||
private:
|
||||
NetInstallPage* m_widget;
|
||||
bool m_nextEnabled;
|
||||
|
@ -1,3 +1,4 @@
|
||||
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright (c) 2017, Kyle Robbertze <kyle@aims.ac.za>
|
||||
@ -28,14 +29,13 @@
|
||||
|
||||
#include <yaml-cpp/yaml.h>
|
||||
|
||||
// Required forward declarations
|
||||
class PackageTreeItem;
|
||||
|
||||
class PackageModel : public QAbstractItemModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
using PackageItemDataList = QList< PackageTreeItem::ItemData >;
|
||||
|
||||
explicit PackageModel( const YAML::Node& data, QObject* parent = nullptr );
|
||||
~PackageModel() override;
|
||||
|
||||
@ -52,7 +52,7 @@ public:
|
||||
QModelIndex parent( const QModelIndex& index ) const override;
|
||||
int rowCount( const QModelIndex& parent = QModelIndex() ) const override;
|
||||
int columnCount( const QModelIndex& parent = QModelIndex() ) const override;
|
||||
QList<PackageTreeItem::ItemData> getPackages() const;
|
||||
PackageItemDataList getPackages() const;
|
||||
QList<PackageTreeItem*> getItemPackages( PackageTreeItem* item ) const;
|
||||
|
||||
private:
|
||||
|
@ -6,6 +6,7 @@ At installation time, the user is presented with the choice to install groups of
|
||||
Calamares will then invoke the correct backend to install the packages.
|
||||
|
||||
## Configuration of the packages
|
||||
|
||||
Every distribution can choose which groups to display and which packages should be in the groups.
|
||||
|
||||
The *netinstall.conf* file should have this format:
|
||||
@ -48,7 +49,8 @@ If you set both *hidden* and *selected* for a group, you are basically creating
|
||||
which will always be installed in the user's system.
|
||||
|
||||
## Configuration of the module
|
||||
Here is the set of instructions to have the module work in your Calamares. As of July 2016, this has been successfully
|
||||
|
||||
Here is the set of instructions to have the module work in your Calamares. As of July 2016, this has been successfully
|
||||
tested using the live installation of Chakra Fermi.
|
||||
|
||||
First, if the module is used, we need to require a working Internet connection, otherwise the module will be
|
||||
@ -63,7 +65,8 @@ If not present, add the **packages** job in the **exec** list. This is the job t
|
||||
to install packages. Make sure it is configured to use the correct package manager for your distribution; this
|
||||
is configured in src/modules/packages/packages.conf.
|
||||
|
||||
The exec list should be:
|
||||
The **exec** list in *settings.conf* should contain the following items in
|
||||
order (it's ok for other jobs to be listed inbetween them, though):
|
||||
|
||||
- unpackfs
|
||||
- networkcfg
|
||||
@ -74,10 +77,10 @@ structure; **networkcfg** set ups a working network in the chroot; and finally *
|
||||
in the chroot.
|
||||
|
||||
## Common issues
|
||||
|
||||
If launching the package manager command returns you negative exit statuses and nothing is actually invoked, this
|
||||
is likely an error in the setup of the chroot; check that the parameter **rootMountPoint** is set to the correct
|
||||
value in the Calamares configuration.
|
||||
|
||||
If the command is run, but exits with error, check that the network is working in the chroot. Make sure /etc/resolv.conf
|
||||
exists and that it's not empty.
|
||||
|
||||
|
@ -1,2 +1,13 @@
|
||||
---
|
||||
# This is the URL that is retrieved to get the netinstall groups-and-packages
|
||||
# data (which should be in the format described in netinstall.yaml).
|
||||
groupsUrl: http://chakraos.org/netinstall.php
|
||||
|
||||
# If the installation can proceed without netinstall (e.g. the Live CD
|
||||
# can create a working installed system, but netinstall is preferred
|
||||
# to bring it up-to-date or extend functionality) leave this set to
|
||||
# false (the default). If set to true, the netinstall data is required.
|
||||
#
|
||||
# This only has an effect if the netinstall data cannot be retrieved,
|
||||
# or is corrupt: having "required" set, means the install cannot proceed.
|
||||
required: false
|
||||
|
@ -344,10 +344,18 @@ def subst_locale(plist):
|
||||
|
||||
def run_operations(pkgman, entry):
|
||||
"""
|
||||
Call package manager with given parameters.
|
||||
Call package manager with suitable parameters for the given
|
||||
package actions.
|
||||
|
||||
:param pkgman:
|
||||
:param entry:
|
||||
:param pkgman: PackageManager
|
||||
This is the manager that does the actual work.
|
||||
:param entry: dict
|
||||
Keys are the actions -- e.g. "install" -- to take, and the values
|
||||
are the (list of) packages to apply the action to. The actions are
|
||||
not iterated in a specific order, so it is recommended to use only
|
||||
one action per dictionary. The list of packages may be package
|
||||
names (strings) or package information dictionaries with pre-
|
||||
and post-scripts.
|
||||
"""
|
||||
global group_packages, completed_packages, mode_packages
|
||||
|
||||
|
@ -6,7 +6,7 @@ include(GenerateExportHeader)
|
||||
find_package( Qt5 REQUIRED DBus )
|
||||
find_package( KF5 REQUIRED Config CoreAddons I18n WidgetsAddons )
|
||||
|
||||
find_package( KPMcore 3.2 REQUIRED )
|
||||
find_package( KPMcore 3.3 REQUIRED )
|
||||
|
||||
include_directories( ${KPMCORE_INCLUDE_DIR} )
|
||||
include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui )
|
||||
@ -43,7 +43,6 @@ calamares_add_plugin( partition
|
||||
gui/PrettyRadioButton.cpp
|
||||
gui/ScanningDialog.cpp
|
||||
gui/ReplaceWidget.cpp
|
||||
jobs/CheckFileSystemJob.cpp
|
||||
jobs/ClearMountsJob.cpp
|
||||
jobs/ClearTempMountsJob.cpp
|
||||
jobs/CreatePartitionJob.cpp
|
||||
@ -51,7 +50,6 @@ calamares_add_plugin( partition
|
||||
jobs/DeletePartitionJob.cpp
|
||||
jobs/FillGlobalStorageJob.cpp
|
||||
jobs/FormatPartitionJob.cpp
|
||||
jobs/MoveFileSystemJob.cpp
|
||||
jobs/PartitionJob.cpp
|
||||
jobs/ResizePartitionJob.cpp
|
||||
jobs/SetPartitionFlagsJob.cpp
|
||||
|
@ -43,6 +43,8 @@
|
||||
#include <QDir>
|
||||
#include <QListWidgetItem>
|
||||
#include <QPushButton>
|
||||
#include <QRegularExpression>
|
||||
#include <QRegularExpressionValidator>
|
||||
#include <QSet>
|
||||
|
||||
static QSet< FileSystem::Type > s_unmountableFS(
|
||||
@ -66,6 +68,19 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par
|
||||
m_ui->encryptWidget->setText( tr( "En&crypt" ) );
|
||||
m_ui->encryptWidget->hide();
|
||||
|
||||
if (m_device->type() == Device::Disk_Device) {
|
||||
m_ui->lvNameLabel->hide();
|
||||
m_ui->lvNameLineEdit->hide();
|
||||
}
|
||||
if (m_device->type() == Device::LVM_Device) {
|
||||
/* LVM logical volume name can consist of: letters numbers _ . - +
|
||||
* It cannot start with underscore _ and must not be equal to . or .. or any entry in /dev/
|
||||
* QLineEdit accepts QValidator::Intermediate, so we just disable . at the beginning */
|
||||
QRegularExpression re(QStringLiteral(R"(^(?!_|\.)[\w\-.+]+)"));
|
||||
QRegularExpressionValidator *validator = new QRegularExpressionValidator(re, this);
|
||||
m_ui->lvNameLineEdit->setValidator(validator);
|
||||
}
|
||||
|
||||
QStringList mountPoints = { "/", "/boot", "/home", "/opt", "/usr", "/var" };
|
||||
if ( PartUtils::isEfiSystem() )
|
||||
mountPoints << Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString();
|
||||
@ -227,6 +242,10 @@ CreatePartitionDialog::createPartition()
|
||||
);
|
||||
}
|
||||
|
||||
if (m_device->type() == Device::LVM_Device) {
|
||||
partition->setPartitionPath(m_device->deviceNode() + QStringLiteral("/") + m_ui->lvNameLineEdit->text().trimmed());
|
||||
}
|
||||
|
||||
PartitionInfo::setMountPoint( partition, m_ui->mountPointComboBox->currentText() );
|
||||
PartitionInfo::setFormat( partition, true );
|
||||
|
||||
|
@ -146,6 +146,16 @@
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="lvNameLabel">
|
||||
<property name="text">
|
||||
<string>LVM LV name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLineEdit" name="lvNameLineEdit"/>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="mountPointLabel">
|
||||
<property name="text">
|
||||
<string>&Mount Point:</string>
|
||||
@ -155,7 +165,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<item row="7" column="1">
|
||||
<widget class="QComboBox" name="mountPointComboBox">
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
@ -165,21 +175,21 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<item row="8" column="1">
|
||||
<widget class="QLabel" name="labelMountPoint">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Flags:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<item row="9" column="1">
|
||||
<widget class="QListWidget" name="m_listFlags">
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
@ -192,7 +202,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<item row="10" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
|
@ -119,7 +119,7 @@ PartitionPage::~PartitionPage()
|
||||
void
|
||||
PartitionPage::updateButtons()
|
||||
{
|
||||
bool create = false, edit = false, del = false;
|
||||
bool create = false, createTable = false, edit = false, del = false;
|
||||
|
||||
QModelIndex index = m_ui->partitionTreeView->currentIndex();
|
||||
if ( index.isValid() )
|
||||
@ -141,11 +141,18 @@ PartitionPage::updateButtons()
|
||||
edit = !isFree && !isExtended;
|
||||
del = !isFree;
|
||||
}
|
||||
|
||||
if ( m_ui->deviceComboBox->currentIndex() >= 0 )
|
||||
{
|
||||
QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 );
|
||||
if ( m_core->deviceModel()->deviceForIndex( deviceIndex )->type() != Device::LVM_Device )
|
||||
createTable = true;
|
||||
}
|
||||
|
||||
m_ui->createButton->setEnabled( create );
|
||||
m_ui->editButton->setEnabled( edit );
|
||||
m_ui->deleteButton->setEnabled( del );
|
||||
|
||||
m_ui->newPartitionTableButton->setEnabled( m_ui->deviceComboBox->currentIndex() >= 0 );
|
||||
m_ui->newPartitionTableButton->setEnabled( createTable );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1,83 +0,0 @@
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "jobs/CheckFileSystemJob.h"
|
||||
|
||||
#include <utils/Logger.h>
|
||||
|
||||
// KPMcore
|
||||
#include <kpmcore/core/partition.h>
|
||||
#include <kpmcore/fs/filesystem.h>
|
||||
#include <kpmcore/util/report.h>
|
||||
|
||||
#include <QThread>
|
||||
|
||||
CheckFileSystemJob::CheckFileSystemJob( Partition* partition )
|
||||
: PartitionJob( partition )
|
||||
{}
|
||||
|
||||
QString
|
||||
CheckFileSystemJob::prettyName() const
|
||||
{
|
||||
QString path = partition()->partitionPath();
|
||||
return tr( "Checking file system on partition %1." ).arg( path );
|
||||
}
|
||||
|
||||
|
||||
QString
|
||||
CheckFileSystemJob::prettyStatusMessage() const
|
||||
{
|
||||
return prettyName();
|
||||
}
|
||||
|
||||
|
||||
Calamares::JobResult
|
||||
CheckFileSystemJob::exec()
|
||||
{
|
||||
FileSystem& fs = partition()->fileSystem();
|
||||
|
||||
// if we cannot check, assume everything is fine
|
||||
if ( fs.supportCheck() != FileSystem::cmdSupportFileSystem )
|
||||
return Calamares::JobResult::ok();
|
||||
|
||||
Report report( nullptr );
|
||||
bool ok = fs.check( report, partition()->partitionPath() );
|
||||
int retries = 0;
|
||||
const int MAX_RETRIES = 10;
|
||||
while ( !ok )
|
||||
{
|
||||
cDebug() << "Partition" << partition()->partitionPath()
|
||||
<< "might not be ready yet, retrying (" << ++retries
|
||||
<< "/" << MAX_RETRIES << ") ...";
|
||||
QThread::sleep( 2 /*seconds*/ );
|
||||
ok = fs.check( report, partition()->partitionPath() );
|
||||
|
||||
if ( retries == MAX_RETRIES )
|
||||
break;
|
||||
}
|
||||
|
||||
if ( !ok )
|
||||
return Calamares::JobResult::error(
|
||||
tr( "The file system check on partition %1 failed." )
|
||||
.arg( partition()->partitionPath() ),
|
||||
report.toText()
|
||||
);
|
||||
|
||||
return Calamares::JobResult::ok();
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
/* === This file is part of Calamares - <http://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef CHECKFILESYSTEMJOB_H
|
||||
#define CHECKFILESYSTEMJOB_H
|
||||
|
||||
#include <jobs/PartitionJob.h>
|
||||
|
||||
/**
|
||||
* Runs a file system check on an existing partition.
|
||||
*/
|
||||
class CheckFileSystemJob : public PartitionJob
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
CheckFileSystemJob( Partition* partition );
|
||||
|
||||
QString prettyName() const override;
|
||||
QString prettyStatusMessage() const override;
|
||||
Calamares::JobResult exec() override;
|
||||
};
|
||||
|
||||
#endif /* CHECKFILESYSTEMJOB_H */
|
@ -24,15 +24,12 @@
|
||||
#include "utils/Units.h"
|
||||
|
||||
// KPMcore
|
||||
#include <kpmcore/backend/corebackend.h>
|
||||
#include <kpmcore/backend/corebackendmanager.h>
|
||||
#include <kpmcore/backend/corebackenddevice.h>
|
||||
#include <kpmcore/backend/corebackendpartition.h>
|
||||
#include <kpmcore/backend/corebackendpartitiontable.h>
|
||||
#include <kpmcore/core/device.h>
|
||||
#include <kpmcore/core/lvmdevice.h>
|
||||
#include <kpmcore/core/partition.h>
|
||||
#include <kpmcore/core/partitiontable.h>
|
||||
#include <kpmcore/fs/filesystem.h>
|
||||
#include <kpmcore/ops/newoperation.h>
|
||||
#include <kpmcore/util/report.h>
|
||||
|
||||
// Qt
|
||||
@ -78,68 +75,15 @@ CreatePartitionJob::prettyStatusMessage() const
|
||||
Calamares::JobResult
|
||||
CreatePartitionJob::exec()
|
||||
{
|
||||
int step = 0;
|
||||
const qreal stepCount = 4;
|
||||
|
||||
Report report( nullptr );
|
||||
NewOperation op(*m_device, m_partition);
|
||||
op.setStatus(Operation::StatusRunning);
|
||||
|
||||
QString message = tr( "The installer failed to create partition on disk '%1'." ).arg( m_device->name() );
|
||||
|
||||
progress( step++ / stepCount );
|
||||
CoreBackend* backend = CoreBackendManager::self()->backend();
|
||||
QScopedPointer<CoreBackendDevice> backendDevice( backend->openDevice( m_device->deviceNode() ) );
|
||||
if ( !backendDevice.data() )
|
||||
{
|
||||
return Calamares::JobResult::error(
|
||||
message,
|
||||
tr( "Could not open device '%1'." ).arg( m_device->deviceNode() )
|
||||
);
|
||||
}
|
||||
|
||||
progress( step++ / stepCount );
|
||||
QScopedPointer<CoreBackendPartitionTable> backendPartitionTable( backendDevice->openPartitionTable() );
|
||||
if ( !backendPartitionTable.data() )
|
||||
{
|
||||
return Calamares::JobResult::error(
|
||||
message,
|
||||
tr( "Could not open partition table." )
|
||||
);
|
||||
}
|
||||
|
||||
progress( step++ / stepCount );
|
||||
QString partitionPath = backendPartitionTable->createPartition( report, *m_partition );
|
||||
if ( partitionPath.isEmpty() )
|
||||
{
|
||||
return Calamares::JobResult::error(
|
||||
message,
|
||||
report.toText()
|
||||
);
|
||||
}
|
||||
m_partition->setPartitionPath( partitionPath );
|
||||
backendPartitionTable->commit();
|
||||
|
||||
progress( step++ / stepCount );
|
||||
FileSystem& fs = m_partition->fileSystem();
|
||||
if ( fs.type() == FileSystem::Unformatted || fs.type() == FileSystem::Extended )
|
||||
if (op.execute(report))
|
||||
return Calamares::JobResult::ok();
|
||||
|
||||
if ( !fs.create( report, partitionPath ) )
|
||||
{
|
||||
return Calamares::JobResult::error(
|
||||
tr( "The installer failed to create file system on partition %1." ).arg( partitionPath ),
|
||||
report.toText()
|
||||
);
|
||||
}
|
||||
|
||||
if ( !backendPartitionTable->setPartitionSystemType( report, *m_partition ) )
|
||||
{
|
||||
return Calamares::JobResult::error(
|
||||
tr( "The installer failed to update partition table on disk '%1'." ).arg( m_device->name() ),
|
||||
report.toText()
|
||||
);
|
||||
}
|
||||
|
||||
backendPartitionTable->commit();
|
||||
return Calamares::JobResult::ok();
|
||||
return Calamares::JobResult::error(message, report.toText());
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include <kpmcore/backend/corebackend.h>
|
||||
#include <kpmcore/backend/corebackendmanager.h>
|
||||
#include <kpmcore/backend/corebackenddevice.h>
|
||||
#include <kpmcore/backend/corebackendpartition.h>
|
||||
#include <kpmcore/backend/corebackendpartitiontable.h>
|
||||
#include <kpmcore/core/device.h>
|
||||
#include <kpmcore/core/partition.h>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user