From 83639b182baaf4d992e7e98083852b664f8a757e Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 13 Feb 2018 10:26:04 -0500 Subject: [PATCH 01/55] CMake: try installing outside of regular lib/ - Install unversioned libraries - Install to lib/calamares instead of directly to lib/ --- src/libcalamares/CMakeLists.txt | 13 ++----------- src/libcalamaresui/CMakeLists.txt | 3 ++- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 2a1cfeb20..3ee03dd96 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -83,8 +83,6 @@ add_library( calamares SHARED ${libSources} ${kdsagSources} ${utilsSources} ) set_target_properties( calamares PROPERTIES AUTOMOC TRUE - VERSION ${CALAMARES_VERSION_SHORT} - SOVERSION ${CALAMARES_VERSION_SHORT} ) target_link_libraries( calamares @@ -95,17 +93,10 @@ target_link_libraries( calamares install( TARGETS calamares EXPORT CalamaresLibraryDepends RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/calamares/ + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/calamares/ ) -# Make symlink lib/calamares/libcalamares.so to lib/libcalamares.so.VERSION so -# lib/calamares can be used as module path for the Python interpreter. -install( CODE " - file( MAKE_DIRECTORY \"\$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}/calamares\" ) - execute_process( COMMAND \"${CMAKE_COMMAND}\" -E create_symlink ../libcalamares.so.${CALAMARES_VERSION_SHORT} libcalamares.so WORKING_DIRECTORY \"\$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}/calamares\" ) -") - # Install header files file( GLOB rootHeaders "*.h" ) file( GLOB kdsingleapplicationguardHeaders "kdsingleapplicationguard/*.h" ) diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 7c3e8fca2..9ef52716b 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -78,5 +78,6 @@ calamares_add_library( calamaresui Qt5::QuickWidgets RESOURCES libcalamaresui.qrc EXPORT CalamaresLibraryDepends - VERSION ${CALAMARES_VERSION_SHORT} + NO_VERSION + INSTALL_BINDIR ${CMAKE_INSTALL_LIBDIR}/calamares/ ) From af67ab27229cb23a05337b6a93e3f668130da021 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 14 Feb 2018 04:55:21 -0500 Subject: [PATCH 02/55] CMake: install missing module - The CMake modules for Calamares expect to find CMakeColors - Also the translation support macro - Restore CalamaresUse.cmake - File was removed after 3.1 in db105079, but it is actually useful for out-of-tree modules. Restore it and massage into better shape. - Simplify by adding path to the search path (otherwise the individual macro files would also have to switch to including with a full path). --- CMakeLists.txt | 4 ++++ CalamaresUse.cmake.in | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 CalamaresUse.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index f051e49c6..5ccc8b1c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -340,16 +340,20 @@ file( RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMA configure_file( CalamaresConfig.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" @ONLY ) configure_file( CalamaresConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake" @ONLY ) +configure_file( CalamaresUse.cmake.in "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" @ONLY ) # Install the cmake files install( FILES "${PROJECT_BINARY_DIR}/CalamaresConfig.cmake" "${PROJECT_BINARY_DIR}/CalamaresConfigVersion.cmake" + "${PROJECT_BINARY_DIR}/CalamaresUse.cmake" "CMakeModules/CalamaresAddPlugin.cmake" "CMakeModules/CalamaresAddModuleSubdirectory.cmake" "CMakeModules/CalamaresAddLibrary.cmake" "CMakeModules/CalamaresAddBrandingSubdirectory.cmake" + "CMakeModules/CalamaresAddTranslations.cmake" + "CMakeModules/CMakeColors.cmake" DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" ) diff --git a/CalamaresUse.cmake.in b/CalamaresUse.cmake.in new file mode 100644 index 000000000..474704ec1 --- /dev/null +++ b/CalamaresUse.cmake.in @@ -0,0 +1,29 @@ +# A setup-cmake-things-for-Calamares module. +# +# This module handles looking for dependencies and including +# all of the Calamares macro modules, so that you can focus +# on just using the macros to build Calamares modules. +# Typical use looks like this: +# +# ``` +# find_package( Calamares REQUIRED ) +# include( "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake" ) +# ``` +# +# The first CMake command finds Calamares (which will contain +# this file), then adds the found location to the search path, +# and then includes this file. After that, you can use +# Calamares module and plugin macros. + +if( NOT CALAMARES_CMAKE_DIR ) + message( FATAL_ERROR "Use find_package(Calamares) first." ) +endif() +set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CALAMARES_CMAKE_DIR} ) + +find_package( Qt5 @QT_VERSION@ CONFIG REQUIRED Core Widgets ) + +include( CalamaresAddLibrary ) +include( CalamaresAddModuleSubdirectory ) +include( CalamaresAddPlugin ) +include( CalamaresAddBrandingSubdirectory ) + From f047b0b110c9feafc229f42729e5810a7c0ac6be Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 14 Feb 2018 13:41:12 -0500 Subject: [PATCH 03/55] CMake: reduce duplicate ECM searches --- CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ccc8b1c8..5f8c96777 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,16 +126,12 @@ set( QT_VERSION 5.6.0 ) find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools Svg Quick QuickWidgets ) find_package( YAMLCPP 0.5.1 REQUIRED ) find_package( PolkitQt5-1 REQUIRED ) -find_package(ECM 5.18 NO_MODULE) -if( ECM_FOUND ) - set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) -endif() # Find ECM once, and add it to the module search path; Calamares # modules that need ECM can do # find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE), # no need to mess with the module path after. -set( ECM_VERSION 5.10.0 ) +set( ECM_VERSION 5.18 ) find_package(ECM ${ECM_VERSION} NO_MODULE) if( ECM_FOUND ) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH}) From 0c16bf11796cf609cf712fa7872fa7d90542b072 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 19 Feb 2018 16:55:34 -0500 Subject: [PATCH 04/55] [finished] Remove useless debugging --- src/modules/finished/FinishedPage.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/modules/finished/FinishedPage.cpp b/src/modules/finished/FinishedPage.cpp index 377a1155c..ca03ccb89 100644 --- a/src/modules/finished/FinishedPage.cpp +++ b/src/modules/finished/FinishedPage.cpp @@ -40,7 +40,6 @@ FinishedPage::FinishedPage( QWidget* parent ) , ui( new Ui::FinishedPage ) , m_restartSetUp( false ) { - cDebug() << "FinishedPage()"; ui->setupUi( this ); ui->mainText->setAlignment( Qt::AlignCenter ); From d62c7b93c627b122904656610a3f476946faece8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 19 Feb 2018 17:17:03 -0500 Subject: [PATCH 05/55] [libcalamares] Polish weird namespace use --- src/libcalamares/utils/Logger.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index 69a370451..24c853bea 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -154,10 +154,6 @@ setupLogfile() qInstallMessageHandler( CalamaresLogHandler ); } -} - -using namespace Logger; - CLog::CLog( unsigned int debugLevel ) : QDebug( &m_msg ) , m_debugLevel( debugLevel ) @@ -170,6 +166,8 @@ CLog::~CLog() log( m_msg.toUtf8().data(), m_debugLevel ); } -Logger::CDebug::~CDebug() +CDebug::~CDebug() { } + +} // namespace From dbbec4f76d44c9c18a5847a56782d9c5d0c90259 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 19 Feb 2018 17:23:05 -0500 Subject: [PATCH 06/55] [libcalamares] Use cDebug, polish messages --- src/libcalamares/utils/CalamaresUtils.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/libcalamares/utils/CalamaresUtils.cpp b/src/libcalamares/utils/CalamaresUtils.cpp index c0175f771..fe07c62a0 100644 --- a/src/libcalamares/utils/CalamaresUtils.cpp +++ b/src/libcalamares/utils/CalamaresUtils.cpp @@ -24,6 +24,7 @@ #include "CalamaresUtils.h" #include "CalamaresConfig.h" +#include "Logger.h" #include #include @@ -166,11 +167,11 @@ installTranslator( const QLocale& locale, "_", brandingTranslationsDir.absolutePath() ) ) { - qDebug() << "Translation: Branding component: Using system locale:" << localeName; + cDebug() << "Translation: Branding using locale:" << localeName; } else { - qDebug() << "Translation: Branding component: Using default locale, system locale one not found:" << localeName; + cDebug() << "Translation: Branding using default, system locale not found:" << localeName; translator->load( brandingTranslationsPrefix + "en" ); } @@ -189,11 +190,11 @@ installTranslator( const QLocale& locale, translator = new QTranslator( parent ); if ( translator->load( QString( ":/lang/calamares_" ) + localeName ) ) { - qDebug() << "Translation: Calamares: Using system locale:" << localeName; + cDebug() << "Translation: Calamares using locale:" << localeName; } else { - qDebug() << "Translation: Calamares: Using default locale, system locale one not found:" << localeName; + cDebug() << "Translation: Calamares using default, system locale not found:" << localeName; translator->load( QString( ":/lang/calamares_en" ) ); } From 84d599625f156f5a34e5d0d7ce331c0e11ed8c90 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 20 Feb 2018 04:26:59 -0500 Subject: [PATCH 07/55] [libcalamares] Give Python jobs a warning() - Add libcalamares.utils.warning() alongside debug() for Python modules to output warnings. --- src/libcalamares/PythonJob.cpp | 7 +++++++ src/libcalamares/PythonJobApi.cpp | 5 +++++ src/libcalamares/PythonJobApi.h | 1 + 3 files changed, 13 insertions(+) diff --git a/src/libcalamares/PythonJob.cpp b/src/libcalamares/PythonJob.cpp index 48682dbad..92dbedef9 100644 --- a/src/libcalamares/PythonJob.cpp +++ b/src/libcalamares/PythonJob.cpp @@ -99,6 +99,13 @@ BOOST_PYTHON_MODULE( libcalamares ) bp::args( "s" ), "Writes the given string to the Calamares debug stream." ); + bp::def( + "warning", + &CalamaresPython::warning, + bp::args( "s" ), + "Writes the given string to the Calamares warning stream." + ); + bp::def( "mount", &CalamaresPython::mount, diff --git a/src/libcalamares/PythonJobApi.cpp b/src/libcalamares/PythonJobApi.cpp index 9219ff1fc..a5bae6149 100644 --- a/src/libcalamares/PythonJobApi.cpp +++ b/src/libcalamares/PythonJobApi.cpp @@ -171,6 +171,11 @@ debug( const std::string& s ) cDebug() << "[PYTHON JOB]: " << QString::fromStdString( s ); } +void +warning( const std::string& s ) +{ + cWarning() << "[PYTHON JOB]: " << QString::fromStdString( s ); +} PythonJobInterface::PythonJobInterface( Calamares::PythonJob* parent ) : m_parent( parent ) diff --git a/src/libcalamares/PythonJobApi.h b/src/libcalamares/PythonJobApi.h index aed9b3d77..0e68d7936 100644 --- a/src/libcalamares/PythonJobApi.h +++ b/src/libcalamares/PythonJobApi.h @@ -66,6 +66,7 @@ boost::python::object gettext_path(); boost::python::list gettext_languages(); void debug( const std::string& s ); +void warning( const std::string& s ); class PythonJobInterface { From 060990bdd0be5d3a655c60bc70e2c06447f7abf1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 20 Feb 2018 04:42:56 -0500 Subject: [PATCH 08/55] Python: use warning() method in modules --- src/modules/packages/main.py | 11 ++++++----- src/modules/umount/main.py | 3 ++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index f066b8292..b246244f5 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -7,6 +7,7 @@ # Copyright 2015-2017, Teo Mrnjavac # Copyright 2016-2017, Kyle Robbertze # Copyright 2017, Alf Gaida +# Copyright 2018, Adriaan de Groot # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -394,9 +395,9 @@ def run_operations(pkgman, entry): try: pkgman.install_package(package) except subprocess.CalledProcessError: - warn_text = "WARNING: could not install package " + warn_text = "Could not install package " warn_text += str(package) - libcalamares.utils.debug(warn_text) + libcalamares.utils.warning(warn_text) elif key == "remove": _change_mode(REMOVE) pkgman.remove(entry[key]) @@ -406,9 +407,9 @@ def run_operations(pkgman, entry): try: pkgman.remove([package]) except subprocess.CalledProcessError: - warn_text = "WARNING: could not remove package " + warn_text = "Could not remove package " warn_text += package - libcalamares.utils.debug(warn_text) + libcalamares.utils.warning(warn_text) elif key == "localInstall": _change_mode(INSTALL) pkgman.install(entry[key], from_local=True) @@ -441,7 +442,7 @@ def run(): skip_this = libcalamares.job.configuration.get("skip_if_no_internet", False) if skip_this and not libcalamares.globalstorage.value("hasInternet"): - libcalamares.utils.debug( "WARNING: packages installation has been skipped: no internet" ) + libcalamares.utils.warning( "Package installation has been skipped: no internet" ) return None update_db = libcalamares.job.configuration.get("update_db", False) diff --git a/src/modules/umount/main.py b/src/modules/umount/main.py index 5a04796f6..7a796684a 100644 --- a/src/modules/umount/main.py +++ b/src/modules/umount/main.py @@ -5,6 +5,7 @@ # # Copyright 2014, Aurélien Gâteau # Copyright 2016, Anke Boersma +# Copyright 2018, Adriaan de Groot # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -65,7 +66,7 @@ def run(): try: shutil.copy2(log_source, log_destination) except Exception as e: - libcalamares.utils.debug("WARNING Could not preserve file {!s}, " + libcalamares.utils.warning("Could not preserve file {!s}, " "error {!s}".format(log_source, e)) if not root_mount_point: From 247a0e3a56ca7072fac4b7f848862179d547d1ab Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 20 Feb 2018 04:49:51 -0500 Subject: [PATCH 09/55] [umount] Make a pretty_name() --- src/modules/umount/main.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/modules/umount/main.py b/src/modules/umount/main.py index 7a796684a..a337c481a 100644 --- a/src/modules/umount/main.py +++ b/src/modules/umount/main.py @@ -25,6 +25,19 @@ import subprocess import shutil import libcalamares +from libcalamares.utils import gettext_path, gettext_languages + +import gettext +_translation = gettext.translation("calamares-python", + localedir=gettext_path(), + languages=gettext_languages(), + fallback=True) +_ = _translation.gettext +_n = _translation.ngettext + + +def pretty_name(): + return _( "Unmount file systems." ) def list_mounts(root_mount_point): From a1cbb161eef5d21862d94fcc77e69ab778400250 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 20 Feb 2018 07:37:44 -0500 Subject: [PATCH 10/55] [libcalamares] Make setup of log-level explicit - Replace the implicit setting of a logging level (the first time logging is called) with explicit setupLogLevel(). --- src/libcalamares/utils/Logger.cpp | 31 ++++++++++++++----------------- src/libcalamares/utils/Logger.h | 11 +++++++++++ 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index 24c853bea..fe95ad36b 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -35,31 +35,28 @@ #define LOGFILE_SIZE 1024 * 256 static std::ofstream logfile; -static unsigned int s_threshold = 0; // Set to non-zero on first logging call +static unsigned int s_threshold = +#ifdef QT_NO_DEBUG + Logger::LOG_DISABLE; +#else + Logger::LOGEXTRA + 1; // Comparison is < in log() function +#endif static QMutex s_mutex; namespace Logger { +void +setupLogLevel(unsigned int level) +{ + if ( level > LOGVERBOSE ) + level = LOGVERBOSE; + s_threshold = level + 1; // Comparison is < in log() function +} + static void log( const char* msg, unsigned int debugLevel, bool toDisk = true ) { - if ( !s_threshold ) - { - if ( qApp->arguments().contains( "--debug" ) || - qApp->arguments().contains( "-d" ) || - qApp->arguments().contains( "-D" ) ) - s_threshold = LOGVERBOSE; - else -#ifdef QT_NO_DEBUG - s_threshold = LOG_DISABLE; -#else - s_threshold = LOGEXTRA; -#endif - // Comparison is < threshold, below - ++s_threshold; - } - if ( toDisk || debugLevel < s_threshold ) { QMutexLocker lock( &s_mutex ); diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index b6c0b4fa7..b6211c4fe 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -61,6 +61,17 @@ namespace Logger DLLEXPORT void CalamaresLogHandler( QtMsgType type, const QMessageLogContext& context, const QString& msg ); DLLEXPORT void setupLogfile(); DLLEXPORT QString logFile(); + + /** + * @brief Set a log level for future logging. + * + * Pass in a value from the LOG* enum, above. Use 0 to + * disable logging. Values greater than LOGVERBOSE are + * limited to LOGVERBOSE, which will log everything. + * + * Practical values are 0, 1, 2, and 6. + */ + DLLEXPORT void setupLogLevel( unsigned int level ); } #define cLog Logger::CLog From de1710a9f36a587898251f9e299b738f8972ebba Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 20 Feb 2018 07:41:37 -0500 Subject: [PATCH 11/55] [calamares] Refactor argument-handling - Move parameter handling out of main - Give -D an argument (log level) --- src/calamares/main.cpp | 62 +++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp index 04e0dab3b..1c1ba2181 100644 --- a/src/calamares/main.cpp +++ b/src/calamares/main.cpp @@ -35,6 +35,45 @@ #include #include +static void +handle_args( CalamaresApplication& a ) +{ + QCommandLineOption debugOption( QStringList{ "d", "debug"}, + "Also look in current directory for configuration. Implies -D8." ); + QCommandLineOption debugLevelOption( QStringLiteral("D"), + "Verbose output for debugging purposes (0-8).", "level" ); + QCommandLineOption configOption( QStringList{ "c", "config"}, + "Configuration directory to use, for testing purposes.", "config" ); + + QCommandLineParser parser; + parser.setApplicationDescription( "Distribution-independent installer framework" ); + parser.addHelpOption(); + parser.addVersionOption(); + + parser.addOption( debugOption ); + parser.addOption( debugLevelOption ); + parser.addOption( configOption ); + + parser.process( a ); + + a.setDebug( parser.isSet( debugOption ) ); + if ( parser.isSet( debugOption ) ) + Logger::setupLogLevel( Logger::LOGVERBOSE ); + else if ( parser.isSet( debugLevelOption ) ) + { + bool ok = true; + int l = parser.value( debugLevelOption ).toInt( &ok ); + unsigned int dlevel = 0; + if ( !ok || ( l < 0 ) ) + dlevel = Logger::LOGVERBOSE; + else + dlevel = l; + Logger::setupLogLevel( dlevel ); + } + if ( parser.isSet( configOption ) ) + CalamaresUtils::setAppDataDir( QDir( parser.value( configOption ) ) ); +} + int main( int argc, char* argv[] ) { @@ -59,28 +98,7 @@ main( int argc, char* argv[] ) a.setApplicationDisplayName( QString() ); #endif - QCommandLineParser parser; - parser.setApplicationDescription( "Distribution-independent installer framework" ); - parser.addHelpOption(); - parser.addVersionOption(); - QCommandLineOption debugOption( QStringList{ "d", "debug"}, - "Also look in current directory for configuration. Implies -D." ); - parser.addOption( debugOption ); - - parser.addOption( QCommandLineOption( QStringLiteral("D"), - "Verbose output for debugging purposes." ) ); - - QCommandLineOption configOption( QStringList{ "c", "config"}, - "Configuration directory to use, for testing purposes.", "config" ); - parser.addOption( configOption ); - - parser.process( a ); - - a.setDebug( parser.isSet( debugOption ) ); - - if ( parser.isSet( configOption ) ) - CalamaresUtils::setAppDataDir( QDir( parser.value( configOption ) ) ); - + handle_args( a ); KDSingleApplicationGuard guard( KDSingleApplicationGuard::AutoKillOtherInstances ); int returnCode = 0; From db0c1ffd6de9dd8d6b8f83519f7d3a973c884950 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 19 Feb 2018 04:23:56 -0500 Subject: [PATCH 12/55] CMake: just install unversioned .so - Applies to libcalamares and libcalamaresui.so, install with no version, just the bare .so. Since Calamares doesn't do versioning anyway, and its plugins should be re-compiled for any change, putting them in lib as unversioned .so's should make Calamares happy and silence lintian. --- src/calamares/CMakeLists.txt | 2 +- src/libcalamares/CMakeLists.txt | 5 ++--- src/libcalamaresui/CMakeLists.txt | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index f47a0a9f5..fc4e508a2 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -42,7 +42,7 @@ add_calamares_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) set( final_src ${calamaresUi_H} ${calamaresSources} ${calamaresRc} ${trans_outfile} ) add_executable( calamares_bin ${final_src} ) -SET_TARGET_PROPERTIES(calamares_bin +set_target_properties(calamares_bin PROPERTIES AUTOMOC TRUE ENABLE_EXPORTS TRUE diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 3ee03dd96..94e9145d6 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -92,9 +92,8 @@ target_link_libraries( calamares install( TARGETS calamares EXPORT CalamaresLibraryDepends - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/calamares/ - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/calamares/ + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) # Install header files diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 9ef52716b..4d0ec8281 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -79,5 +79,4 @@ calamares_add_library( calamaresui RESOURCES libcalamaresui.qrc EXPORT CalamaresLibraryDepends NO_VERSION - INSTALL_BINDIR ${CMAKE_INSTALL_LIBDIR}/calamares/ ) From 56ce22908e61924edff14471839992ebda37ec42 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 21 Feb 2018 05:34:54 -0500 Subject: [PATCH 13/55] CMake: drop empty calamaresUi - Empty variable and some unused wrappings doing nothing. --- src/calamares/CMakeLists.txt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index fc4e508a2..270abbb88 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -18,10 +18,6 @@ set( calamaresSources progresstree/ViewStepItem.cpp ) -set( calamaresUi - #nothing to do here -) - include_directories( . ${CMAKE_CURRENT_BINARY_DIR} @@ -33,13 +29,11 @@ include_directories( include( GNUInstallDirs ) -qt5_wrap_ui( calamaresUi_H ${calamaresUi} ) - # Translations include( CalamaresAddTranslations ) add_calamares_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) -set( final_src ${calamaresUi_H} ${calamaresSources} ${calamaresRc} ${trans_outfile} ) +set( final_src ${calamaresSources} ${calamaresRc} ${trans_outfile} ) add_executable( calamares_bin ${final_src} ) set_target_properties(calamares_bin From 73a5e0bbcdee5279a5cfde28245be945d93f4d32 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 27 Feb 2018 01:09:43 +0100 Subject: [PATCH 14/55] [libcalamares] Fix up debugging Using plain cLog() is weird, it doesn't attach a debugging level so it seems like it's level 0, beyond-critical. --- src/libcalamares/ProcessJob.cpp | 14 ++++++------ .../utils/CalamaresUtilsSystem.cpp | 22 +++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/libcalamares/ProcessJob.cpp b/src/libcalamares/ProcessJob.cpp index 68287097e..55e25254c 100644 --- a/src/libcalamares/ProcessJob.cpp +++ b/src/libcalamares/ProcessJob.cpp @@ -106,16 +106,16 @@ ProcessJob::callOutput( const QString& command, process.setWorkingDirectory( QDir( workingPath ).absolutePath() ); else { - cLog() << "Invalid working directory:" << workingPath; + cWarning() << "Invalid working directory:" << workingPath; return -3; } } - cLog() << "Running" << command; + cDebug() << "Running" << command; process.start(); if ( !process.waitForStarted() ) { - cLog() << "Process failed to start" << process.error(); + cWarning() << "Process failed to start" << process.error(); return -2; } @@ -127,9 +127,9 @@ ProcessJob::callOutput( const QString& command, if ( !process.waitForFinished( timeoutSec ? ( timeoutSec * 1000 ) : -1 ) ) { - cLog() << "Timed out. output so far:"; + cWarning() << "Timed out. output so far:"; output.append( QString::fromLocal8Bit( process.readAllStandardOutput() ).trimmed() ); - cLog() << output; + cWarning() << output; return -4; } @@ -137,11 +137,11 @@ ProcessJob::callOutput( const QString& command, if ( process.exitStatus() == QProcess::CrashExit ) { - cLog() << "Process crashed"; + cWarning() << "Process crashed"; return -1; } - cLog() << "Finished. Exit code:" << process.exitCode(); + cDebug() << "Finished. Exit code:" << process.exitCode(); return process.exitCode(); } diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.cpp b/src/libcalamares/utils/CalamaresUtilsSystem.cpp index 9729386d4..54243553a 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.cpp +++ b/src/libcalamares/utils/CalamaresUtilsSystem.cpp @@ -117,7 +117,7 @@ System::runCommand( if ( ( location == System::RunLocation::RunInTarget ) && ( !gs || !gs->contains( "rootMountPoint" ) ) ) { - cLog() << "No rootMountPoint in global storage"; + cWarning() << "No rootMountPoint in global storage"; return -3; } @@ -130,7 +130,7 @@ System::runCommand( QString destDir = gs->value( "rootMountPoint" ).toString(); if ( !QDir( destDir ).exists() ) { - cLog() << "rootMountPoint points to a dir which does not exist"; + cWarning() << "rootMountPoint points to a dir which does not exist"; return -3; } @@ -153,15 +153,15 @@ System::runCommand( if ( QDir( workingPath ).exists() ) process.setWorkingDirectory( QDir( workingPath ).absolutePath() ); else - cLog() << "Invalid working directory:" << workingPath; + cWarning() << "Invalid working directory:" << workingPath; return -3; } - cLog() << "Running" << program << arguments; + cDebug() << "Running" << program << arguments; process.start(); if ( !process.waitForStarted() ) { - cLog() << "Process failed to start" << process.error(); + cWarning() << "Process failed to start" << process.error(); return -2; } @@ -173,8 +173,8 @@ System::runCommand( if ( !process.waitForFinished( timeoutSec ? ( timeoutSec * 1000 ) : -1 ) ) { - cLog() << "Timed out. output so far:"; - cLog() << process.readAllStandardOutput(); + cWarning() << "Timed out. output so far:\n" << + process.readAllStandardOutput(); return -4; } @@ -182,16 +182,16 @@ System::runCommand( if ( process.exitStatus() == QProcess::CrashExit ) { - cLog() << "Process crashed"; + cWarning() << "Process crashed"; return -1; } auto r = process.exitCode(); - cLog() << "Finished. Exit code:" << r; + cDebug() << "Finished. Exit code:" << r; if ( r != 0 ) { - cLog() << "Target cmd:" << args; - cLog().noquote() << "Target output:\n" << output; + cDebug() << "Target cmd:" << args; + cDebug().noquote() << "Target output:\n" << output; } return ProcessResult(r, output); } From 09f30194d799231a63d63814cccc7ab913beb46b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 1 Mar 2018 12:37:52 +0100 Subject: [PATCH 15/55] CMake: revert un-versioning of libcalamares*.so The install-bits branch commit 83639b182baaf4d992e7e98083852b664f8a757e dropped .so-versioning for libcalamares and the creation of the Python- support symlink. This broke KDE Neon dev-unstable because the embedded Python can no longer find libcalamares. Installing unversioned .so's straight to LIBDIR is also not a good thing (according to Debian), so revert to the original scheme with versioned .so and a Python-support symlink. Medium-term fix is to install unversioned straight into LIBDIR/calamares and fix up the RPATH for the executable. --- src/libcalamares/CMakeLists.txt | 10 ++++++++++ src/libcalamaresui/CMakeLists.txt | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 94e9145d6..2a1cfeb20 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -83,6 +83,8 @@ add_library( calamares SHARED ${libSources} ${kdsagSources} ${utilsSources} ) set_target_properties( calamares PROPERTIES AUTOMOC TRUE + VERSION ${CALAMARES_VERSION_SHORT} + SOVERSION ${CALAMARES_VERSION_SHORT} ) target_link_libraries( calamares @@ -92,10 +94,18 @@ target_link_libraries( calamares install( TARGETS calamares EXPORT CalamaresLibraryDepends + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +# Make symlink lib/calamares/libcalamares.so to lib/libcalamares.so.VERSION so +# lib/calamares can be used as module path for the Python interpreter. +install( CODE " + file( MAKE_DIRECTORY \"\$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}/calamares\" ) + execute_process( COMMAND \"${CMAKE_COMMAND}\" -E create_symlink ../libcalamares.so.${CALAMARES_VERSION_SHORT} libcalamares.so WORKING_DIRECTORY \"\$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}/calamares\" ) +") + # Install header files file( GLOB rootHeaders "*.h" ) file( GLOB kdsingleapplicationguardHeaders "kdsingleapplicationguard/*.h" ) diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 4d0ec8281..7c3e8fca2 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -78,5 +78,5 @@ calamares_add_library( calamaresui Qt5::QuickWidgets RESOURCES libcalamaresui.qrc EXPORT CalamaresLibraryDepends - NO_VERSION + VERSION ${CALAMARES_VERSION_SHORT} ) From b07185315b1f67588ae46e032140ae6718fd2212 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 1 Mar 2018 15:42:24 +0100 Subject: [PATCH 16/55] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_ca.ts | 2 +- lang/calamares_da.ts | 30 ++++++------- lang/calamares_hr.ts | 95 +++++++++++++++++++++-------------------- lang/calamares_ja.ts | 12 +++--- lang/calamares_pt_BR.ts | 58 ++++++++++++------------- lang/calamares_ru.ts | 16 +++---- lang/calamares_sk.ts | 26 +++++------ lang/calamares_zh_CN.ts | 95 +++++++++++++++++++++-------------------- 8 files changed, 168 insertions(+), 166 deletions(-) diff --git a/lang/calamares_ca.ts b/lang/calamares_ca.ts index 7b50fbc0d..c9f76e58e 100644 --- a/lang/calamares_ca.ts +++ b/lang/calamares_ca.ts @@ -1865,7 +1865,7 @@ Sortida: Bad parameters for process job call. - Paràmetres incorrectes per a la crida del procés. + Paràmetres incorrectes per a la crida de la tasca del procés. diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index 644014970..c1122d135 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -1244,7 +1244,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. Memory allocation error when setting '%1' - + Fejl ved allokering af hukommelse ved sættelse af '%1' @@ -1264,7 +1264,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The password differs with case changes only - + Adgangskoden har kun ændringer i store/små bogstaver @@ -1279,7 +1279,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The password contains words from the real name of the user in some form - + Adgangskoden indeholder i nogen form ord fra brugerens rigtige navn @@ -1319,12 +1319,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The password contains less than %1 non-alphanumeric characters - + Adgangskoden indeholder færre end %1 ikke-alfanumeriske tegn The password contains too few non-alphanumeric characters - + Adgangskoden indeholder for få ikke-alfanumeriske tegn @@ -1354,32 +1354,32 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The password contains more than %1 same characters consecutively - + Adgangskoden indeholder flere end %1 af de samme tegn i træk The password contains too many same characters consecutively - + Adgangskoden indeholder for mange af de samme tegn i træk The password contains more than %1 characters of the same class consecutively - + Adgangskoden indeholder flere end %1 tegn af den samme klasse i træk The password contains too many characters of the same class consecutively - + Adgangskoden indeholder for mange tegn af den samme klasse i træk The password contains monotonic sequence longer than %1 characters - + Adgangskoden indeholder monoton sekvens som er længere end %1 tegn The password contains too long of a monotonic character sequence - + Adgangskoden indeholder en monoton tegnsekvens som er for lang @@ -1394,17 +1394,17 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. Password generation failed - required entropy too low for settings - + Generering af adgangskode mislykkedes - krævede entropi er for lav til indstillinger The password fails the dictionary check - %1 - + Adgangskoden bestod ikke ordbogstjekket - %1 The password fails the dictionary check - + Adgangskoden bestod ikke ordbogstjekket @@ -1419,7 +1419,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. Bad integer value of setting - %1 - + Dårlig heltalsværdi til indstilling - %1 diff --git a/lang/calamares_hr.ts b/lang/calamares_hr.ts index e8aed46df..0561f8b38 100644 --- a/lang/calamares_hr.ts +++ b/lang/calamares_hr.ts @@ -1239,232 +1239,232 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. Password is too weak - + Lozinka je preslaba Memory allocation error when setting '%1' - + Pogreška u dodjeli memorije prilikom postavljanja '%1' Memory allocation error - + Pogreška u dodjeli memorije The password is the same as the old one - + Lozinka je ista prethodnoj The password is a palindrome - + Lozinka je palindrom The password differs with case changes only - + Lozinka se razlikuje samo u promjenama velikog i malog slova The password is too similar to the old one - + Lozinka je slična prethodnoj The password contains the user name in some form - + Lozinka u nekoj formi sadrži korisničko ime The password contains words from the real name of the user in some form - + Lozinka u nekoj formi sadrži stvarno ime korisnika The password contains forbidden words in some form - + Lozinka u nekoj formi sadrži zabranjene rijeći The password contains less than %1 digits - + Lozinka sadrži manje od %1 brojeva The password contains too few digits - + Lozinka sadrži premalo brojeva The password contains less than %1 uppercase letters - + Lozinka sadrži manje od %1 velikih slova The password contains too few uppercase letters - + Lozinka sadrži premalo velikih slova The password contains less than %1 lowercase letters - + Lozinka sadrži manje od %1 malih slova The password contains too few lowercase letters - + Lozinka sadrži premalo malih slova The password contains less than %1 non-alphanumeric characters - + Lozinka sadrži manje od %1 ne-alfanumeričkih znakova. The password contains too few non-alphanumeric characters - + Lozinka sadrži premalo ne-alfanumeričkih znakova The password is shorter than %1 characters - + Lozinka je kraća od %1 znakova The password is too short - + Lozinka je prekratka The password is just rotated old one - + Lozinka je jednaka rotiranoj prethodnoj The password contains less than %1 character classes - + Lozinka sadrži manje od %1 razreda znakova The password does not contain enough character classes - + Lozinka ne sadrži dovoljno razreda znakova The password contains more than %1 same characters consecutively - + Lozinka sadrži više od %1 uzastopnih znakova The password contains too many same characters consecutively - + Lozinka sadrži previše uzastopnih znakova The password contains more than %1 characters of the same class consecutively - + Lozinka sadrži više od %1 uzastopnih znakova iz istog razreda The password contains too many characters of the same class consecutively - + Lozinka sadrži previše uzastopnih znakova iz istog razreda The password contains monotonic sequence longer than %1 characters - + Lozinka sadrži monotonu sekvencu dužu od %1 znakova The password contains too long of a monotonic character sequence - + Lozinka sadrži previše monotonu sekvencu znakova No password supplied - + Nema isporučene lozinke Cannot obtain random numbers from the RNG device - + Ne mogu dobiti slučajne brojeve od RNG uređaja Password generation failed - required entropy too low for settings - + Generiranje lozinke nije uspjelo - potrebna entropija je premala za postavke The password fails the dictionary check - %1 - + Nije uspjela provjera rječnika za lozinku - %1 The password fails the dictionary check - + Nije uspjela provjera rječnika za lozinku Unknown setting - %1 - + Nepoznate postavke - %1 Unknown setting - + Nepoznate postavke Bad integer value of setting - %1 - + Loša cjelobrojna vrijednost postavke - %1 Bad integer value - + Loša cjelobrojna vrijednost Setting %1 is not of integer type - + Postavka %1 nije cjelobrojnog tipa Setting is not of integer type - + Postavka nije cjelobrojnog tipa Setting %1 is not of string type - + Postavka %1 nije tipa znakovnog niza Setting is not of string type - + Postavka nije tipa znakovnog niza Opening the configuration file failed - + Nije uspjelo otvaranje konfiguracijske datoteke The configuration file is malformed - + Konfiguracijska datoteka je oštećena Fatal failure - + Fatalna pogreška Unknown error - + Nepoznata greška @@ -1825,7 +1825,8 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. There was no output from the command. - + +Nema izlazne informacije od naredbe. diff --git a/lang/calamares_ja.ts b/lang/calamares_ja.ts index 733a83366..34eb0c07b 100644 --- a/lang/calamares_ja.ts +++ b/lang/calamares_ja.ts @@ -486,7 +486,7 @@ The installer will quit and all changes will be lost. Contextual Processes Job - + コンテキストプロセスジョブ @@ -1370,7 +1370,7 @@ The installer will quit and all changes will be lost. The password contains too many characters of the same class consecutively - + パスワードで同じ文字クラスの文字を続けすぎています @@ -2326,7 +2326,7 @@ Output: Shell Processes Job - + シェルプロセスジョブ @@ -2441,17 +2441,17 @@ Output: By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - + インストールやハードウェアの情報を送信します。この情報はインストール終了後 <b> 1回だけ送信されます</b> 。 By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + %1 へのハードウェアやアプリケーションのインストール情報を定期的に送信します。 By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + %1 へのハードウェアやアプリケーションのインストール、使用法などの情報を定期的に送信します。 diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index 8ed9e679d..1caabe62b 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -749,7 +749,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. - Este é um dispositivo de <strong>loop</strong>.<br><br>Este é um pseudo-dispositivo sem tabela de partições que faz um arquivo acessível como um dispositivo de bloco. Este tipo de configuração normalmente contém apenas um único sistema de arquivos. + Este é um dispositivo de <strong>loop</strong>.<br><br>Esse é um pseudo-dispositivo sem tabela de partições que faz um arquivo acessível como um dispositivo de bloco. Esse tipo de configuração normalmente contém apenas um único sistema de arquivos. @@ -1261,12 +1261,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password is a palindrome - + A senha é um palíndromo The password differs with case changes only - + A senha difere apenas com mudanças entre maiúsculas ou minúsculas @@ -1276,12 +1276,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password contains the user name in some form - + A senha contém o nome de usuário em alguma forma The password contains words from the real name of the user in some form - + A senha contém palavras do nome real do usuário em alguma forma @@ -1291,27 +1291,27 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password contains less than %1 digits - + A senha contém menos de %1 dígitos The password contains too few digits - + A senha contém poucos dígitos The password contains less than %1 uppercase letters - + A senha contém menos que %1 letras maiúsculas The password contains too few uppercase letters - + A senha contém poucas letras maiúsculas The password contains less than %1 lowercase letters - + A senha contém menos que %1 letras minúsculas @@ -1321,7 +1321,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password contains less than %1 non-alphanumeric characters - + A senha contém menos que %1 caracteres não alfanuméricos @@ -1331,7 +1331,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password is shorter than %1 characters - + A senha é menor que %1 caracteres @@ -1341,22 +1341,22 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password is just rotated old one - + A senha é apenas uma antiga modificada The password contains less than %1 character classes - + A senha contém menos de %1 tipos de caracteres The password does not contain enough character classes - + A senha não contém tipos suficientes de caracteres The password contains more than %1 same characters consecutively - + A senha contém mais que %1 caracteres iguais consecutivamente @@ -1366,7 +1366,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password contains more than %1 characters of the same class consecutively - + A senha contém mais que %1 caracteres do mesmo tipo consecutivamente @@ -1376,12 +1376,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The password contains monotonic sequence longer than %1 characters - + A senha contém uma sequência monotônica com mais de %1 caracteres The password contains too long of a monotonic character sequence - + A senha contém uma sequência de caracteres monotônicos muito longa @@ -1396,22 +1396,22 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. Password generation failed - required entropy too low for settings - + A geração de senha falhou - a entropia requerida é muito baixa para as configurações The password fails the dictionary check - %1 - + A senha falhou na verificação do dicionário - %1 The password fails the dictionary check - + A senha falhou na verificação do dicionário Unknown setting - %1 - + Configuração desconhecida - %1 @@ -1421,17 +1421,17 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. Bad integer value of setting - %1 - + Valor de número inteiro errado na configuração - %1 Bad integer value - + Valor de número inteiro errado Setting %1 is not of integer type - + A configuração %1 não é do tipo inteiro @@ -1441,7 +1441,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. Setting %1 is not of string type - + A configuração %1 não é do tipo string @@ -1456,7 +1456,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. The configuration file is malformed - + O arquivo de configuração está defeituoso @@ -1778,7 +1778,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. - Uma partição de inicialização separada foi configurada juntamente com uma partição raiz criptografada, mas a partição de inicialização não é criptografada.<br/><br/>Há preocupações de segurança quanto a este tipo de configuração, porque arquivos de sistema importantes são mantidos em uma partição não criptografada.<br/>Você pode continuar se quiser, mas o desbloqueio do sistema de arquivos acontecerá mais tarde durante a inicialização do sistema.<br/>Para criptografar a partição de inicialização, volte e recrie-a, selecionando <strong>Criptografar</strong> na janela de criação da partição. + Uma partição de inicialização separada foi configurada juntamente com uma partição raiz criptografada, mas a partição de inicialização não é criptografada.<br/><br/>Há preocupações de segurança quanto a esse tipo de configuração, porque arquivos de sistema importantes são mantidos em uma partição não criptografada.<br/>Você pode continuar se quiser, mas o desbloqueio do sistema de arquivos acontecerá mais tarde durante a inicialização do sistema.<br/>Para criptografar a partição de inicialização, volte e recrie-a, selecionando <strong>Criptografar</strong> na janela de criação da partição. diff --git a/lang/calamares_ru.ts b/lang/calamares_ru.ts index 8484f5ca4..3fc140067 100644 --- a/lang/calamares_ru.ts +++ b/lang/calamares_ru.ts @@ -472,7 +472,7 @@ The installer will quit and all changes will be lost. Could not run command. - + Не удалось выполнить команду. @@ -1388,7 +1388,7 @@ The installer will quit and all changes will be lost. Cannot obtain random numbers from the RNG device - + Не удаётся получить случайные числа с устройства RNG @@ -1398,12 +1398,12 @@ The installer will quit and all changes will be lost. The password fails the dictionary check - %1 - + Пароль не прошёл проверку на использование словарных слов - %1 The password fails the dictionary check - + Пароль не прошёл проверку на использование словарных слов @@ -1448,7 +1448,7 @@ The installer will quit and all changes will be lost. Opening the configuration file failed - + Не удалось открыть конфигурационный файл @@ -1836,12 +1836,12 @@ Output: External command crashed. - + Сбой внешней команды. Command <i>%1</i> crashed. - + Сбой команды <i>%1</i>. @@ -1881,7 +1881,7 @@ Output: Command <i>%1</i> finished with exit code %2. - + Команда <i>%1</i> завершилась с кодом %2. diff --git a/lang/calamares_sk.ts b/lang/calamares_sk.ts index 66b4ef235..b196209c4 100644 --- a/lang/calamares_sk.ts +++ b/lang/calamares_sk.ts @@ -1249,7 +1249,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Memory allocation error - + Chyba počas vyhradzovania pamäte @@ -1274,12 +1274,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. The password contains the user name in some form - + Heslo obsahuje v nejakom tvare používateľské meno The password contains words from the real name of the user in some form - + Heslo obsahuje v nejakom tvare slová zo skutočného mena používateľa @@ -1384,12 +1384,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. No password supplied - + Nebolo poskytnuté žiadne heslo Cannot obtain random numbers from the RNG device - + Nedajú sa získať náhodné čísla zo zariadenia RNG @@ -1409,42 +1409,42 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Unknown setting - %1 - + Neznáme nastavenie - %1 Unknown setting - + Neznáme nastavenie Bad integer value of setting - %1 - + Nesprávna celočíselná hodnota nastavenia - %1 Bad integer value - + Nesprávna celočíselná hodnota Setting %1 is not of integer type - + Nastavenie %1 nie je celé číslo Setting is not of integer type - + Nastavenie nie je celé číslo Setting %1 is not of string type - + Nastavenie %1 nie je reťazec Setting is not of string type - + Nastavenie nie je reťazec diff --git a/lang/calamares_zh_CN.ts b/lang/calamares_zh_CN.ts index e1a46eeb7..4876bd82e 100644 --- a/lang/calamares_zh_CN.ts +++ b/lang/calamares_zh_CN.ts @@ -1241,232 +1241,232 @@ The installer will quit and all changes will be lost. Password is too weak - + 密码强度太弱 Memory allocation error when setting '%1' - + 设置“%1”时发生内存分配错误 Memory allocation error - + 内存分配错误 The password is the same as the old one - + 新密码和老密码一致 The password is a palindrome - + 新密码为回文 The password differs with case changes only - + 新密码和老密码只有大小写区别 The password is too similar to the old one - + 新密码和老密码过于相似 The password contains the user name in some form - + 新密码包含用户名 The password contains words from the real name of the user in some form - + 新密码包含用户真实姓名 The password contains forbidden words in some form - + 新密码包含不允许使用的词组 The password contains less than %1 digits - + 新密码包含少于 %1 个数字 The password contains too few digits - + 新密码包含太少数字 The password contains less than %1 uppercase letters - + 新密码包含少于 %1 个大写字母 The password contains too few uppercase letters - + 新密码包含太少大写字母 The password contains less than %1 lowercase letters - + 新密码包含少于 %1 个小写字母 The password contains too few lowercase letters - + 新密码包含太少小写字母 The password contains less than %1 non-alphanumeric characters - + 新密码包含少于 %1 个非字母/数字字符 The password contains too few non-alphanumeric characters - + 新密码包含太少非字母/数字字符 The password is shorter than %1 characters - + 新密码短于 %1 位 The password is too short - + 新密码过短 The password is just rotated old one - + 新密码仅对老密码作了字序调整 The password contains less than %1 character classes - + 新密码包含少于 %1 个字符类型 The password does not contain enough character classes - + 新密码包含太少字符类型 The password contains more than %1 same characters consecutively - + 新密码包含超过 %1 个连续的相同字符 The password contains too many same characters consecutively - + 新密码包含过多连续的相同字符 The password contains more than %1 characters of the same class consecutively - + 新密码包含超过 %1 个连续的同类型字符 The password contains too many characters of the same class consecutively - + 新密码包含过多连续的同类型字符 The password contains monotonic sequence longer than %1 characters - + 新密码包含超过 %1 个字符长度的单调序列 The password contains too long of a monotonic character sequence - + 新密码包含过长的单调序列 No password supplied - + 未输入密码 Cannot obtain random numbers from the RNG device - + 无法从随机数生成器 (RNG) 设备获取随机数 Password generation failed - required entropy too low for settings - + 无法生成密码 - 熵值过低 The password fails the dictionary check - %1 - + 新密码无法通过字典检查 - %1 The password fails the dictionary check - + 新密码无法通过字典检查 Unknown setting - %1 - + 未知设置 - %1 Unknown setting - + 未知设置 Bad integer value of setting - %1 - + 设置的整数值非法 - %1 Bad integer value - + 设置的整数值非法 Setting %1 is not of integer type - + 设定值 %1 不是整数类型 Setting is not of integer type - + 设定值不是整数类型 Setting %1 is not of string type - + 设定值 %1 不是字符串类型 Setting is not of string type - + 设定值不是字符串类型 Opening the configuration file failed - + 无法打开配置文件 The configuration file is malformed - + 配置文件格式不正确 Fatal failure - + 致命错误 Unknown error - + 未知错误 @@ -1827,7 +1827,8 @@ The installer will quit and all changes will be lost. There was no output from the command. - + +命令没有输出。 From 1762d5e5d6742dcef0080a49ff7dd14ac5ee7d8a Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 1 Mar 2018 15:42:24 +0100 Subject: [PATCH 17/55] i18n: [dummypythonqt] Automatic merge of Transifex translations --- .../lang/ar/LC_MESSAGES/dummypythonqt.mo | Bin 503 -> 503 bytes .../lang/ast/LC_MESSAGES/dummypythonqt.mo | Bin 918 -> 918 bytes .../lang/bg/LC_MESSAGES/dummypythonqt.mo | Bin 423 -> 423 bytes .../lang/ca/LC_MESSAGES/dummypythonqt.mo | Bin 956 -> 956 bytes .../lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo | Bin 997 -> 997 bytes .../lang/da/LC_MESSAGES/dummypythonqt.mo | Bin 929 -> 929 bytes .../lang/de/LC_MESSAGES/dummypythonqt.mo | Bin 937 -> 937 bytes .../lang/el/LC_MESSAGES/dummypythonqt.mo | Bin 419 -> 419 bytes .../lang/en_GB/LC_MESSAGES/dummypythonqt.mo | Bin 444 -> 444 bytes .../lang/es/LC_MESSAGES/dummypythonqt.mo | Bin 949 -> 949 bytes .../lang/es_ES/LC_MESSAGES/dummypythonqt.mo | Bin 435 -> 435 bytes .../lang/es_MX/LC_MESSAGES/dummypythonqt.mo | Bin 436 -> 436 bytes .../lang/es_PR/LC_MESSAGES/dummypythonqt.mo | Bin 441 -> 441 bytes .../lang/et/LC_MESSAGES/dummypythonqt.mo | Bin 422 -> 422 bytes .../lang/eu/LC_MESSAGES/dummypythonqt.mo | Bin 420 -> 420 bytes .../lang/fa/LC_MESSAGES/dummypythonqt.mo | Bin 414 -> 414 bytes .../lang/fi_FI/LC_MESSAGES/dummypythonqt.mo | Bin 539 -> 539 bytes .../lang/fr/LC_MESSAGES/dummypythonqt.mo | Bin 972 -> 972 bytes .../lang/fr_CH/LC_MESSAGES/dummypythonqt.mo | Bin 439 -> 439 bytes .../lang/gl/LC_MESSAGES/dummypythonqt.mo | Bin 422 -> 422 bytes .../lang/gu/LC_MESSAGES/dummypythonqt.mo | Bin 422 -> 422 bytes .../lang/he/LC_MESSAGES/dummypythonqt.mo | Bin 1036 -> 1036 bytes .../lang/hi/LC_MESSAGES/dummypythonqt.mo | Bin 419 -> 419 bytes .../lang/hr/LC_MESSAGES/dummypythonqt.mo | Bin 1026 -> 1026 bytes .../lang/hu/LC_MESSAGES/dummypythonqt.mo | Bin 918 -> 918 bytes .../lang/id/LC_MESSAGES/dummypythonqt.mo | Bin 940 -> 940 bytes .../lang/is/LC_MESSAGES/dummypythonqt.mo | Bin 947 -> 933 bytes .../lang/is/LC_MESSAGES/dummypythonqt.po | 4 ++-- .../lang/it_IT/LC_MESSAGES/dummypythonqt.mo | Bin 970 -> 970 bytes .../lang/ja/LC_MESSAGES/dummypythonqt.mo | Bin 953 -> 953 bytes .../lang/kk/LC_MESSAGES/dummypythonqt.mo | Bin 413 -> 413 bytes .../lang/kn/LC_MESSAGES/dummypythonqt.mo | Bin 414 -> 414 bytes .../lang/lo/LC_MESSAGES/dummypythonqt.mo | Bin 410 -> 410 bytes .../lang/lt/LC_MESSAGES/dummypythonqt.mo | Bin 1012 -> 1012 bytes .../lang/mr/LC_MESSAGES/dummypythonqt.mo | Bin 421 -> 421 bytes .../lang/nb/LC_MESSAGES/dummypythonqt.mo | Bin 431 -> 431 bytes .../lang/nl/LC_MESSAGES/dummypythonqt.mo | Bin 955 -> 955 bytes .../lang/pl/LC_MESSAGES/dummypythonqt.mo | Bin 1111 -> 1111 bytes .../lang/pl_PL/LC_MESSAGES/dummypythonqt.mo | Bin 581 -> 581 bytes .../lang/pt_BR/LC_MESSAGES/dummypythonqt.mo | Bin 998 -> 998 bytes .../lang/pt_PT/LC_MESSAGES/dummypythonqt.mo | Bin 986 -> 986 bytes .../lang/ro/LC_MESSAGES/dummypythonqt.mo | Bin 1001 -> 1001 bytes .../lang/ru/LC_MESSAGES/dummypythonqt.mo | Bin 917 -> 917 bytes .../lang/sk/LC_MESSAGES/dummypythonqt.mo | Bin 935 -> 935 bytes .../lang/sl/LC_MESSAGES/dummypythonqt.mo | Bin 475 -> 475 bytes .../lang/sq/LC_MESSAGES/dummypythonqt.mo | Bin 949 -> 949 bytes .../lang/sr/LC_MESSAGES/dummypythonqt.mo | Bin 1062 -> 1062 bytes .../sr@latin/LC_MESSAGES/dummypythonqt.mo | Bin 517 -> 517 bytes .../lang/sv/LC_MESSAGES/dummypythonqt.mo | Bin 421 -> 421 bytes .../lang/th/LC_MESSAGES/dummypythonqt.mo | Bin 411 -> 411 bytes .../lang/tr_TR/LC_MESSAGES/dummypythonqt.mo | Bin 991 -> 991 bytes .../lang/uk/LC_MESSAGES/dummypythonqt.mo | Bin 497 -> 497 bytes .../lang/ur/LC_MESSAGES/dummypythonqt.mo | Bin 418 -> 418 bytes .../lang/uz/LC_MESSAGES/dummypythonqt.mo | Bin 412 -> 412 bytes .../lang/zh_CN/LC_MESSAGES/dummypythonqt.mo | Bin 957 -> 957 bytes .../lang/zh_TW/LC_MESSAGES/dummypythonqt.mo | Bin 966 -> 966 bytes 56 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/dummypythonqt/lang/ar/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ar/LC_MESSAGES/dummypythonqt.mo index 17c753cce9102f9b637042f8ac60415db86ce6c4..8a59291af1fe5373cb4adfa81dd6b32b88d13463 100644 GIT binary patch delta 49 zcmey){GEA1nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSaIGPav Dm!1x1 delta 52 Vcmey){GEA1*~a-1jG7F@0s!VZ1kC^d diff --git a/src/modules/dummypythonqt/lang/ast/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ast/LC_MESSAGES/dummypythonqt.mo index 1248f129656c49f4324090d7c941eda1e5fceb03..a195bf9178d264a47112815b00ea81e32f17adff 100644 GIT binary patch delta 55 zcmbQnK8<}tDWh75u5(dpVo7Fxo~}z`Nvf5Ck%6JPu7Rblfr)~Fg_WThkYQl3xrou8 Jaq=yuJpjgD58eO( delta 57 ccmbQnK8<}tDdXmOj5drK3`By-H<|VV0NQv4LjV8( diff --git a/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo index 50331054f0593dc65d70844896700c4fad82bc64..470525ae3c03bfc99adf9ede7a19efd849d2daf4 100644 GIT binary patch delta 49 zcmZ3^yqtMLnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan41v* Dc>WD{ delta 52 VcmZ3^yqtML*~a-CjG7F@0sy$01Kj`s diff --git a/src/modules/dummypythonqt/lang/ca/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ca/LC_MESSAGES/dummypythonqt.mo index 2d39d8e2e8637f07ee080ca23ee8db8482f7a1d5..c8a3196f8525f5cc7614b42ce5229b6e42aa2397 100644 GIT binary patch delta 55 zcmdnPzK4CoTt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT?0#90}}-U3oAo2Aj805^DIUi K#>xMg_5uLk)DWEj delta 57 ccmdnPzK4CoT*l4E7%dq!7>ERu|1s?Y0Q$oR0ssI2 diff --git a/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo index 13a52e7e1a1a70c8215fef3f3a6cc36e9de40e30..183b7d5367dbfdaa6573a383e15988c7b642506d 100644 GIT binary patch delta 55 zcmaFL{*-;gTt>AJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T LBN!)3GoJzg?!XW) delta 57 ccmaFL{*-;gT*l4E7(*E~7>ERurI=3x01rt9ng9R* diff --git a/src/modules/dummypythonqt/lang/da/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/da/LC_MESSAGES/dummypythonqt.mo index 72e1815b5483c59e3853f1f61ec1b3998a5f2877..d18b7cd85cd3743289832099c1c406fe73ac2f0d 100644 GIT binary patch delta 55 zcmZ3;zL0&xTt>AJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T Lbr~mrVA==(({d0u delta 57 ccmZ3;zL0&xT*l4E7_}HR7>ERu-!p9j0PFb%q5uE@ diff --git a/src/modules/dummypythonqt/lang/de/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/de/LC_MESSAGES/dummypythonqt.mo index 67e1ae4a82a1d0cce3fe2643b8874c8bdac983f9..10aa5c08dfc671abfee863aeb60abadbee949c31 100644 GIT binary patch delta 55 zcmZ3AJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T L^%*CBV%iP>*6I*Z delta 57 ccmZ3ERuKQiqA0Po`lyZ`_I diff --git a/src/modules/dummypythonqt/lang/el/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/el/LC_MESSAGES/dummypythonqt.mo index 606e12f7ef91d061628759e782f3cb5d6b84e7d2..c7d45e8793b8b8b4c7d315315621a943f785e867 100644 GIT binary patch delta 49 zcmZ3?yqI}HnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan4J*- DcXkbH delta 52 VcmZ3?yqI}H*~a-SjG7F@0syvB1JM8g diff --git a/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo index 4c508593dd7cc4b14d130d0637ed85c1b25d0653..b88e6d8f9b3fc0fde21938f3751b9755fecc1d9b 100644 GIT binary patch delta 49 zcmdnPyoY&0nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSaSb-4$ Dfd~z@ delta 52 VcmdnPyoY&0*~a;@jG7F@0szF61RMYW diff --git a/src/modules/dummypythonqt/lang/es/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es/LC_MESSAGES/dummypythonqt.mo index 32f9aec54ea63e11f361ab0179653dfaf5b6e432..7ed27e6299458d028bfc1fa94932040106e00814 100644 GIT binary patch delta 55 zcmdnWzLkB$Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T L)fgwgWI6)?+rAKN delta 57 ccmdnWzLkB$T*l4E7?l|{7>ERuUof2o0P}VR*8l(j diff --git a/src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.mo index 8eafae88ba56831f558760caf3a64da478fc5687..35a601558dd3c61a39e160a37638f921594f852c 100644 GIT binary patch delta 49 zcmdnYyqS4InOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSaSey|6 DeU=TI delta 52 VcmdnYyqS4I*~a-IjG7F@0sy~q1OWg5 diff --git a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo index 6e9225896279eaaf8d8d6b454fc4dd51317504d7..73c58bb4a405e077a87de0ffb9937f1c23637c35 100644 GIT binary patch delta 49 zcmdnOyoGr}nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSaSb`A% DefSNY delta 52 VcmdnOyoGr}*~a;zjG7F@0sz1S1Oxy8 diff --git a/src/modules/dummypythonqt/lang/es_PR/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_PR/LC_MESSAGES/dummypythonqt.mo index 9683fbfc5d296ab53ffd1aedac5da391c73b386b..f3dd878be4ef850d864598ccfda45ab79f7be1c7 100644 GIT binary patch delta 49 zcmdnVypwrCnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSaSe6k0 Df8q_T delta 52 VcmdnVypwrC*~a-&jG7F@0sz9^1QP%N diff --git a/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo index 1c57bd3fa8bc44c8331da29868e97ef88dd4a3c1..86e51fbf4780e90cd78545c14840e91b87849740 100644 GIT binary patch delta 49 zcmZ3+yo`B5nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan2Qkr Dc$^J% delta 52 VcmZ3+yo`B5*~a47Ctl=c3falFa-(U6;g?R4WA|14DCNLnB=yLj^-KD-#oK149FYjZ^&? U`Mq;8v$GQu6>>B4N)r_s0EPS#{r~^~ delta 67 kcmbQuGMi<>jEx7q87&xy1>QNC+1ZJS3b~nirHP6R06Z)SZ~y=R diff --git a/src/modules/dummypythonqt/lang/fr/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/fr/LC_MESSAGES/dummypythonqt.mo index cf02716586cf0101cac4753d39ccb66e0ac5b5e7..a8ddde5198103f77c73ff2e5ca9903ee2096583a 100644 GIT binary patch delta 55 zcmX@ZeujO+Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T Lof#*yF&_f}<8u$s delta 57 ccmX@ZeujO+T*l4E7#$cj7>ERuS(%Rm0027%IsgCw diff --git a/src/modules/dummypythonqt/lang/fr_CH/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/fr_CH/LC_MESSAGES/dummypythonqt.mo index 4430eadf1871eb39d5eb3421fd32f14121034e21..44c786167ada5fc82a0c5b7e4fe7ac6c4c0291a9 100644 GIT binary patch delta 49 zcmdnayq$SMnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSaSeg+4 De;y5| delta 52 Vcmdnayq$SM*~a-2jG7F@0sz6f1PuTH diff --git a/src/modules/dummypythonqt/lang/gl/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/gl/LC_MESSAGES/dummypythonqt.mo index 09ac0ccd962db787bc806219c9876cb379b2c524..b221e3812be2d40b0b15a28c2f909a0ea9c07a61 100644 GIT binary patch delta 49 zcmZ3+yo`B5nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan2Qkr Dc$^J% delta 52 VcmZ3+yo`B5*~aU delta 58 ccmeC-=;7EfmvQqkMmt6g1|q>`W@b)C0O=D28vpAJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T LH5n(rVOj+M&Z7_# delta 57 ccmbQnK8=0DT*l4E7}Xdx7>ERuUo))+0Onc-eEAJUFV|I#FEVXJYAQ>l2j`NBLhQoT?0#90}}-U3oAo2Aj805^DIV7 K#>sz}HUI$F>=0@I delta 57 ccmZ3(zJ`6nT*l4E7|j?p7>ERue=}_a0P`RQ&j0`b diff --git a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo index ec9266196f21f49c2f0b421827c330d280bc9b9e..19d3d71d3a5d0be56dfa2dd695458a2db2680aea 100644 GIT binary patch delta 118 zcmdnYzLb4Ji0MK`28IM6=4D`DU}9!q&;rr|K$-_gTLWovAngI9g@AMdkTwL;#Tz?C z7}Y{_or_WvOEUBGbX^ilQmqt>3=A!F4UBXR%oPkRtV}Jm4GawoCeLEDV=B&^{DSfS IWC7;I02XK#-v9sr delta 134 zcmZ3=zL|YOi0OJp28IM6=4D`D5MX9t&;rtOK$-_gdje^3ARPvzg@AM(kTwL;jT<{f p7$+ZNv=%7II=nDX!8b8I@9?hT;{3eH%uN3^fGUUrlNp(p004l}6M6su diff --git a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po index 8a0a94e8e..17b004ff7 100644 --- a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-17 19:16+0100\n" +"POT-Creation-Date: 2018-02-07 18:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Kristján Magnússon, 2017\n" +"Last-Translator: Krissi, 2017\n" "Language-Team: Icelandic (https://www.transifex.com/calamares/teams/20061/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo index b89909ad00c2351dcd9b1eb45492641f9f4ced3a..14d83f4892241afb32aee1a8c69b5ee5b3c93ee7 100644 GIT binary patch delta 55 zcmX@beu{m=Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT|*;XBSQs4GbERu`Iz?r009yPJpcdz diff --git a/src/modules/dummypythonqt/lang/ja/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ja/LC_MESSAGES/dummypythonqt.mo index 13ab5ce6e024f35df524951751d09a817f0b3805..8098b2c5cf73be85932712d9ca9ed307ac21cf70 100644 GIT binary patch delta 55 zcmdnVzLR~!Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T LwHPPAWjX@@-I5S| delta 57 ccmdnVzLR~!T*l4E7}Xgy7>ERu-!Pp80QLR`=Kufz diff --git a/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo index 41e2395c934840e2f702af897ef5594d67947a6d..2b0afba0e738410dac794e28bd1984f31b29601c 100644 GIT binary patch delta 49 zcmbQsJePSwnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan2`|x Dbt(;6 delta 51 UcmbQsJePSw*~Iz(G#Q8m0Mv#Ao&W#< diff --git a/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.mo index 1929c5ac736f2238abc5a996931f6cc5c29ae80f..bb4455c58604d36789a01bf49f643d5f7e414caf 100644 GIT binary patch delta 49 zcmbQoJdb%onOcahb5UwyNoIbYu1jJ`s+EF~fuXssp`osUnSz0tm4T72fvJJP#$qN$ E0CeIFQ2+n{ delta 51 UcmbQoJdb%o*~Iz(H5rHn0M!))p#T5? diff --git a/src/modules/dummypythonqt/lang/lo/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/lo/LC_MESSAGES/dummypythonqt.mo index 8595066c79cf1521e6b3547e820d4bd514ea227b..1a06a5e255372a851de49a5ff5e198906b408d88 100644 GIT binary patch delta 48 zcmbQmJd1fknOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPG(^_#Xgg CR1Ply delta 51 UcmbQmJd1fk*~Iz3H5rHn0Mgk6l>h($ diff --git a/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.mo index 2ef3c202854236668b4e536be22c0e39ba100a82..30fb27cad9ebb71607adae3238143be6a700777a 100644 GIT binary patch delta 55 zcmeyu{)K(RTt>AJUFV|I#FEVXJYAQ>l2j`NBLhPVT?0d1LvsZ~ODjV&Z39CCgUz!T L(-ERuHJHx;02r1A)c^nh diff --git a/src/modules/dummypythonqt/lang/mr/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/mr/LC_MESSAGES/dummypythonqt.mo index f966de1c53db691918020b2f6654fe44732ae073..ada8d963fff5c449063606063c7d014fea62aae2 100644 GIT binary patch delta 49 zcmZ3=yp(xDnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan3E9z DcsdPn delta 52 VcmZ3=yp(xD*~a;7jG7F@0syym1J?im diff --git a/src/modules/dummypythonqt/lang/nb/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/nb/LC_MESSAGES/dummypythonqt.mo index 3fc2dc4bab03289db30389917b869b2ae1b05ed6..4a10eac4489b998336604ddd23e522b93bffd710 100644 GIT binary patch delta 49 zcmZ3_yqAJUFV|I#FEVXJYAQ>l2j`NBLhQoT?0#90}}-U3oAo2Aj805^DIVt J#>q^~I|1B*51s%3 delta 57 ccmdnZzMFl+T*l4E7;P9e7>ERu8JTwh0Qctx0{{R3 diff --git a/src/modules/dummypythonqt/lang/pl/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/pl/LC_MESSAGES/dummypythonqt.mo index a5a330a88039fe07275efb48cba42ff552688bb1..86fbdf7160bc73e099a9494d3ed9c87fdea495ed 100644 GIT binary patch delta 55 zcmcc4ah+qsTt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT|+}%12Y8!Gb;llT?11CgUz!T LuQ5)Z$-EB$?Jf}j delta 57 ccmcc4ah+qsT*l4E7%wwwFc1kQ&tTpU03s&`Z~y=R diff --git a/src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.mo index c4db96fc84f5065d5707de45de6d7b2ca1405d05..fc462020534264da6ae6ada2ff3fe4d02936e39c 100644 GIT binary patch delta 49 zcmX@ga+GC4nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSacqJnM Dh1d>L delta 52 VcmX@ga+GC4*~aAJUFV|I#FEVXJYAQ>l2j`NBLhQoT|*;XBSQs4GbERuWtmR`01! diff --git a/src/modules/dummypythonqt/lang/pt_PT/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/pt_PT/LC_MESSAGES/dummypythonqt.mo index d0974f5463b04512ae010a59b0e04ed00592f266..4df6a200573f8f4ceb7689400ac936cf1d821dea 100644 GIT binary patch delta 55 zcmcb`ev5s>Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT?0#90}}-U3oAo2Aj805^DM?V J#>tAzI|1sf5E=jg delta 57 ccmcb`ev5s>T*l4E7^4|A7>ERu6_|Gc01K1`e*gdg diff --git a/src/modules/dummypythonqt/lang/ro/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ro/LC_MESSAGES/dummypythonqt.mo index 11a59efed2c89c4588190cb256effb6774b848cd..18713b51c31f8678158aa8e7d14f3b907f20aad3 100644 GIT binary patch delta 55 zcmaFK{*ryeTt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT|*;XBSQs4GbeO|@U{?4 delta 57 ccmaFK{*ryeT*l4E7;_jk7>ERu4ViZU02Oowy#N3J diff --git a/src/modules/dummypythonqt/lang/ru/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ru/LC_MESSAGES/dummypythonqt.mo index c04ddba11e304070cc24fa36423aaaead92a99eb..8e2ebe16d58fa3450814af576998d64fe1ea293b 100644 GIT binary patch delta 55 zcmbQrK9zlg9HUx@u5(dpVo7Fxo~}z`Nvf5Ck%6JPu7Rblfr)~Fg_WThkYQl3S(@=I J<77eR767vU4!i&W delta 57 bcmbQrK9zlg9OGtp##4+M3`By-0?e%d&o%`i diff --git a/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.mo index 390bfa96ea0bdddbbf1bad75e75ad17084249deb..4cb8879b3a2d32b0e4707e1d965be3a507c5722e 100644 GIT binary patch delta 55 zcmZ3^zMOqSDWh75u5(dpVo7Fxo~}z`Nvf5Ck%6JPu7Rblfr)~Fg_WThkYQl3xri~2 Jaq>^5bpXzj5HJ7$ delta 57 ccmZ3^zMOqSDdXmOjM0o53`By-KbY170O#lil>h($ diff --git a/src/modules/dummypythonqt/lang/sl/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sl/LC_MESSAGES/dummypythonqt.mo index 3784d59be90302b48c04e6a1aa78b96b88081889..615d4b0b7614c1cd4c96ab9283f7bcd5ba3f2da7 100644 GIT binary patch delta 49 zcmcc3e4BYfnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSa*q#vp DjOGp# delta 52 Vcmcc3e4BYf*~a-cjG7F@0sz)R1bF}e diff --git a/src/modules/dummypythonqt/lang/sq/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sq/LC_MESSAGES/dummypythonqt.mo index 998439aa90130f43f46b668122948a424bf2a852..a74176a2edb0adf2b15014aef301aa2aa80389b3 100644 GIT binary patch delta 55 zcmdnWzLkB$Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT|+}%12Y8!Gb;llT?11CgUz!T Lof#*yF|P*z*)k7> delta 57 ccmdnWzLkB$T*l4E7#$cj7>ERuS(!Hg0QLn1^#A|> diff --git a/src/modules/dummypythonqt/lang/sr/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sr/LC_MESSAGES/dummypythonqt.mo index 117bf4c6df2bd98cb4cabd8c513f10b9ca56e38b..311cb4d4559f7eba3b4b1b3568d164c9866b545e 100644 GIT binary patch delta 55 zcmZ3+v5aFwDWh75u5(dpVo7Fxo~}z`Nvf5Ck%6JPu7Rblfr)~Fg_WThkYQl3xrnik Jak3`!UjWUL58wa* delta 57 bcmZ3+v5aFwDdXmOjNObH3`By-8qEIy?w1Bd diff --git a/src/modules/dummypythonqt/lang/sr@latin/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sr@latin/LC_MESSAGES/dummypythonqt.mo index 11cbdba1222e48acaccfa8196b11bb0f0878b05b..bd44894e5a84771442315c0a7124d480fc595982 100644 GIT binary patch delta 49 zcmZo=X=RyErWT^>T$Gwvl9`{U>ylWKYNcRgU}&yuXsByoreI)ZWniRhU}|8nu{e_v E0Bo)ehyVZp delta 52 VcmZo=X=RyEwsC$Mqb38f006t11Ni^| diff --git a/src/modules/dummypythonqt/lang/sv/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sv/LC_MESSAGES/dummypythonqt.mo index e43e4b857326d051cd09aeeb8584aeca0f813caa..e27097ca78aac5d94491e788e96146fa8c437aa2 100644 GIT binary patch delta 49 zcmZ3=yp(xDnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan3E9z DcsdPn delta 52 VcmZ3=yp(xD*~a;7jG7F@0syym1J?im diff --git a/src/modules/dummypythonqt/lang/th/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/th/LC_MESSAGES/dummypythonqt.mo index 54dae4e8c8009fbab79a205e6b04cc354ec32513..99aa63bebcd8cb29f97531c635c8a1d183f4bfa6 100644 GIT binary patch delta 48 zcmbQuJezq!nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPG(^_&)$= Cvko!< delta 51 UcmbQuJezq!*~IyOG#Q8m0Mlp$m;e9( diff --git a/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo index 28715a4fada9c6e3ed13f40a8de47e226eada0f6..12c4645f65f7e37608731a4b5759232956ab5261 100644 GIT binary patch delta 55 zcmcc5exH5ATt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT|*;XBSQs4Gb(me$ delta 57 ccmcc5exH5AT*l4E7$X=p7>ERuWtk5F01Y+M=nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSaIFu0p Dl~N8> delta 52 Vcmey!{E>M=*~a-njG7F@0s!L91iJtL diff --git a/src/modules/dummypythonqt/lang/ur/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ur/LC_MESSAGES/dummypythonqt.mo index 859a8505cf2af7c8ee015ca8d6d09b1ed729e733..176215bcba026f3396f1921f71489da542f3ecda 100644 GIT binary patch delta 49 zcmZ3)yoh;1nOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSan2iwt DcN7h1 delta 52 VcmZ3)yoh;1*~ad diff --git a/src/modules/dummypythonqt/lang/uz/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/uz/LC_MESSAGES/dummypythonqt.mo index 242ba1fe0f3b314a641b5b6da06f384603bea10e..037e2fa2a1d9f209926d84049182e5f3e7fc6457 100644 GIT binary patch delta 48 zcmbQkJcoHgnOcahb5UwyNoIbYu1jJ`s+EF~fuXssfu*j2iGqQJm7y7sVPLSZm=OSH CLk&g% delta 51 UcmbQkJcoHg*~IyOH5rHn0Mqvbn*aa+ diff --git a/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.mo index a6a9ff3381c68be8ced8b91bb74bf057625e9f65..0dac94ca0b57858d43b1639d8f17249e3c21cae4 100644 GIT binary patch delta 55 zcmdnXzL$N&Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT?0#90}}-U3oAo2Aj805^DIVp J#>rgFn*rUM53B$H delta 57 ccmdnXzL$N&T*l4E7+n}O7>ERuIhnTr0Qyk|5dZ)H diff --git a/src/modules/dummypythonqt/lang/zh_TW/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/zh_TW/LC_MESSAGES/dummypythonqt.mo index a50001d4eb97632f2687c953f270ca88d9245049..7cda100f972c7ae4ad44bdb8dbc1ffbe0016f640 100644 GIT binary patch delta 55 zcmX@cevEy?Tt>AJUFV|I#FEVXJYAQ>l2j`NBLhQoT?0#90}}-U3oAo2Aj805^DIUW J#>w2wy8+>N56A!j delta 57 ccmX@cevEy?T*l4E7+o1P7>ERuxtR9=0RDRhEdT%j From 561ba6bda8387e06aecf0a7acc35bacd10004ded Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Thu, 1 Mar 2018 15:42:25 +0100 Subject: [PATCH 18/55] i18n: [python] Automatic merge of Transifex translations --- lang/python/ar/LC_MESSAGES/python.mo | Bin 503 -> 503 bytes lang/python/ast/LC_MESSAGES/python.mo | Bin 668 -> 668 bytes lang/python/bg/LC_MESSAGES/python.mo | Bin 423 -> 423 bytes lang/python/ca/LC_MESSAGES/python.mo | Bin 1098 -> 1098 bytes lang/python/cs_CZ/LC_MESSAGES/python.mo | Bin 1261 -> 1261 bytes lang/python/da/LC_MESSAGES/python.mo | Bin 1047 -> 1047 bytes lang/python/de/LC_MESSAGES/python.mo | Bin 1059 -> 1059 bytes lang/python/el/LC_MESSAGES/python.mo | Bin 568 -> 568 bytes lang/python/en_GB/LC_MESSAGES/python.mo | Bin 444 -> 444 bytes lang/python/es/LC_MESSAGES/python.mo | Bin 1075 -> 1075 bytes lang/python/es_ES/LC_MESSAGES/python.mo | Bin 435 -> 435 bytes lang/python/es_MX/LC_MESSAGES/python.mo | Bin 436 -> 436 bytes lang/python/es_PR/LC_MESSAGES/python.mo | Bin 441 -> 441 bytes lang/python/et/LC_MESSAGES/python.mo | Bin 422 -> 422 bytes lang/python/eu/LC_MESSAGES/python.mo | Bin 420 -> 420 bytes lang/python/fa/LC_MESSAGES/python.mo | Bin 414 -> 414 bytes lang/python/fi_FI/LC_MESSAGES/python.mo | Bin 437 -> 437 bytes lang/python/fr/LC_MESSAGES/python.mo | Bin 1114 -> 1114 bytes lang/python/fr_CH/LC_MESSAGES/python.mo | Bin 439 -> 439 bytes lang/python/gl/LC_MESSAGES/python.mo | Bin 422 -> 422 bytes lang/python/gu/LC_MESSAGES/python.mo | Bin 422 -> 422 bytes lang/python/he/LC_MESSAGES/python.mo | Bin 1144 -> 1144 bytes lang/python/hi/LC_MESSAGES/python.mo | Bin 419 -> 419 bytes lang/python/hr/LC_MESSAGES/python.mo | Bin 1195 -> 1195 bytes lang/python/hu/LC_MESSAGES/python.mo | Bin 844 -> 844 bytes lang/python/id/LC_MESSAGES/python.mo | Bin 645 -> 645 bytes lang/python/is/LC_MESSAGES/python.mo | Bin 1066 -> 1052 bytes lang/python/is/LC_MESSAGES/python.po | 2 +- lang/python/it_IT/LC_MESSAGES/python.mo | Bin 1088 -> 1088 bytes lang/python/ja/LC_MESSAGES/python.mo | Bin 1063 -> 1063 bytes lang/python/kk/LC_MESSAGES/python.mo | Bin 413 -> 413 bytes lang/python/kn/LC_MESSAGES/python.mo | Bin 414 -> 414 bytes lang/python/lo/LC_MESSAGES/python.mo | Bin 410 -> 410 bytes lang/python/lt/LC_MESSAGES/python.mo | Bin 1187 -> 1187 bytes lang/python/mr/LC_MESSAGES/python.mo | Bin 421 -> 421 bytes lang/python/nb/LC_MESSAGES/python.mo | Bin 616 -> 616 bytes lang/python/nl/LC_MESSAGES/python.mo | Bin 658 -> 658 bytes lang/python/pl/LC_MESSAGES/python.mo | Bin 1370 -> 1370 bytes lang/python/pl_PL/LC_MESSAGES/python.mo | Bin 581 -> 581 bytes lang/python/pt_BR/LC_MESSAGES/python.mo | Bin 1097 -> 1097 bytes lang/python/pt_PT/LC_MESSAGES/python.mo | Bin 1095 -> 1095 bytes lang/python/ro/LC_MESSAGES/python.mo | Bin 1198 -> 1198 bytes lang/python/ru/LC_MESSAGES/python.mo | Bin 559 -> 559 bytes lang/python/sk/LC_MESSAGES/python.mo | Bin 1239 -> 1239 bytes lang/python/sl/LC_MESSAGES/python.mo | Bin 475 -> 475 bytes lang/python/sq/LC_MESSAGES/python.mo | Bin 1073 -> 1073 bytes lang/python/sr/LC_MESSAGES/python.mo | Bin 495 -> 495 bytes lang/python/sr@latin/LC_MESSAGES/python.mo | Bin 517 -> 517 bytes lang/python/sv/LC_MESSAGES/python.mo | Bin 421 -> 421 bytes lang/python/th/LC_MESSAGES/python.mo | Bin 411 -> 411 bytes lang/python/tr_TR/LC_MESSAGES/python.mo | Bin 1054 -> 1054 bytes lang/python/uk/LC_MESSAGES/python.mo | Bin 497 -> 497 bytes lang/python/ur/LC_MESSAGES/python.mo | Bin 418 -> 418 bytes lang/python/uz/LC_MESSAGES/python.mo | Bin 412 -> 412 bytes lang/python/zh_CN/LC_MESSAGES/python.mo | Bin 1033 -> 1033 bytes lang/python/zh_TW/LC_MESSAGES/python.mo | Bin 1052 -> 1052 bytes 56 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/python/ar/LC_MESSAGES/python.mo b/lang/python/ar/LC_MESSAGES/python.mo index 17c753cce9102f9b637042f8ac60415db86ce6c4..0b54ffe9233a1a711c59903074d7b845ad9150e6 100644 GIT binary patch delta 49 zcmey){GEA1nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#^Pv3 E0GEaiW&i*H delta 52 Vcmey){GEA1*~a-1jG7F@0s!VZ1kC^d diff --git a/lang/python/ast/LC_MESSAGES/python.mo b/lang/python/ast/LC_MESSAGES/python.mo index 46fd38d915e3d29218c9a69d620276fd09f96808..dbf7ea574d0f3f73bf0650edfa9b5051713cab38 100644 GIT binary patch delta 53 zcmbQkI)`<_E42_^=c3falFa-(U6;g?R4WA|149d410!7na|J^SD^m+?149FYjnC~F JC;Kz`0szRs53v9M delta 56 acmbQkI)`<_tIfiUHjEk!M1skFOnv~(#RVDw diff --git a/lang/python/bg/LC_MESSAGES/python.mo b/lang/python/bg/LC_MESSAGES/python.mo index 50331054f0593dc65d70844896700c4fad82bc64..98846ddf8564d3191e4d3f2154d33fc173c9b0cc 100644 GIT binary patch delta 49 zcmZ3^yqtMLnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$s+p E0C?sNb^rhX delta 52 VcmZ3^yqtML*~a-CjG7F@0sy$01Kj`s diff --git a/lang/python/ca/LC_MESSAGES/python.mo b/lang/python/ca/LC_MESSAGES/python.mo index 377c333bb67c381c30a0c9ea406e94c1a0e9977e..aab9d6093136feafbec2a91194f1efa7ca6a987a 100644 GIT binary patch delta 56 zcmX@baf)NZGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ MZ5TIuFf%a%00ck}`~Uy| delta 58 ccmX@baf)NZGseyQOqPrq3`By>?##@L0Ps@l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ MD;PJoFlRCX02de$BLDyZ delta 58 ccmaFM`Id9TGseyQOr?w(3`By>&CFSh01ajaiU0rr diff --git a/lang/python/da/LC_MESSAGES/python.mo b/lang/python/da/LC_MESSAGES/python.mo index b1f153cb714779568242578a8a92fae5f76db720..71e2969cee817c7ca3886b5bc2ebd8b7ce199cf7 100644 GIT binary patch delta 55 zcmbQvF`Z+>Ge)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ LO&BLTFkc4%-o6kz delta 49 fcmbQvF`Z+>GseyQOooiI4EVsry%Ljsm`?)$yCnwv diff --git a/lang/python/de/LC_MESSAGES/python.mo b/lang/python/de/LC_MESSAGES/python.mo index 5357f3d472ce709bfb136801b34ad799db703a25..54e535e4efc258bb7402f5b8088f688facf47abf 100644 GIT binary patch delta 55 zcmZ3?v6y4SGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ LZ5bzfGT#CKl2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ M)fhJ$F*7m(0Qp-Fp#T5? delta 58 ccmdnYv6*ATGseyQOv;QJ3`By>hRjTi0O6Yj2mk;8 diff --git a/lang/python/es_ES/LC_MESSAGES/python.mo b/lang/python/es_ES/LC_MESSAGES/python.mo index 8eafae88ba56831f558760caf3a64da478fc5687..f7107d58d323f5bd5fcdb298ea2f7cd757b895cc 100644 GIT binary patch delta 49 zcmdnYyqS4InOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$s_s E0DXQ9ng9R* delta 52 VcmdnYyqS4I*~a-IjG7F@0sy~q1OWg5 diff --git a/lang/python/es_MX/LC_MESSAGES/python.mo b/lang/python/es_MX/LC_MESSAGES/python.mo index 6e9225896279eaaf8d8d6b454fc4dd51317504d7..297ed90f64fc75739ca7d0362022d7ac51ae53e0 100644 GIT binary patch delta 49 zcmdnOyoGr}nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$pLZ E0Da&Mod5s; delta 52 VcmdnOyoGr}*~a;zjG7F@0sz1S1Oxy8 diff --git a/lang/python/es_PR/LC_MESSAGES/python.mo b/lang/python/es_PR/LC_MESSAGES/python.mo index 9683fbfc5d296ab53ffd1aedac5da391c73b386b..77e4dd2a9f83f2b4b4d69bade55cddac57717053 100644 GIT binary patch delta 49 zcmdnVypwrCnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$s7U E0DsC2tN;K2 delta 52 VcmdnVypwrC*~a-&jG7F@0sz9^1QP%N diff --git a/lang/python/et/LC_MESSAGES/python.mo b/lang/python/et/LC_MESSAGES/python.mo index 1c57bd3fa8bc44c8331da29868e97ef88dd4a3c1..fda535ec6ec2664a17d9b8aec418daf5da18321f 100644 GIT binary patch delta 49 zcmZ3+yo`B5nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$ql; E0C delta 52 VcmdnWyp?%E*~a-|jG7F@0sz341P1^B diff --git a/lang/python/fr/LC_MESSAGES/python.mo b/lang/python/fr/LC_MESSAGES/python.mo index 97d0179a283f2c2535d4dfbe5e08599589d2e88f..2aa26a22b6ca51bb884ad617fabcb0cd54b7d0b5 100644 GIT binary patch delta 56 zcmcb`af@TaGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ Mof$X#GjlTn01JN*GXMYp delta 58 ccmcb`af@TaGseyQOb(113`By>e#|_K0Qm6*ng9R* diff --git a/lang/python/fr_CH/LC_MESSAGES/python.mo b/lang/python/fr_CH/LC_MESSAGES/python.mo index 4430eadf1871eb39d5eb3421fd32f14121034e21..dd579fb0f642cae612e800b60878acb90a1f9e2a 100644 GIT binary patch delta 49 zcmdnayq$SMnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$stk E0DlGzrT_o{ delta 52 Vcmdnayq$SM*~a-2jG7F@0sz6f1PuTH diff --git a/lang/python/gl/LC_MESSAGES/python.mo b/lang/python/gl/LC_MESSAGES/python.mo index 09ac0ccd962db787bc806219c9876cb379b2c524..8774b35410b2b06046731e52693ca147ee89c000 100644 GIT binary patch delta 49 zcmZ3+yo`B5nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$ql; E0Cl2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ M9T_+KGHWve02qxBivR!s delta 58 ccmeyt@q=T-GseyQOm>VK3`By>KFm6d00uM#@&Et; diff --git a/lang/python/hi/LC_MESSAGES/python.mo b/lang/python/hi/LC_MESSAGES/python.mo index d7276c7e9dacccac09be08c140132c2c72ec4bcf..57a9d3d2ca96489a0a1e9fff46f2cb2d06838f7b 100644 GIT binary patch delta 49 zcmZ3?yqI}HnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$t9x E0C!#uY5)KL delta 52 VcmZ3?yqI}H*~a-SjG7F@0syvB1JM8g diff --git a/lang/python/hr/LC_MESSAGES/python.mo b/lang/python/hr/LC_MESSAGES/python.mo index f583db1096673fbecb4db7dc613486804f1aee6e..17adb13d73da9cd403a4ef37772c79c9eb7430ec 100644 GIT binary patch delta 56 zcmZ3@xtepsGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ Mr!a0_z|74E0Q)5nc>n+a delta 58 dcmZ3@xtepsGseyQOcNP37>ER$=QHy#0s!>q1>gVx diff --git a/lang/python/hu/LC_MESSAGES/python.mo b/lang/python/hu/LC_MESSAGES/python.mo index 09cc63cf76dfd398fb8f2167a3be4ec93e84f0a0..3cad3f4c5c3b8b51e737909500d15863bb5b71f1 100644 GIT binary patch delta 55 zcmX@Zc7|<30;5`pu5(dpVo7Fxo~}z`Nvf5Ck%6Iwu7Q!Rfw_XAg_Ws=wt=C6!RA;- LO~%RVndSlj*0~S8 delta 57 bcmX@Zc7|<30^{aRMm0ta1|q@abxiXB8<8w>K HiG?-*us;uq delta 48 ZcmZo=ZDpPCYO^q-8KWWtAuuu11puR81nd9+ diff --git a/lang/python/is/LC_MESSAGES/python.mo b/lang/python/is/LC_MESSAGES/python.mo index 7bdf67ecfc69c1419df9b9f40216483bcd951131..76412409d86cb6d2398982ffb2918000eac55525 100644 GIT binary patch delta 126 zcmZ3*F^6M9jO{{328NYDEXcsX;LXgyAOfUgp>z?D769_wfwUfwo&ls)f%I`G|Lw+^ zzKm)iy3R$Zi6xo&dAcr%C8<^lMh1o!x&}tN2IdNe7FMPf+6IOO29qB%+A$SpPBvuv JKRJ^5A^<<^8ZZC= delta 134 zcmbQkv5I3tjO}_x28NYDEXcsX5XsEIAOfVbp>zX~769_60%<)Uy$ndJ0_m$z{_l-5 teHkb7Gg%9iWF20Zr{J5Io_BaxadCd$WFMygvOtx%!Nk2DliQi60stch7-Rqd diff --git a/lang/python/is/LC_MESSAGES/python.po b/lang/python/is/LC_MESSAGES/python.po index 064735626..91e8eb121 100644 --- a/lang/python/is/LC_MESSAGES/python.po +++ b/lang/python/is/LC_MESSAGES/python.po @@ -10,7 +10,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-07 18:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Kristján Magnússon, 2017\n" +"Last-Translator: Krissi, 2017\n" "Language-Team: Icelandic (https://www.transifex.com/calamares/teams/20061/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/lang/python/it_IT/LC_MESSAGES/python.mo b/lang/python/it_IT/LC_MESSAGES/python.mo index 398c3a816832f44e8347a282b92163d9350e1a56..631d1b587458a1b78d547e2d15fba9e93fa786ef 100644 GIT binary patch delta 58 zcmX@Wae!mPGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ O-5DpI)ScYGd;kC^m=aF_ delta 49 fcmX@Wae!mPGseyQOfHPF4EVsry_S<3m=6E|&Y%aY diff --git a/lang/python/ja/LC_MESSAGES/python.mo b/lang/python/ja/LC_MESSAGES/python.mo index 8b28aa188dec6d7c79e456484a9c735d5bbd9335..6a0d11cf76435448cb70c9a75bf326ca3d12d6bc 100644 GIT binary patch delta 58 zcmZ3^v7BSWGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ OwHPO!RG%End^bz3z delta 49 fcmZ3^v7BSWGseyQOzMoX4EVsry~dMcnNI-#z*q-8 diff --git a/lang/python/kk/LC_MESSAGES/python.mo b/lang/python/kk/LC_MESSAGES/python.mo index 41e2395c934840e2f702af897ef5594d67947a6d..e5901da95f9701689e0dd070183b13db95bdaf7d 100644 GIT binary patch delta 49 zcmbQsJePSwnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$rZB E0Cf@#SO5S3 delta 51 UcmbQsJePSw*~Iz(G#Q8m0Mv#Ao&W#< diff --git a/lang/python/kn/LC_MESSAGES/python.mo b/lang/python/kn/LC_MESSAGES/python.mo index 1929c5ac736f2238abc5a996931f6cc5c29ae80f..a2a97dbc433ce933790d63c8c9ee0f36fb0e51bd 100644 GIT binary patch delta 49 zcmbQoJdb%onOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$qN$ E0CjW?TL1t6 delta 51 UcmbQoJdb%o*~Iz(H5rHn0M!))p#T5? diff --git a/lang/python/lo/LC_MESSAGES/python.mo b/lang/python/lo/LC_MESSAGES/python.mo index 8595066c79cf1521e6b3547e820d4bd514ea227b..5d51dd1ac74e1ef808420e52429da15338887ac7 100644 GIT binary patch delta 48 zcmbQmJd1fknOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#NvMd DXFU!s delta 51 UcmbQmJd1fk*~Iz3H5rHn0Mgk6l>h($ diff --git a/lang/python/lt/LC_MESSAGES/python.mo b/lang/python/lt/LC_MESSAGES/python.mo index 4a40e6c5cf97c27648af037289afd478c3e60d16..83bf0a0fae0fb49203272668311c2c33900b0ace 100644 GIT binary patch delta 56 zcmZ3?xtMdqGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ M(-=1wF&i=h0QLtEGXMYp delta 58 ccmZ3?xtMdqGseyQOv#KI3`By>h0I2b0O(5vng9R* diff --git a/lang/python/mr/LC_MESSAGES/python.mo b/lang/python/mr/LC_MESSAGES/python.mo index f966de1c53db691918020b2f6654fe44732ae073..bfbcd4413b008c4a8880c25e296e3a9d07f129f8 100644 GIT binary patch delta 49 zcmZ3=yp(xDnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$rxJ E0C*w|Z~y=R delta 52 VcmZ3=yp(xD*~a;7jG7F@0syym1J?im diff --git a/lang/python/nb/LC_MESSAGES/python.mo b/lang/python/nb/LC_MESSAGES/python.mo index b304719154a5f5feeb343e9763148c2218da4441..5a896436b8cc93316bdc1c70444c0de7a24a4c5a 100644 GIT binary patch delta 53 zcmaFC@`7c;QMC|V=c3falFa-(U6;g?R4WA|149d410!7na|J^SD^m+?149FYjfWx_ JCp$B#0s!BU58?m- delta 55 ZcmaFC@`7c;(T(py88sM)1e2YZ)Bq2L21oz^ diff --git a/lang/python/nl/LC_MESSAGES/python.mo b/lang/python/nl/LC_MESSAGES/python.mo index 18e658ffbdf5b54ebeee22057d623ed1e7d2b7e9..0477a658c344211fde994027bb13a3793910f553 100644 GIT binary patch delta 53 zcmbQlI*E0{E42_^=c3falFa-(U6;g?R4WA|149d410!7na|J^SD^m+?149FYjnC~F JC;Kxw0|3OP50d}@ delta 56 acmbQlI*E0{tIfiUHjEk!M1skFOfCS)Zv^}R diff --git a/lang/python/pl/LC_MESSAGES/python.mo b/lang/python/pl/LC_MESSAGES/python.mo index 438466977cd1ee3902314b3bc8cbc4262cf7c8d0..d8a064d3528df88f98c0b331456571b1ea43f7aa 100644 GIT binary patch delta 56 zcmcb`b&G4mGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ MZ!vCu#$3V(028JW&Hw-a delta 58 dcmcb`b&G4mGseyQOxGDT7>ER$pE8#+0st9a2Q>fy diff --git a/lang/python/pl_PL/LC_MESSAGES/python.mo b/lang/python/pl_PL/LC_MESSAGES/python.mo index c4db96fc84f5065d5707de45de6d7b2ca1405d05..7a9c33e45ff83b0bb3161cd6b4c8d219b0cb2bcb 100644 GIT binary patch delta 49 zcmX@ga+GC4nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#^RNX E0ENH~QUCw| delta 52 VcmX@ga+GC4*~al2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ L;}|DrG2aIO^;i)4 delta 57 bcmX@fagt-hGseyQOwo)Q3`By-namFW@qq?m diff --git a/lang/python/pt_PT/LC_MESSAGES/python.mo b/lang/python/pt_PT/LC_MESSAGES/python.mo index 38a3903a4e8b25f1db6a2b52f9b257164113bbc5..1e1afdf3441c5acdb5ba3aed9787c4bcdbaed71b 100644 GIT binary patch delta 55 zcmX@kahzkrGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ L;}|DrG2aCM^nMWZ delta 57 bcmX@kahzkrGseyQOwo)Q3`By-nauY9@Sg@- diff --git a/lang/python/ro/LC_MESSAGES/python.mo b/lang/python/ro/LC_MESSAGES/python.mo index edd195423c5a58b597abd7ba9b4ac6d2c65f5936..a72b5ca6fbfde8ca21b06782032da6369b7c7d0d 100644 GIT binary patch delta 56 zcmZ3-xsG$gGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ M^BFf+GaEAk0Q)EqT>t<8 delta 50 gcmZ3-xsG$gGseyQOgW6Q4EVsry%w97GqW=S0M*O~KL7v# diff --git a/lang/python/ru/LC_MESSAGES/python.mo b/lang/python/ru/LC_MESSAGES/python.mo index 3ebeff4bc95883278483c7768ac13ffe248c2aa9..ffbafcfcc5c0ca3553671755dc1dfce9afc7e5ab 100644 GIT binary patch delta 49 zcmZ3_vYur^nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#^TA0 E0DV*r5C8xG delta 52 VcmZ3_vYur^*~a-37&RG)1pw2I1a|-c diff --git a/lang/python/sk/LC_MESSAGES/python.mo b/lang/python/sk/LC_MESSAGES/python.mo index 922ff22d2484252ed4b8f4c8fe322ca7326f5f57..d862931cbc829850b86c6b6b1fa39192732a036e 100644 GIT binary patch delta 56 zcmcc4d7X2^Ge)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ M;}|z*G3PP@01S>0#{d8T delta 58 ccmcc4d7X2^GseyQOwo)Q3`By>nap{N0RBq`E&u=k diff --git a/lang/python/sl/LC_MESSAGES/python.mo b/lang/python/sl/LC_MESSAGES/python.mo index 3784d59be90302b48c04e6a1aa78b96b88081889..d1ec2dce92dceb25f25fdd69d5de816d92fed3f1 100644 GIT binary patch delta 49 zcmcc3e4BYfnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$tO$ E0F2HK5&!@I delta 52 Vcmcc3e4BYf*~a-cjG7F@0sz)R1bF}e diff --git a/lang/python/sq/LC_MESSAGES/python.mo b/lang/python/sq/LC_MESSAGES/python.mo index 5a00a0d3be4063968bf1aa51ef4ccae189636d3d..9c06dc87130b97e517b7b710d397c418d43220b5 100644 GIT binary patch delta 55 zcmdnUv5{lLGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ Lof#+lGd}_V>PQfm delta 57 bcmdnUv5{lLGseyQOb(113`By-e$0;n;l2g_ diff --git a/lang/python/sr/LC_MESSAGES/python.mo b/lang/python/sr/LC_MESSAGES/python.mo index af1b22bb9d4cd61b6a94fa1ddafe28fb303ad55b..df6bd22be73f01b2d0c00d31989e913f635b4242 100644 GIT binary patch delta 49 zcmaFQ{GNG2nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#^PW` E0F-tPP5=M^ delta 52 VcmaFQ{GNG2*~a++jG7F@0s!Hv1hoJF diff --git a/lang/python/sr@latin/LC_MESSAGES/python.mo b/lang/python/sr@latin/LC_MESSAGES/python.mo index 11cbdba1222e48acaccfa8196b11bb0f0878b05b..18114e0c77b4964b4dd3bcd162af5a96eced1ecb 100644 GIT binary patch delta 49 zcmZo=X=RyErWT^>T$Gwvl9`{U>ylWKYNcRgU}&LhV5Dncu3%_kWon^qU}#{lu{e_v E0Bt}Gk^lez delta 52 VcmZo=X=RyEwsC$Mqb38f006t11Ni^| diff --git a/lang/python/sv/LC_MESSAGES/python.mo b/lang/python/sv/LC_MESSAGES/python.mo index e43e4b857326d051cd09aeeb8584aeca0f813caa..2e0d9f4abb10bf27aaa042fb543332db69257aa8 100644 GIT binary patch delta 49 zcmZ3=yp(xDnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$rxJ E0C*w|Z~y=R delta 52 VcmZ3=yp(xD*~a;7jG7F@0syym1J?im diff --git a/lang/python/th/LC_MESSAGES/python.mo b/lang/python/th/LC_MESSAGES/python.mo index 54dae4e8c8009fbab79a205e6b04cc354ec32513..f02dc271002b606b59f6f4c0a3d36de40f71f362 100644 GIT binary patch delta 48 zcmbQuJezq!nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#Nz(| DXPgc( delta 51 UcmbQuJezq!*~IyOG#Q8m0Mlp$m;e9( diff --git a/lang/python/tr_TR/LC_MESSAGES/python.mo b/lang/python/tr_TR/LC_MESSAGES/python.mo index 8e2e8d5bc43482ed1d42a3f7ce9e5bdfc4ca613d..a95ca03ad5a130c3ac4757fc58e146758ca95e1a 100644 GIT binary patch delta 58 zcmbQoF^^-zGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ OqZucjRG-|(JOKb11QGWD delta 49 fcmbQoF^^-zGseyQOc9K-4EVsry~dOKm?r=L#K;Fz diff --git a/lang/python/uk/LC_MESSAGES/python.mo b/lang/python/uk/LC_MESSAGES/python.mo index 4e1a108a75a95e1d107036ef4779923f91d6782f..d1d7a97473aa37e2eef02fd2ac80a10ce8c82ac8 100644 GIT binary patch delta 49 zcmey!{E>M=nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#^O*$ E0F^opQ~&?~ delta 52 Vcmey!{E>M=*~a-njG7F@0s!L91iJtL diff --git a/lang/python/ur/LC_MESSAGES/python.mo b/lang/python/ur/LC_MESSAGES/python.mo index 859a8505cf2af7c8ee015ca8d6d09b1ed729e733..032bf7e6bc115e46e30956c07f5bdc7aed69e240 100644 GIT binary patch delta 49 zcmZ3)yoh;1nOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH#$q-` E0CxNhX8-^I delta 52 VcmZ3)yoh;1*~ad diff --git a/lang/python/uz/LC_MESSAGES/python.mo b/lang/python/uz/LC_MESSAGES/python.mo index 242ba1fe0f3b314a641b5b6da06f384603bea10e..d25e583b95e3e89ab78444eef1bfad2f64aa7ae7 100644 GIT binary patch delta 48 zcmbQkJcoHgnOcahb5UwyNoIbYu1jJ`s+EF~fuV)2fsw9(xq_jEm8pfcfuVuH!eT}M DXDkgx delta 51 UcmbQkJcoHg*~IyOH5rHn0Mqvbn*aa+ diff --git a/lang/python/zh_CN/LC_MESSAGES/python.mo b/lang/python/zh_CN/LC_MESSAGES/python.mo index c4653e0612533ce947277991379b00278c9bb44d..21c7cb97d7da1416825fc2d02a00e4c872119209 100644 GIT binary patch delta 55 zcmeC==;YY&j8QE_*SRP)u_QA;PuC@}B-Kj6$iUD-*T6{Ez+A!5!phV_+rZGkVDn=} KSH{VK%sT+tP!J&i delta 57 bcmeC==;YY&jBztRlM|x`1Cd~I0P{`&(0B!i diff --git a/lang/python/zh_TW/LC_MESSAGES/python.mo b/lang/python/zh_TW/LC_MESSAGES/python.mo index 5ef6f063a62263226bb75750297dbefe7405b262..327aed015edb7a29f344dd301b69b01f9d929704 100644 GIT binary patch delta 55 zcmbQkF^6NrGe)%#UFV|I#FEVXJYAQ>l2j`NBLhPVT>~Rs19JsK3oBC#Z39CCgUyc_ LJs2m4FrNSb;eQZa delta 57 bcmbQkF^6NrGseyQOs Date: Sat, 3 Mar 2018 12:56:03 +0100 Subject: [PATCH 19/55] Enable the correct language in the locale.gen list the original code does not distinguish the document comments inside the locale.gen file from the real locale list. The language was then enabled from the header comments of the file instead of the correct value in the list. The new code verify tha the complete locale string is just after the first character of the string, enablig only the correct value of the locale list. An example: # en_US.UTF-8 UTF-8 --> document header, should not be enabled #en_US.UTF-8 UTF-8 --> correct section to enable Related to this request: https://code.chakralinux.org/tools/calamares-chakra/issues/2 --- src/modules/localecfg/main.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/localecfg/main.py b/src/modules/localecfg/main.py index 7df2fe31e..155382aab 100644 --- a/src/modules/localecfg/main.py +++ b/src/modules/localecfg/main.py @@ -65,12 +65,15 @@ def run(): with open("{!s}/etc/locale.gen".format(install_path), "w") as gen: for line in text: # always enable en_US - if en_us_locale in line and line[0] == "#": + if line.startswith(en_us_locale, 1): # uncomment line line = line[1:].lstrip() for locale_value in locale_values: - if locale_value in line and line[0] == "#": + # check the locale value starting from + # the second index because we expect that + # the first one is a '#' + if line.startswith(locale_value, 1): # uncomment line line = line[1:].lstrip() From 58952b685ca81ee6e3090deb0ae85add96f6ef6a Mon Sep 17 00:00:00 2001 From: AlmAck Date: Sat, 3 Mar 2018 14:30:08 +0100 Subject: [PATCH 20/55] the first character must be a comment to original code would match both lines: zen_US.UTF-8 UTF-8 #en_US.UTF-8 UTF-8 introducing "#" should check only the commented lines --- src/modules/localecfg/main.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/modules/localecfg/main.py b/src/modules/localecfg/main.py index 155382aab..e6c37133b 100644 --- a/src/modules/localecfg/main.py +++ b/src/modules/localecfg/main.py @@ -65,15 +65,12 @@ def run(): with open("{!s}/etc/locale.gen".format(install_path), "w") as gen: for line in text: # always enable en_US - if line.startswith(en_us_locale, 1): + if line.startswith("#" + en_us_locale): # uncomment line line = line[1:].lstrip() for locale_value in locale_values: - # check the locale value starting from - # the second index because we expect that - # the first one is a '#' - if line.startswith(locale_value, 1): + if line.startswith("#" + locale_value): # uncomment line line = line[1:].lstrip() From a9e751bb31c3dda55c0be76dfd3d8975220a1a85 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 6 Mar 2018 16:10:31 +0100 Subject: [PATCH 21/55] [users] Compile warnings-- --- src/modules/users/CheckPWQuality.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/modules/users/CheckPWQuality.cpp b/src/modules/users/CheckPWQuality.cpp index 3e1ab0563..a78edd754 100644 --- a/src/modules/users/CheckPWQuality.cpp +++ b/src/modules/users/CheckPWQuality.cpp @@ -30,13 +30,9 @@ #include -static void _default_cleanup() -{ -} - PasswordCheck::PasswordCheck() : m_message() - , m_accept( []( const QString& s ){ return true; } ) + , m_accept( []( const QString& ){ return true; } ) { } From defc7d4df816671e658a0f736da96a6ec362f179 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 6 Mar 2018 16:10:53 +0100 Subject: [PATCH 22/55] [welcome] Compile warnings-- --- src/modules/welcome/checker/RequirementsChecker.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/welcome/checker/RequirementsChecker.cpp b/src/modules/welcome/checker/RequirementsChecker.cpp index 1aa4e95f8..9ccdfae33 100644 --- a/src/modules/welcome/checker/RequirementsChecker.cpp +++ b/src/modules/welcome/checker/RequirementsChecker.cpp @@ -320,6 +320,7 @@ bool RequirementsChecker::checkEnoughStorage( qint64 requiredSpace ) { #ifdef WITHOUT_LIBPARTED + Q_UNUSED( requiredSpace ); cWarning() << "RequirementsChecker is configured without libparted."; return false; #else From e2f6d160f89155f767d0e9180c9c6c7f7b13abc5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 6 Mar 2018 16:11:50 +0100 Subject: [PATCH 23/55] [tracking] Reduce compile warnings The fallthrough construction in a switch is a bit confusing to read, and generates compile warnings too, so break it up. --- src/modules/tracking/TrackingPage.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 1b76aa5e5..26858442f 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -90,17 +90,20 @@ bool TrackingPage::getTrackingOption(TrackingType t) // A tracking type is enabled if it is checked, or // any higher level is checked. +#define ch(x) ui->x->isChecked() switch ( t ) { case TrackingType::InstallTracking: - enabled |= ui->installRadio->isChecked(); - // FALLTHRU + enabled = ch(installRadio) || ch(machineRadio) || ch(userRadio); + break; case TrackingType::MachineTracking: - enabled |= ui->machineRadio->isChecked(); - // FALLTHRU + enabled = ch(machineRadio) || ch(userRadio); + break; case TrackingType::UserTracking: - enabled |= ui->userRadio->isChecked(); + enabled = ch(userRadio); + break; } +#undef ch return enabled; } From 51ccd6be4d41eaa78c852d3890c668b0b269f566 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 6 Mar 2018 16:23:29 +0100 Subject: [PATCH 24/55] [license] Warnings-- by making the one default case explicit --- src/modules/license/LicensePage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index f10401831..12d259e98 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -186,7 +186,7 @@ LicensePage::setEntries( const QList< LicenseEntry >& entriesList ) .arg( entry.prettyName ) .arg( entry.prettyVendor ); break; - default: + case LicenseEntry::Software: productDescription = tr( "%1
" "by %2" ) .arg( entry.prettyName ) From 583cc06f7cd71f21c05bd57cfaae9a3e9946e76a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 6 Mar 2018 16:23:44 +0100 Subject: [PATCH 25/55] [keyboard] Warnings-- for nullptr --- src/modules/keyboard/keyboardwidget/keyboardpreview.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp index 535edaf24..9cdf831e6 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp @@ -160,9 +160,9 @@ bool KeyBoardPreview::loadCodes() { QString KeyBoardPreview::fromUnicodeString(QString raw) { if (raw.startsWith("U+")) - return QChar(raw.mid(2).toInt(0, 16)); + return QChar(raw.mid(2).toInt(nullptr, 16)); else if (raw.startsWith("+U")) - return QChar(raw.mid(3).toInt(0, 16)); + return QChar(raw.mid(3).toInt(nullptr, 16)); return ""; } From 1e0ecbcc18e2a07dd7a16a076670d04f87441d96 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 6 Mar 2018 16:24:12 +0100 Subject: [PATCH 26/55] [contextualprocess] Warnings-- by dropping destructor --- .../contextualprocess/ContextualProcessJob.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/modules/contextualprocess/ContextualProcessJob.cpp b/src/modules/contextualprocess/ContextualProcessJob.cpp index a61a8bb3f..380a92d0a 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.cpp +++ b/src/modules/contextualprocess/ContextualProcessJob.cpp @@ -37,12 +37,13 @@ struct ValueCheck : public QPair { } - ~ValueCheck() - { - // We don't own the commandlist, the binding holding this valuecheck - // does, so don't delete. This is closely tied to (temporaries created - // by) pass-by-value in QList::append(). - } + // ~ValueCheck() + // + // There is no destructor. + // + // We don't own the commandlist, the binding holding this valuecheck + // does, so don't delete. This is closely tied to (temporaries created + // by) pass-by-value in QList::append(). QString value() const { return first; } CalamaresUtils::CommandList* commands() const { return second; } From 74080c31f52deecdf35279e0e204d28ebe0a6f2f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Mar 2018 05:52:13 -0500 Subject: [PATCH 27/55] Branding: add a fancy branding example --- src/branding/README.md | 2 + src/branding/fancy/branding.desc | 32 ++++++++++ src/branding/fancy/languages.png | Bin 0 -> 86002 bytes src/branding/fancy/show.qml | 103 +++++++++++++++++++++++++++++++ src/branding/fancy/squid.png | Bin 0 -> 8313 bytes src/branding/fancy/squid2.png | Bin 0 -> 8403 bytes src/branding/fancy/squid3.png | Bin 0 -> 8300 bytes src/branding/fancy/squid4.png | Bin 0 -> 8270 bytes 8 files changed, 137 insertions(+) create mode 100644 src/branding/fancy/branding.desc create mode 100644 src/branding/fancy/languages.png create mode 100644 src/branding/fancy/show.qml create mode 100644 src/branding/fancy/squid.png create mode 100644 src/branding/fancy/squid2.png create mode 100644 src/branding/fancy/squid3.png create mode 100644 src/branding/fancy/squid4.png diff --git a/src/branding/README.md b/src/branding/README.md index bfdcdebba..8901a6b98 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -32,3 +32,5 @@ There are two examples of branding content: but instead of a slideshow, it lets the user play Same Game (clicking colored balls) during the installation. The game is taken from the QML examples provided by the Qt Company. + - `fancy/` uses translations and offers navigation arrows. + diff --git a/src/branding/fancy/branding.desc b/src/branding/fancy/branding.desc new file mode 100644 index 000000000..8aae1b0b7 --- /dev/null +++ b/src/branding/fancy/branding.desc @@ -0,0 +1,32 @@ +--- +componentName: fancy + +welcomeStyleCalamares: false + +strings: + productName: Fancy GNU/Linux + shortProductName: Fancy + version: 2018.3 LTS + shortVersion: 2018.3 + versionedName: Fancy GNU/Linux 2018.3 LTS "Terrible Tubas" + shortVersionedName: Fancy 2018.3 + bootloaderEntryName: Fancy + productUrl: https://calamares.io/ + supportUrl: https://github.com/calamares/calamares/issues + knownIssuesUrl: https://calamares.io/about/ + releaseNotesUrl: https://calamares.io/about/ + +welcomeExpandingLogo: true + +images: + productLogo: "squid.png" + productIcon: "squid.png" + productWelcome: "languages.png" + +slideshow: "show.qml" + +style: + sidebarBackground: "#392F34" + sidebarText: "#eFFFFF" + sidebarTextSelect: "#392F34" + sidebarTextHighlight: "#c35400" diff --git a/src/branding/fancy/languages.png b/src/branding/fancy/languages.png new file mode 100644 index 0000000000000000000000000000000000000000..53316526bc8039e4e05d2860ae5767ccbde9eb4f GIT binary patch literal 86002 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�==0;j%F=Kq0P>U~X0$-7~AA^Z= z+a*N*`&^{e~`k2;E=>+k2~oi>DYz9mXO^Wm*!9>B5#JZ*F0Ggz4>VU z3x6Dv%XT!XzkC(DndqFCglqX2(#qabHLRxC0Z{^7b8XtU~yj}3Mv3h~Ed*LwN z=@H3R6U zCeF6W&Eu77Vrffut>>^ccJ3|FRS9F_v z8Jd30bX6t8G-%&OC8>0qyYW*t6Ti|;w$J#ULfu^5t)?m$VvOboj)=m=eNV3I6KVl6 zm0j{Z3&i?B~#oW3Jxydgt5B{n#ntUHU zQMexpP1{P{HeHHLq7JSH{`$$K_|)1q)@u@Pb^Wn?nWw&-hc{tN5eEs@^2h41%}>LD zB927avo|Ftof>__pWiwJqI~$>P=z&Wx~n3uTMoj{c3O;LMQGVx-MEyBAG>=+%vw1p z{)(P@7}ae*nWbCR{Ya6$mi>enGQ`Aj#G%sfJ%!x;wUCd|j6kx>y6?vf^R2GF+m-=p zY!2lC3y1VHcyVTrA&lJ;{Jn%j>X#@e%Knod1!wXZa=$bcNwW+A*Z_+!(T;qzw&%+B zW4>4Y>J*dHCR^)a+CX|U+?!h_rxaJsWz!Q;7`6VZhnU^c=2a-4#X|(Mv)2R<$NqfY z_j#ty)_XZm%SDewed+vGy6osxf(p4$yq#YPpg&f-d2m42xl_@Hj)5GQIkTb4t3RpF=;3o4fG!aF#i>$!XcBfyI^STTNaaLRz^cO<+|{(D%q_&+}b z)BFh>CK5+m>9wyg2okFF4O7IvG!VMG%mFLr;>`MO`ltjG#Uh1qUM)rwL z%0BG+l%)YRZp~V+<7U_m@m{T8(OKy%=%t&rHFRpO`nu12`^>kxqS2fk69;KkRvR!R zr0=nr>I(DP?z)RfpCOwgRk=y^4|_xyxo_IwfzFD@^#0Rm?sZ02v6E;1u@_T(SwRcw zh+OH3oA1j%HdGXp7U!EZ+fuLeY|kfMeF??7-O&9EWkLg!cY#i&ur6<^AH`p^?l0dg z34$`HcIOXCU~_D3M@U6vOsM>YhGOgI9TpJFQsl+8mTCB*l`tMV7racN=uyRg<%Doq zUdy=mwM{Sy274%ad;Jk2Z{>75nQ4+-`fM4#IQ~3>XQ-JS1%Dk7p1-}Msg(%P3G)>x z_m1FlJ~}B`~&?|LA=554tZAEZGUcLs*YV zG1w5X4QW&+6N!(ed~)Sg2xABDfw46`d}@gg`(PX2tF3jcx#B#PbAPeOmUEsH+U|m0 zZvnatWFZVmT^wkIqYL5eKfEVtqaR zqegF21Br`!$}VXXurZUEaa&><3n+-fU;=wd3v-C`Ii()qwOx#mz26BkvEnR=cfYB= zB$Qx|&R^s^=tN=EtZdkcGjcT+9M&1>z}QyxODG3#IT`Kzxv%m+r%o-@xF$%xU5bsH}?8oO^^tJ+MzG|p?rH2aZB z_>b)o?SBu~$2 zT_($Xk=d32A3v6_mxZ5Gnq{c0s3ZytY*()bUk|4vELg%oH)`kHd2u*Y zPtCjA{7GF7K+pJmu?%CA+VbeSiod~eq6LG=`p(c><;bk4PDW3-pb%?CR>nY0Y;0%) z$^v?|Y3FsPABBfFDCC8-ApkItak1R>%WP|hz=_teD z3e^goTJ-<$Zbamkaz1osl~HA+s%4>R3y$V+iX~DVtFto3v4MeSr&ZvS5h=x z3;+v0+;W2^n~Rb-vcazB6x!3oJC}tBwR^9B^P!R3YFmXF88BU>fBzE&(JeWYSp}1bLyEuPriW}m!(!j~oZ+c<( zTs+`po`M@DZczsDI|>Fm0^TsW^UMz4i<^n_`%H~v`*$*wY4xFMLL0+^xwf38A-*s5 z*sYWe`3H2zquKThKK=^raGuC>x$~1Bp?LNofbTH6e#FaqliG*R(@G6_NpQ#GHC{wY<4%gKsXI4U`n z)3DZ*;h!!YMDuI9%HT8m_iapI8hT3()lmN2v~#@lGuX3ns+Vk#(ffDy%kRdOp>H*^ z4NC;gflF&uUT8xR3Veua7-N)`1=XZ^LP-9~3Lrtpbap(_{~C_s|NZQ(aAmI5!rQfL zcssH1VgD{fnjw)`i5(U%M2{4fdBA8^hLl_lf&1Y20RkX8TB{-5+8atq||H4Tm({qok#66%bg+59FZ7W{;@kzdI|h$2_5SyMcdOA?qZ4hEuH9tR_* zk5!d9Ld)ZmSUu5gB4j-5OE&{0>am>NMqGoNMqP!B5cXjDcaV@hl`+)TC^II$&Td+h zv(xPSczfcVY}#Iix}x)v;CW0Bd_#mST^c)5;E~PZ3&Tu2x)GjQiLoc5|ofub9X%oZrqM2AP_mJgW_X zBY9wUBO3a2ALDlps)oS}20&9n2|qrfIr4rvMsDl~fQlv>uuWdGYrG=Ve~#c zIg&{b1At>>zCwUpcc0x1(*0cC`toKI$(H_F8xedWyn-{!J`7by`=q_-#bYMh>(Mk` z`qBVhhC5=#9#lcK$5zwt)K5#1>)&6Z>)Fl)VV6{&h)0ZM$};cwpm@E#265uXzNEj~ z@jD;rLU@{Q9RJwcY`yrZ9j)-1}997=~}R#2nP#-PU+ zMh%e%f`{P%AV7NHD~2MMq**j}2w2o9`Wg~p)hP`NtNEawNPt1rV?Fo<=Y+(&^R^w0 zw!IG)xhu9ru+(QmGDsMcyLXRx?V^C6JO(|*p*1E3B^nvC9{@}+Rk8Hui2Sflv(#%W1B5bL^kAu80Gfp4y z-BSGZp7vUG1ASpE4C0@9lq_08~8WgYCOXwirb z#uHJT-vn2$&$8nclxdvGEuv4LfUlJVnihLplA-o~S3K{n*7_R157MP&PrwGId?F*wJsvegUj_V#lHawO12a!J94!~vw5G99-=9^q@sI|6r4t$C1sNS$la#zR_F3l@G&OA!>>u3h`of7l-<|Wn zo@6X^L?pq11s#1TsVQa8PoMgfU%N4*L54VzM^<1*D-|jG=TT=J1gS<-cend1-&)I> zE^Kg#6E_C?3%{d74YuF%Y(s@cxD;BUbEuUJ`;XcJf=}MB5rU6jA}P8a_mVQCC^o}(uWpu zGoL6#BZL+%BZwR>NmnE&2+Dj6$`QA1D$)_w=oez}F!Esn2EfGW<89XSo4NYEK!N0} z0Jj8Ht_ULWxf#LOw}sE2`XRa}Ofey!g|wHL`D`M%G_+{&t6g$YK%ZhC z3e=(O?9)26kA{G9NY2J%w*lkIa3d@b;_W1N*N@W4s005id;GQ4rf-1$@+a<4l0WK_7-z4u2HT0v2Q;RPUTMy7 zz!ym1&%+Qc6>GizO#8t}XJ^fLuF$JkTeHi#$a=G!eX}LGmnO&4Nes|ATPd)b9`xzt z)&ZyG!E&VFZ55}v0uV@qp1);q9_)YHXMHt%0^6W6p8M!~`rGZe1V6I;ml(_6Sw(5I z?+D4(O^u@%f)-yQAH{eB@4;CQPpT=c8Rdfdcb9fj!Kgz$2gWqbt(%?IQo-5Tb6Yf3 z;Y4Eq&_}FKi;|kyx{tiONxO<6GB)HJ|J$EdJnXvenHtlF#fGuG7`AAqu==kqf&_!k z{?pl+y`HmGVw~Q2xe@=j!_##1l-w8DW>kk@CE2A=QMT)L1n`tq-fKCC)K2to&mJDz zFVSYyk9BcB_TiB)DucQH^le-^D~e4?U9&5j8wc8n>B)1Eeafl>0i!!N#H*siu!2#( z29&c_eS*fPPHmqJUHR^)O)wTv@=rJ#xy?MZ|BXX{LfDeEJPb4JExdbOR@q*d7)xt!4 zdWD9vpK56dLq-wlUT{m@z3$o(tCMpa63O<-fbq|WNf?sUjxg2SpVseMzC%u|DzuMdoso!!z! zIPX$qMaN5^^_enu*{AoJhQ9^f1>p?FpPZRJ8jMWGS89l3vl6G>>Kl7hn@Iq;C&3s1HDT^$V+fzU!N+`6?>&5?q0m+1=V2B$vCZ|ImG$CV)3 zzvH~I)TVLuz#F24a4}K&DGQ_IA!V^xG=!~3NvJ8}Gfj|t;S~mQ^d$o zuYq+o79&3w5m3nKQ`9DNRC%3*mQ{IB3O!<>UKD2lr%r1VqA|m z;Xjb)#_INRpp~LXM@uFkj`wDG7pX64rtBGUo6^mD&6XSecYQ=G-S!ocal11VM@a^a zE;|o8YwSF+VezMf%1sSTNl9cgeJCPs3%A8>XE{URoOkQ^u6fGYstcVK|Cz}ZjHB&( zO~o(?H`!_3$A@?glGJR3NdDzruY2$$ZR}z3sx0Z=OWBzx!Nit2b8&MKnS-upS*@=4 z2VeurdA@semp+7OV9w&s&AG_0fIKeZUc>#Q3^QIpU5j;lTc>W zmc1{|7E{NmxV4H_Z}AQ963IoLweour!|4VZuL~x8^Yau-vq!|KXy`I5Y;4jUY|4-S zWb%rkka^sy^k%DO|0I!sP|^!`c5E)3TsqGO0AEmkGfTA`{y2_3YrC}s$IjVi8t6aG z+1h*)8rtyf&A|;#SmRYz>#^UsA|qU{&!i&~kCboH(5T{6p~3DoKmVYd@qE*O0#P`h zMJOiTO3UAjI;H|y7^PNob;|jy|H34*vYplpzunDN$5X`xkP>Op9d_x|X)3beNgow~ zx)n*vP+1QYTjn*3Tz_`4brwu%_+2CRudc4b5%h_WipITh!PhMFMC~QdBhycfjTdwa zzH>c3-O?YE=ial=sdu2n)A5zD=pD4|_(#jg6D59i8F$6AbTOJ8?yXBCy^k`pUfkXc z)p|aw(dx0!bSR;L+O!c9MVHSJJa+BrY)`>U4?cMtOa%M10GR_3okE^r+xEZcB$y^^#^tm-4ij z8t?w>UU(*->XKq~LcywDR+wie=Or5roxW~3UA)W@+YzrS=ZU04g5u)h_J2?R;M_lb z@-)Jxepgu55LOmUnLsWMpd0wt85)II7Y)Xh;n$-^JmJ4c9o{jPt6F$2q$dTAkBeC^ z;V@77q}~4R*y8?pzEe6=D_#~scQhT2dT@&~T!r2GJ$7tQwPWE_#ygn>H{nMa6HUbH z(hRYcn~(cz?A(;{<3PHt`OBQBqrKGE{2W`cwk7@?jBa@cmxE{GK-`nd=lwf)GT3TJ z5md{S46@jzsc|Qu6SOT6`fsNz(^oNfpKK{0-U_AcqzRf`{A36t>+U~E^a_bOO(dy+ zQjl1B$0gL)W$z)Ub6-1E#$`B=|K zcPydA%XQEq90LD*#?RX}qq2zx%fC3LM=O07h`ie-?}R+c@ERhySpMdwwOUi&o@COA$&P1B7op z#d#jSyg1j%IQ}ZPgNVSzNwpdlhdQDTdtp%UQOm;oX6E9Ns1y?-9XF_#uJvlSZcINX zhJqdzqHX0%t<`hitQ4VFk>gVmN*zcME(N6hgXip^Ud9wuU;``9Lb`x+vXU=P9m*6e zNoBGxHWI*yMsri@r5Bz3`yXO&hWPhM)Ys?ce%I%2>`d9`&KWYFgZ)Q582Q-vP9a9F zGma&+cdq%I_ZiIeDfzMCT+m2UBNIWQEXGp34*QZEsoUN_1Sf(lrs0@6{I3Sn0xLlp z9I@l6uNXYJL&D9j7%7tY!>tHyFV<kh^k<_z$CP-5<+{# zAAUpZ@MT(%;v$x9o~d5{wjP3cAz&&im?#l6Pl>vO&}X9Hwk^Fb(}U%Si5Z{H$6_8^r6 zW|c6`_18l-#}s`!&xO-$hC#u(2ba-a{zU_TMM!xS1w>KugbBqolD6u;TfF@F*mOv{ z2Wl(4In4E)CCzy#K>Q$vsN==eRk0xQVqKyk=nX$TIX$A^8}VeojR1eqW3g?nCmqP9w{6hvLvs%IuA-}%uV z0#*!PnxsFMbPmGZ-riDl6JW|+*>fm|d+T@{{7Y{bt{z(QNnAuqgauIYgyr>|LI-D4 zoEh!dbTsBI0ZF4BX6!JYH!}g=KqCb@NVDcpG0;?Mu4og~tGViKtFEAe9mGDXW)Ju(}Sgg(Y~m z-&7;F=u>&d65qM^_tDf6Q2A4db~>n!H94cA~^DX1uDLZ;_?p>Fb6m*skTF7pM+9TcBTOuL;u z+h3G-bZ1UxVIE4w!BYnUZvvuM+$ZncJ{vt{4exW!c--!19Pi!90baixZ+**TX>E%4jsa>^XvOh<@eip3KC>LrP{_CyU zKNFAR*B(lbTi?)dUdOVf^P?1u=)tO6S`U+&GjwP)LJiv^Xd1J*o*_p5D9U{tkL)~S zabQ#|LTXn``uojuYCxnM9B)}N`eUmpCR4Fj?HkqJsQfLCB-ohkE0=6ER4x3j9ZeR0 zX5YrbUDDtDk)EOKk80zh(i@5&0D*@20il2*o9@sun6(GqUtMigZ{wbM-gw zPYHJOh7)V&Rng%kE^`GcPe1(9e}0~>5lRhFG@f)N&_w>iYmy1#bXa~_N8y~8-74`1 zdRr`SaR6obF99>ec3ak|X%4-1DTO!(&{uiZ9OnB@oF3ivF0XOHUdXOIH`(dwY5dRL z+j-0$iKgKadx?rJT?6Z`+pOe#r@OtEyX*aDV7%PLG8>ejCARrdmtU3Rrn_mItV!$u z1fM+PvE5J_ib4%B*gf~fC=u>~ ziMn@3yAbbj9fzn74fyyXDJ7w22+Fnh7fz!-;T{hjsrP&SS0H#(fo);$-<#Q6l)>d` zJ3$-78j|Bnwt4_exY|k+2wR(-XT(QK=3s~SZBMWahw>dGBK^eA)S9h&^2;3Fm+k!^ zbJwq_9s>mx09pq>ue+oSb8Y*2AOuu*TLx6Z zzG?6lp0p3iE9Me<$`5GrkLCwe^_R)DOU<+Ybz5q{X2$jZn2Mrd7H7Ag5`C( z#fL<5PpwT|)_7O)0g21O9!_jHEEcuuCv2?eY({n-7qnm%gSNkrJnrQ=W!6*Ui7zO; z7qCa}CaJ7d{M(*TNkT*vM5Sb%-HJ0m#tFWM0<4$cI|vyv(0+qCqN$a}O+)rmJI~vf z{%sPOO;7d2NSttj6~j9wyoG0@iVX)G;=%#EZDk6qI^9d8!Fus+U5>B0az`c9r(hr8 zwf99v<|XOjTjz>}dK74{5YuCRj&0O7wJP%4W@b`&dTfinPr!n_o#ng@aMw`Orv5IW zE&HGA>3AiJEP{5kU4sS@YoZ_pPkbW+if*?vAWdKrbI0Bg{v!#mu^m${0|=}%zf$KA`@ zs5z)LM1vUTo?Asz&D~;d3j(w=ba;KG(H#SCI$v3Ziea^z%m$_+{o-ytv+3BfrS6SL1YO;I%D>I2cjZdb= zPQTS$kf)_7G5_0>FBDGvtC9{Q23aSI(nYW@^(~@C2oliGid)ymOw_G3+1Tn9V&WQ7 z<$yIQIp|r4T%W0F))+bcCuHpObvCzAnkTGhSHV`eUkX{LwLi|8^$wFGKKnI6_cjqO z$)}TX~D389bM!zvp*|=Nzn4M~Q)Z zi}Ms8c+%eN3Rn`p4(oNd>*@7>{a04>8u=D65PKa0aYXXIv0bQkwW=*x=m=tvXAc%#~A z8tJ)bQOez7kRj{&)QDPYyfbYqDh5r5(|!49=gaD8d}aarUWa#T z@`GKhdBnB5uuzByC=LV~4%bwLzLB6uoub#p{JXoPWnVYp2AU(pABkcA{%sSeWfd23!;43mO`;pb7YS#a+$hX&3J@6Sp>UjbX(J zg!&nyG2YWB??EfQ*~ky=R`_ghS%p2A5d`$N(w2Wc*PXybOfx$t5w?1dJ?(5OQ8)OX z|1!y?)vB>QO)9kEH{Xid%r!IBz6*r_D8slN0((qiAp{c&^>pi;LB2^8@XZh1JFT%N zJdSmr^>Os~>0riHqH@^jIb;Ff=8=yiB7W^{`*Yp|Ys2zT@Okjn10yB-flS-vw4~xC zH#P?k-Mp>jksQun8Yy45wqkSp!_recTx64$uyvAZTsJwq7C5_;K;M#Y4?S<)Y(>1F zx{pu$-#XrB?`06ZF13A@pVDmO0t;)t;9&|XGJLS%vMwH2D~p1~9%`QZHHN^@LwO9w zqO;1h`v+4rJ-PUSGQ&6oFz~(HgmTVebBx6SHrAQ7tcqas{&OPyDCnv;`4K?~qJS$9 zylli|WNpSyJIw)K1t}p6oap0u2Uf(a`!saaQD_NtN+II2K$$lxpGwldq5HJJ0jn8K z6-`y4@(l5tcGvy4yT1c_Mxv&^rKz5cptlwHNHH}6zWNX;s4xL@0Fd8jwhrAP3F=zb z4K%-82xWrNnz2ecKLdM*y>PL?0*NM>3qRgduGt&oP~W5a3jEr_p2 zDwn7&sk?8at#?W!5pR|zB^sYgw6>3#3H;Ua*Xr&yQ5l@XDqyb;OR++0gouQR}EE?}cr?1ZfhO$cUAj}h4{P&Q` zeb%ok`yQe45t)5eVUae%Ep|E2<3wvm=Mn?#kP!%9#ew3Y&O_$zd z`co^y(ltiU2gHY;R-P;XtI04p6UEtYMc;_UH$1a^dOqoL&GQnKiOlniA^NsuFb=AsB=epYV zw9`Xo*-@7GM~!xkW$(yr9!=Wg9*`(IBl~K7A2U zIG>lRl~C8D;Hla>=svb~?#5!cM_$CV&g3R4EctC_be^=_lSrorzLyHKb;u2-6mmO{ zIde^s8NFAg{pZ_4E7J9ao!s3~^gc5Ioz-K6&;TWKi;D{YB>(M22I4-aOJ*wSr8uYe zDZ*q?$~6_;-k!EpJ%ML<0qEqcXkRU>gp43a*%$9p3*~rxz~BTr`|Te3_-y)peEUFX zJ|t|)zwWMQw^r7$s5qT@QdNXE09OzW)zFVmIT{2*8L7Y~tn!tbfM z(#5t^=xT)XD=lRaX6>Sp91E_biysfj?7R&ea9Nxd`~`?Pj3sR?BhWI#g)u`=~Ao3igA=Kve` z;VCL<{R^|x$c_#nUn1hZnhD-ElnNqn@OO<1&P-9WDz34V*fYn`jPp5z(TYayezBIt zShDB0GO@@;GZ}rMMbfvwn=LXMgfI^rR9G4DIS4_iaxd*~Y`{b2xIlpiF7G>T86Pwd ze7WCgWv&MSxVfA^wX|YE0xRcE38~=Kgw!qHD)s5I;P{+ly|r>^?fq2Y?Ip*^%k)x3 zw?9x$mFeWL7^R+dB7O$;xgB!cxGj{MvS?6{Dn?uN=4OEf#DbYN8C{NA->K8#VuX^N zFxsA~g*?D{wVv{MKJG7`@{L&~8is@Y7#itW+eUN++8z%7&=_jH=@7Sv)@8|WnKyc@nCRIa8e7GRCs(C;RC}%f45N0jvVw* z{~kZz)?hoVvd)Nxbk{$x$T`&Q`*-bn*G-b?`!2qYTpsS{E!A&lpUf!vCkw@{ynmua z>n_;a6!>v`14~tMXlJ!2wF^Y4PEsl-P6<1{cK`+gfW3b9Eyr3u4P6`8-(_J>b2 z1Xn8G({|7D^DG>j;?{Xe)hyxz$OJt#sCv5)+q+-1+|%XzOUL!APJ0qM5wAfe2Gg98 z$KwW_E@Lzr+ibM8jK`d%E^vK>v%Ibu6ZvjaSff&Hm;47TD;>Sq<_7qamfjgV-&>eE zk2kg~-h%dE`#;}4!YsStxPE{M*M!p*#(Kx;)_v*Ngt*-CCez2J{tD}`?2GhicK6?B zw!r#;gV$ocqdzzwEod|DoGLOBw?^L#!U4dwGV{68MvnUz03fePd>2$^;s1}Q+Z;62 zuPdD6gmYOL;2btEBjga=Z?TXG4RTH7=WQ|Il`W>kF1XHry> z9W%Gr*nzg#N8emZ@pjKpsoNHBB0DZ+cWMNohFRT&v(7n2<%G~>J~QpRQq?JsywI$L zsk;(u=9Yi)AUCoMb$iBIPJy< z_)d9ry@0>21-D-=y3jpK>Kot1F5J%szU{M6H|UPOkz-~q4<%KBVoLl7=!IeY!L)vs z;FfKA6lnlgV>aHWY9&v%PKPlp{cx#V&+y66i2MN1ay|aKt7CuZ>CUljCDZ;awsQ1V zpm)>G*IwADcd`2eMlK3lFlybd7u4_y+$wzHYW58G^pVAD70VdOtr#(L0@zh_NBpZZn4ELp<#$tvpofkS1lrzGzHq> z&e-)gG($D+v*b>XrV*WNXAJ6RwNL9b>Uz`E8Xz8sn8rU7_Ze5KHoCVHxy0cB%ykX; zq#9Y%jB=U7gC>X)`Y0^@ab2eP@+4}*fU9JL7aZUv4ZNMRanV9$Qzf_NqdzvU9&Bro z+62iI&48qiuiRV$HKD}VJP|%^+9K;?xw#ct(Sx&GaSn!-M^UGhqV=lY86yfD&HhpW zzr}_45OZtvo)8bcc-e~?<)>7Q09cQ`?fkDy007S6vGkkd*nkE%Tga3!NIC}N<34!E zYsqvSb(d1W*mB`l3T|D^HcG2o8SggkzOh&0f{?Q|RfoYBz(jPz!Lz<(Egr<;G6Ppe z&B%UQ?l76d+Nj&=thzqZ*)&_0C4hYx0szEhWI~S{bc|=Ya8)c^^_5N)HcH1mpB?1c z^W$a~am15GtcbUQuz%Pb}(Fc~Ya@z*^1=uY^EU%Z=Am19Xl z=+jC3dJfvE|9vXdi_?yM?&@Ta$zrqu>>;ty9NXq@=4Ow$6_gK!*wrhiT2|!N>J|{i zQo$QqYLcBXb0!l-qkjt_niPUNEAPqcbxf)a-D{Ra7^ zBae$5D?dVk8auEb?NvNg3l4L;`nrxl1S_F{v1)Yi?IZYIbOVBk-|h*2q5=8_>bM+l zI&(~32x5GGIa2l#Vx`(MDL*gWi|K$JREI(17_tf`_azMAOALHU{i;{Gr;LiqDLXjZ zBuQ+^eevX&ySA_zJPmyta31G=6co=YlerB)$m>Uh3Jx)9tY|OZiyH3ok*hf(NvUwi z6Yt%tpv;V1JTQN!w_XjN!iH3K8lh)g;Gr|{n$!d*U2birbS;O%3U6n3?W5&b=I2=v z&VJJVaBsdht>6Y;q8=dtT7nlM%xzm2)r zp61IPIT$S4$Ms>qj!VD!0FW<*FZ+@@vj~&}+>nqTldm8)f~eq0&srbfm$mk zI{5Z7elcp3==)QW6m8&iqLWZgHZqYz_tB6yD`IbxYr4_bnKP0#i}n^V1%78;L_u4` zE^j1I5SFn485Jdz#K7iYt)t+(v*)w@{NFN=0u z{*B`(b-r1~hUzU^n4^P*)O3D-7y@@0aT_3-uw=r_TxX9}Z|f*%%z4?65~J_!*gN<^ z(`n*eJ3r^V_3w^j9q;O@Pe1TRoiW;Yee#sSE3xfSNMFa*(W7*YZqMD0#xJ)35mw1% zmC2(OIbs)#u#rQoW79_ZtEN{P&%@!;Q=0?bZJqnsXGyZA)oF8wlCMU$!QRb)3_d(CM_dt3EX#!+-COMn6pxVjR~ z+5DZk=dv4iQjQ_u{)&O zG2EV-bjG42)!JLpdF}@x7|IJ8f02T&ys%2bWAqi*4~Q~9Z*6b0B zB_(pNmjxFIbZ^fbikHI?v1Cu<7w%)6KnGihjA0h8fv(Ipw!lQ_yIfc;wW3KuaKtSn zl6{*;jOKMW2c&qqy`n$dLM!S?3wYMvyKg}FW+r2t;nw8c{3&hWl+b#SocmkkTbW(x z5_`PL4=srD^6PptbM#dap68uP3LVqze*v2XWcmtI*D8a;YY<<3UQe5zAj&ZmlC%2? zcGu*I#Bgy(#hS5qGYd5HtVZ2@R3x1j5fQn|Wzp}RoL`yJtH|BUl@@ER*U z0|Qx#kZ>#$1OVcG$+P<-D5l0F@<5j5Fq4xE;aFNEm*C-!u7(jT=`kfOE1!JzX6Ian zaNsiv&yDv|Y+sJ0#X1WS%(5JIuE8W@D8iqnnb5=`F>(MHW$&n!O!@pwrcLpW0^YmIYqrbL&V+%R!RPw?hAu|l2j&AE;fvHe4Km*pjI#W0lI_-edP zBvo1v1UTX85dxsVpPaPyr~O>|TN2V?JWyR-odN)SRATCCu{?kf$yC!1txvUy6aiU0 zLj{_3?dwro>>n4?f9_9v7E-M`dz{DA{)xwU+gCnP>?sXQb~!BIq3NRYZr;uoxuOR$9U(+zUUZ8=zXxsqJ*+4X)O9BLfv zHng0vwO?~Jb~sp6Ec=JDPt0tuO&=Z`6TL(7RG87=%SJgKfS_12$I^{XhwXI6h=}?5 z+3}TgKfD+N2&x(v7j$p6j$9p4OVdpBgV(?ErMLrPRba8rVp_Jj>{8Xj9T%VTCAA!i zi-+94s|$&X^t;;YZ?KWQD@KHO-`|Na2_o=+r|s;1JAz{S0f6^9x)Cq^2L1i|aZTBq zwJ#VPB&$}6scWUnEYmlhopz`00*XtORLQc@RAE*dkaoiTX1YsPw~Z8-Zwa%>=3xNjw|3L8{K zxh%+y_9T{J*bc9?OGCMB2x0A@Ql`!>Y`jHn4eAr_$<2I*U(spVmyrEeeKm@_AZ_rw5k?RJfhVN?jvZNDS~Jn+ zBz7Pep0PV;q#>@K|Gn4JaVx(6+GFiXeLgK^+?5t9<#al~V`*|))z%j~rxctmrAQJ> zcqV9mb;I4aajDWB9j5xC;b!Xuu~NNA^M1yRVY4^y#Kbb>a!Ky8iFrpWr3$}Jmqovz zByXxZ=cAuagaxWTF3U?U7JA~z!Gv2NAn;`P4SzMlXeZw_cQsqa4j(uOLy@Yy*GJLM zr#%B@73bmF@z0MPx?&&Mrnhfo0h{Hgl>Pn3_oix_{4%2ry3WxEhR3KBGP~L4YU4R( zgGwQv>+n#qxi7@85yfZ4dU@$9(x<|BJHeh&$Ynpa-fn+6D75cDgPjyNx851V;&T6a zOIB7@e!I&f^oEcD3JCn6BriWCkthQcQ%Cfnbr!E8P$f3zXUDSu07uI5VS3gEU|CMQ zc-NId5o)Pv!X?aZ-X?gQc_T@U%}`!M@A|9j2CkcVtbvwq!wTS2POAy3GE0mx>kzNpN^6951J M07*qoM6N<$g8o@6NdN!< literal 0 HcmV?d00001 diff --git a/src/branding/fancy/show.qml b/src/branding/fancy/show.qml new file mode 100644 index 000000000..928911e7b --- /dev/null +++ b/src/branding/fancy/show.qml @@ -0,0 +1,103 @@ +/* === This file is part of Calamares - === + * + * Copyright 2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * + * 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 . + */ + +import QtQuick 2.0; +import calamares.slideshow 1.0; + +Presentation +{ + id: presentation + + Timer { + interval: 5000 + running: false + repeat: true + onTriggered: presentation.goToNextSlide() + } + + Slide { + Image { + id: background1 // Must be unique + source: "squid.png" + width: 200; height: 200 + fillMode: Image.PreserveAspectFit + anchors.centerIn: parent + } + Text { + anchors.horizontalCenter: background1.horizontalCenter + anchors.top: background1.bottom + text: qsTr("This is a customizable QML slideshow.") + wrapMode: Text.WordWrap + width: presentation.width + horizontalAlignment: Text.Center + } + } + + Slide { + Image { + id: background2 + source: "squid2.png" + width: 200; height: 200 + fillMode: Image.PreserveAspectFit + anchors.centerIn: parent + } + Text { + id: namelabel2 + anchors.horizontalCenter: background2.horizontalCenter + anchors.top: background2.bottom + text: qsTr("Welcome to Fancy GNU/Linux.") + wrapMode: Text.WordWrap + width: presentation.width + horizontalAlignment: Text.Center + font.pointSize: 20 + } + Text { + anchors.horizontalCenter: background2.horizontalCenter + anchors.top: namelabel2.bottom + text: qsTr("This is example branding for your GNU/Linux distribution. " + + "Long texts in the slideshow are translated and word-wrapped appropriately. " + + "Calamares is a distribution-independent installer framework. ") + wrapMode: Text.WordWrap + width: presentation.width + horizontalAlignment: Text.Center + } + } + + Slide { + Image { + id: background3 + source: "squid3.png" + width: 200; height: 200 + fillMode: Image.PreserveAspectFit + anchors.centerIn: parent + } + centeredText: qsTr("This is a third Slide element.") + } + + Slide { + Image { + id: background4 + source: "squid4.png" + width: 200; height: 200 + fillMode: Image.PreserveAspectFit + anchors.centerIn: parent + } + centeredText: qsTr("This is a fourth Slide element.") + } +} diff --git a/src/branding/fancy/squid.png b/src/branding/fancy/squid.png new file mode 100644 index 0000000000000000000000000000000000000000..452e4450c56c10cda33dcc9c5d03753ace458862 GIT binary patch literal 8313 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 g|LZIH;yI`SlJP@$RdA9Unaaf`fxa+`T>hogIB2 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 literal 0 HcmV?d00001 From 8a9baf6e11a7a944fa482c605aa63278ec390545 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Mar 2018 12:55:14 +0100 Subject: [PATCH 28/55] Git: ignore compiled QML --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d67fee190..2f36a5de6 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ __pycache__ *.pro.user *.pro.user.* *.moc +*.qmlc moc_*.cpp qrc_*.cpp ui_*.h From c116dba2e8c01f1a385a1b9b05a0b68ba3e0e35a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Mar 2018 23:07:15 +0100 Subject: [PATCH 29/55] QML: add navigation items - Add a NavButton, which shows a directional arrow, and fades in on hover. It can be used left- or right- by setting an image source and click handler. - Specialize NavButton to Forward and BackButton. - Add a SlideCounter navigation aid. --- src/qml/calamares/slideshow/BackButton.qml | 24 +++++++ src/qml/calamares/slideshow/ForwardButton.qml | 23 +++++++ src/qml/calamares/slideshow/NavButton.qml | 68 +++++++++++++++++++ src/qml/calamares/slideshow/SlideCounter.qml | 37 ++++++++++ src/qml/calamares/slideshow/qmldir | 6 ++ 5 files changed, 158 insertions(+) create mode 100644 src/qml/calamares/slideshow/BackButton.qml create mode 100644 src/qml/calamares/slideshow/ForwardButton.qml create mode 100644 src/qml/calamares/slideshow/NavButton.qml create mode 100644 src/qml/calamares/slideshow/SlideCounter.qml diff --git a/src/qml/calamares/slideshow/BackButton.qml b/src/qml/calamares/slideshow/BackButton.qml new file mode 100644 index 000000000..2d5f4dd5e --- /dev/null +++ b/src/qml/calamares/slideshow/BackButton.qml @@ -0,0 +1,24 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * 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 . + */ + +NavButton { + id: backButton + anchors.left: parent.left + visible: parent.currentSlide > 0 + isForward: false +} diff --git a/src/qml/calamares/slideshow/ForwardButton.qml b/src/qml/calamares/slideshow/ForwardButton.qml new file mode 100644 index 000000000..9f6fecf8e --- /dev/null +++ b/src/qml/calamares/slideshow/ForwardButton.qml @@ -0,0 +1,23 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * 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 . + */ + +NavButton { + id: forwardButton + anchors.right: parent.right + visible: parent.currentSlide + 1 < parent.slides.length; +} diff --git a/src/qml/calamares/slideshow/NavButton.qml b/src/qml/calamares/slideshow/NavButton.qml new file mode 100644 index 000000000..dbe211bdb --- /dev/null +++ b/src/qml/calamares/slideshow/NavButton.qml @@ -0,0 +1,68 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * 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 . + */ + +/* This is a navigation (arrow) button that fades in on hover, and + * which calls forward / backward navigation on the presentation it + * is in. It should be a child item of the presentation (not of a + * single slide). Use the ForwardButton or BackButton for a pre- + * configured instance that interacts with the presentation. + */ + +import QtQuick 2.2; + +Image { + id: fade + + property bool isForward : true + + width: 100 + height: 100 + anchors.verticalCenter: parent.verticalCenter + opacity: 0.3 + + OpacityAnimator { + id: fadeIn + target: fade + from: fade.opacity + to: 1.0 + duration: 500 + running: false + } + + OpacityAnimator { + id: fadeOut + target: fade + from: fade.opacity + to: 0.3 + duration: 250 + running: false + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onEntered: { fadeOut.running = false; fadeIn.running = true } + onExited: { fadeIn.running = false ; fadeOut.running = true } + onClicked: { + if (isForward) + fade.parent.goToNextSlide() + else + fade.parent.goToPreviousSlide() + } + } +} diff --git a/src/qml/calamares/slideshow/SlideCounter.qml b/src/qml/calamares/slideshow/SlideCounter.qml new file mode 100644 index 000000000..3252fe552 --- /dev/null +++ b/src/qml/calamares/slideshow/SlideCounter.qml @@ -0,0 +1,37 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * 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 . + */ + +/* This control just shows a (non-translated) count of the slides + * in the slideshow in the format "n / total". + */ + +import QtQuick 2.2; + +Rectangle { + id: slideCounter + anchors.right: parent.right + anchors.bottom: parent.bottom + width: 100 + height: 50 + + Text { + id: slideCounterText + anchors.centerIn: parent + text: ( parent.parent.currentSlide + 1 ) + " / " + parent.parent.slides.length + } +} diff --git a/src/qml/calamares/slideshow/qmldir b/src/qml/calamares/slideshow/qmldir index 5a0c277b4..7b964b831 100644 --- a/src/qml/calamares/slideshow/qmldir +++ b/src/qml/calamares/slideshow/qmldir @@ -1,4 +1,10 @@ module calamares.slideshow + Presentation 1.0 Presentation.qml Slide 1.0 Slide.qml +NavButton 1.0 NavButton.qml +ForwardButton 1.0 ForwardButton.qml +BackButton 1.0 BackButton.qml + +SlideCounter 1.0 SlideCounter.qml From 3d89828fe15ae358711610d7e041b7577b0074eb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 12:03:35 +0100 Subject: [PATCH 30/55] QML: drop potentially confusing shortcuts Removed these features that make sense in a presentation slideshow (e.g. during a talk) but that are potentially confusing during a passive slideshow like Calamares has: - Using 'c' blanks the slideshow. - Entering a slide number + enter changes slides. --- src/qml/calamares/slideshow/Presentation.qml | 52 ++++---------------- 1 file changed, 10 insertions(+), 42 deletions(-) diff --git a/src/qml/calamares/slideshow/Presentation.qml b/src/qml/calamares/slideshow/Presentation.qml index b53b9fc55..da5048035 100644 --- a/src/qml/calamares/slideshow/Presentation.qml +++ b/src/qml/calamares/slideshow/Presentation.qml @@ -2,6 +2,11 @@ * * Copyright 2017, Adriaan de Groot * - added looping, keys-instead-of-shortcut + * Copyright 2018, Adriaan de Groot + * - make looping a property, drop the 'c' fade-key + * - drop navigation through entering a slide number + * (this and the 'c' key make sense in a *presentation* + * slideshow, not in a passive slideshow like Calamares) * * SPDX-License-Identifier: LGPL-2.1 * License-Filename: LICENSES/LGPLv2.1-Presentation @@ -57,6 +62,8 @@ Item { property variant slides: [] property int currentSlide: 0 + + property bool loopSlides: true property bool showNotes: false; property bool allowDelay: true; @@ -70,8 +77,6 @@ Item { property string codeFontFamily: "Courier New" // Private API - property bool _faded: false - property int _userNum; property int _lastShownSlide: 0 Component.onCompleted: { @@ -85,7 +90,6 @@ Item { } root.slides = slides; - root._userNum = 0; // Make first slide visible... if (root.slides.length > 0) @@ -106,48 +110,21 @@ Item { } function goToNextSlide() { - root._userNum = 0 - if (_faded) - return if (root.slides[currentSlide].delayPoints) { if (root.slides[currentSlide]._advance()) return; } if (currentSlide + 1 < root.slides.length) ++currentSlide; - else + else if (loopSlides) currentSlide = 0; // Loop at the end } function goToPreviousSlide() { - root._userNum = 0 - if (root._faded) - return if (currentSlide - 1 >= 0) --currentSlide; - } - - function goToUserSlide() { - --_userNum; - if (root._faded || _userNum >= root.slides.length) - return - if (_userNum < 0) - goToNextSlide() - else { - currentSlide = _userNum; - root.focus = true; - } - } - - // directly type in the slide number: depends on root having focus - Keys.onPressed: { - if (event.key >= Qt.Key_0 && event.key <= Qt.Key_9) - _userNum = 10 * _userNum + (event.key - Qt.Key_0) - else { - if (event.key == Qt.Key_Return || event.key == Qt.Key_Enter) - goToUserSlide(); - _userNum = 0; - } + else if (loopSlides) + currentSlide = root.slides.length - 1 } focus: true // Keep focus @@ -165,21 +142,12 @@ Item { // presentation-specific single-key shortcuts (which interfere with normal typing) Shortcut { sequence: " "; enabled: root.keyShortcutsEnabled; onActivated: goToNextSlide() } - Shortcut { sequence: "c"; enabled: root.keyShortcutsEnabled; onActivated: root._faded = !root._faded } // standard shortcuts Shortcut { sequence: StandardKey.MoveToNextPage; onActivated: goToNextSlide() } Shortcut { sequence: StandardKey.MoveToPreviousPage; onActivated: goToPreviousSlide() } Shortcut { sequence: StandardKey.Quit; onActivated: Qt.quit() } - Rectangle { - z: 1000 - color: "black" - anchors.fill: parent - opacity: root._faded ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 250 } } - } - MouseArea { id: mouseArea anchors.fill: parent From b6fd8de126035ee1153152b59dd00f2c290fce16 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 12:08:07 +0100 Subject: [PATCH 31/55] QML: Use QtQuick 2.5 consistently --- src/qml/calamares/slideshow/NavButton.qml | 2 +- src/qml/calamares/slideshow/Slide.qml | 2 +- src/qml/calamares/slideshow/SlideCounter.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/qml/calamares/slideshow/NavButton.qml b/src/qml/calamares/slideshow/NavButton.qml index dbe211bdb..33d8cad77 100644 --- a/src/qml/calamares/slideshow/NavButton.qml +++ b/src/qml/calamares/slideshow/NavButton.qml @@ -23,7 +23,7 @@ * configured instance that interacts with the presentation. */ -import QtQuick 2.2; +import QtQuick 2.5; Image { id: fade diff --git a/src/qml/calamares/slideshow/Slide.qml b/src/qml/calamares/slideshow/Slide.qml index e033e3c17..6b32ddfbf 100644 --- a/src/qml/calamares/slideshow/Slide.qml +++ b/src/qml/calamares/slideshow/Slide.qml @@ -46,7 +46,7 @@ ****************************************************************************/ -import QtQuick 2.0 +import QtQuick 2.5 Item { /* diff --git a/src/qml/calamares/slideshow/SlideCounter.qml b/src/qml/calamares/slideshow/SlideCounter.qml index 3252fe552..7d8482b8e 100644 --- a/src/qml/calamares/slideshow/SlideCounter.qml +++ b/src/qml/calamares/slideshow/SlideCounter.qml @@ -20,7 +20,7 @@ * in the slideshow in the format "n / total". */ -import QtQuick 2.2; +import QtQuick 2.5; Rectangle { id: slideCounter From 7ab79a944b9f6ac172b35e42e336a1d2a5566b6d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 7 Mar 2018 23:07:55 +0100 Subject: [PATCH 32/55] Branding: add example SVGs from Quassel --- src/branding/fancy/go-next.svgz | Bin 0 -> 5473 bytes src/branding/fancy/go-previous.svgz | Bin 0 -> 5690 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/branding/fancy/go-next.svgz create mode 100644 src/branding/fancy/go-previous.svgz diff --git a/src/branding/fancy/go-next.svgz b/src/branding/fancy/go-next.svgz new file mode 100644 index 0000000000000000000000000000000000000000..c6dc7d0f4cb9def6cce592822ea664353275938d GIT binary patch literal 5473 zcmV-n6`txJiwFP!000000PS6Ea~rvl{+?gK(|(C6B-HO{XxB;Qyp>d{oXXWDsk?6} zS{&KBNTQ0Q*4F;|1BNd{h%_n6k`-?}mWqQ1jhBAV-M~P^_=n$pyt?fD)J&!q*m$b_4w#_zx~w@|1lW!UQe3gtQqw_ zT+H70{&fA%>Dln6>HYfsY<6>ca`NHBhj6g~!+7%U*Z#zr>CQ{ zS4Ru^o7>4{D>phjX)c?q=6W_g!GI@6o%mTNepVX4_^CM?UtNu_r)|mW>33_wlhJvW z?mF{4YI^wdUrh=ejL*_dd7b3Lq)tCxW+pz_nKpO5_00ZF z{#_MV0%1D7ot!o2xnvWro7u^afBSKjIe;*ljn=AJl3%r3jmY)zs+ryl&zkAU5-;WR zfR1MGvoVmj$@k60yZ5s$eKC4AresS64 z4sTSJZ_cJC>sl=(SQL+XC!g0E zY-HA5OSG(U;_P*>uT`?P_2ioL*`^VPwF(5l9O8I_(5EP?pJg%G$BUN4( zZIwK~mwjGm7k@0H|AaKvQN;4Ki!eg|7bMI*xMSpsHY5xpg#0P?I?bPoJtl))^EU%_ z)nL|xLliRh6?&IZ)WB>i(#cYm^^iC*r%pDbXdx;@J=Bb+HS`AP^MbuIF=klBCvA(mh;-oRg3$D(78d_Snr2=gl97 zx6|px@cKV5Z%cRgbhwIGqaT}}E{3z^lbD#QrTf!v-2$_(ulD9$dPZwXy3?8xKgFom z7AYZWZH*Ers{29K_?%8=0D2Ls6|}sz?C{9J!jW%tGllbh77LWzVV+IwI~?|+)RBE*>M+@yyNWvFxwKZqDFwosW@=||A`y)*N*u$#$0Ye;%RXg!GKPy? zs+&P9cBzCUQOd1T6c)+k3xWY+AB}@@674GlP}QXMM#%szn7Mept?L$?ELpYw+$MZp z30DiyJ#-f#;UH0>QB|K}&_pR=)wp{AA%|3N>_|v430l3VjzO6@;(jyR&$T2&P%Eqo zB&SrUj%=W5!McN4c__mW$(*(CF?fog{=fzDF3Ukq4>3SW36AzzayKMrmlrqxHJrU) zZ+M9@ayOJqaL>m3O%~bM-OZ0$m#4Rr%U^%DsnhZIC3o!)DAUl(efm^G8ji~MoADn1%c-w!8~;a$~QLEEkB zEE!N2aM#1Nhs;dYpL>H80~0#-DTX8*wfDL=K!`yNkya>X5Mzi5f%}ZX(J@*ENrS2y z^*IG~ibib(%prp=eTf-PDRBW~5D~Y&dLSah1&FD{So08L5=gx_>u@TLNg!D2?O+55 z9y$8Fu_S;6lz`+^KuW>gIdx#E*Ca$$V(s8kuR(~wlGfpYmhO5=x@xQfyN4`If?oT)?BRwW7f=#Xh;}SZa#%*g3(IojUGv@?UjV2loe17n%q1?6cjZV>Kg`U zW~UYujfthO0ttXxvXCgCMviOn>jeyew5p=Dx)dyd+p?{g3Mj#25~;g|2muhl7YcaN z3<3u;L|duKTUq(}-u}zYJcz^&?!Gm0Jsvf)yPIa3BDI#}4x*EqS zN_Th_rZIZp6d|o(Eg%KRiP(i{v>39i{<=T9IQ5Cq({znm)C=RPxulC0di8*>R634@3c_l*K6C$P_- zKuF*@9zg2C>(A?h5?PH1>wQpzAV6SRZ?#B(Xeeu4#7g!+?Kd|r{XyEBMR~OLhjp@W zlC5+%i*`U*d6M~UN;j5c8aM$$?l#=y}mdZkv(qAm%%QVUT- zC%bo34+1e0QR-tzsE`DYpTJ7^L9CgGJqc@KfyiA`MVqFKsza=43!Wkq#)`I1_Mx;H zv1QtxhA#Y~bU6i}w%X)qhpYYkvBZNhi`V2}3Wv$m6bWb7VkPJa8eFy^r zrX-!{9EBtqeeC+K4z7ZQBI-jhOswLcA7o7;Jv7>Ud zONX}xPsfrm?q$iC4`(R?M}SALWUPm?^!8jEfahaLct1;`kFurF=oaK1F1pW!(@@_eb8`F@rdeXHdL-OZDFY~Jd=QP~|z&uFOr0PS$Ab`hR#RHE#+ z-T0W<0?@=CW4rMYvjyTXJzpGT;<%3`CQgU5G}6W%Gg~kT{;SOvloIS?Da+6!Sc>J} z;Ve-~@-!^r4weo-cvPPY!e=_0r>3M%d(H*nma};;b_k8|$qp88o*Cn))t7Id_#E4d zezTScU*em!4D@2(tbNI^iW5D_8PexE)%>DoTu8rti~gB?Js!aDQyzXK)&SAbs>6?8 z;vDA-o^E5J^lx}ze18mN`sV1*`_>Saum7zfU-;ED#P;>Qn&w5L8~cHT?LTAt3q0e@ zB=Ac<;0?4}d3s7CLH729@$(#pe&K0Rst82bW3gd6|3ubIU)Rlvk#7x12y;t?^aHYh}@LkjHJ7v1g+iQ{Wc03t1lVz5*SCzHcnp(W~wjP~Q>nb0% z=TF}cN8=B9`Ex(>=kfTeluC>1etwzoSS%za){V^Epad~tPjWwVG(Nj6Z)G0b&WH8p z<3{n@$)pHe4)2<*cl&`wsCuVxDObIBr^AX-T#Tkg_v?4Lqp}UZyN@?lH;b%}kLmmI zhn!b-%!ZfK=6+90*5GD*aa|OdO>Ud@Vz;@<4zA0UyusVIZwo*gZ3R|z-$(Ciw4!?DHk;nk z;#bXVI2z7|o$D+SGQ?%?C!_Pz|Nik0t3A}Sv(x{{?_Tb z&=}5sdvTQ=qP%hYH~Gca*@>4KwQwOM168$?X8uO)Z7(6uKUWu}(8*tC`4GvUN+au= z)+dXOE;nC0J#u2HXq$R>Zw&JrpqtBAM{h3jORz7;J=`?T@$Jpkc+@OhXqi7+qziT3 ziL)K&&B__G?y9Vy6s5&pU3bz}MkCBo9IN`S;s`-mExlrh&ODI^8s40;gN z*b`~*om^<1;9NN0xCbbgv?_GTTuTauG1&q$^-%SOoPg!_ggp+C2WW@k+SO z1L|#Za(mgFHa|7lP)46V5aq!LIl8CC<@$^Vqv{h-Ph;M!OyA7=D>v_@SwJ8ab2Rz> zlL!8kmmCVs!3B2>$@*09&4s)FF zD+=|Su`GfhCXb&EW}Nt6ZhGArn;U;kR6UjC4G;MV`ZD#0fO z?iK=_3BG&iY-)7SJJ_CO(DyGKAh8iq%)oQP+k`86YEzx)n>L+NAW9f1r-@`EtrTJe=Y{-6nm8m%#8jFt zX$X;>wX`O|B_fvzhg8UUla#|=GDEmAVFWm6%CIl}xOwt!m!Flw+kI+VKqewPzNb)t z7$c*3TMyqQBK^E&ti8zdC4^+{(|`q3Bb`6ekpKY|kRfuEo_HT)5KidcCelLuO-af8 zk#6;Ax~hyYBu)aUZx+}<6?^1Cv8gm64fE*bqNpU)$9zLEQCk#JbSn^pMVLcI zS`bOpYC6Y2ynqTsgmXxQS_qkSy`T~cFAI{#7K{j_rE4XTkTK2^sbf@PNcqARq!=wO zB{(|LG9iV~xknOIN#PKM(C5jyhtyy$Ucj~w$rrs$MXN-uvqX}ZQKcXZIv+|$5$jy9 zD8=(O5mF$ZyC}$luB0IvM(kTL8}UqZTry}9#8k5G28&2w0bJW5Dq@DFRK$!EnU=~} zk=yMq)+8QFqsy>hF_|wrB4E^_5f?*V&`1`sl?C=>ZBPM?oC>C33F3O7;k2N$#bk+E zoD&#RNNqDLOQWoV(sJmP1IMJT%LtND%PHF;-l9fj?I|uw+HxFUx0t3B=OBP_3&lut zIZ|wq${P#7M9OoJF~$NRJ9!HMvBhnUT;7sdVmdE9<;^l#%zv4bDrs6uFOwmc(n_Q? z#ZM-YHOl Xw6srdKjg2a<&XadOC(EQW`h6#G`fNk literal 0 HcmV?d00001 diff --git a/src/branding/fancy/go-previous.svgz b/src/branding/fancy/go-previous.svgz new file mode 100644 index 0000000000000000000000000000000000000000..971b1d98975babba9d6a4ec572fd81c4021cdb56 GIT binary patch literal 5690 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 Date: Wed, 7 Mar 2018 23:08:11 +0100 Subject: [PATCH 33/55] Branding: update example, use NavButtons --- src/branding/fancy/show.qml | 69 +++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/src/branding/fancy/show.qml b/src/branding/fancy/show.qml index 928911e7b..e05a04b7e 100644 --- a/src/branding/fancy/show.qml +++ b/src/branding/fancy/show.qml @@ -17,21 +17,35 @@ * along with Calamares. If not, see . */ -import QtQuick 2.0; +import QtQuick 2.5; import calamares.slideshow 1.0; Presentation { id: presentation - Timer { - interval: 5000 - running: false - repeat: true - onTriggered: presentation.goToNextSlide() + mouseNavigation: false /* Only the fwd/back buttons */ + loopSlides: false + + BackButton { + width: 60 + height: 60 + source: "go-previous.svgz" } + ForwardButton { + width: 60 + height: 60 + source: "go-next.svgz" + } + + SlideCounter {} + Slide { + /* This first slide ignores the "normal" slide layout and places + * an image and text by itself. The anchors need to be connected + * to place the items properly. + */ Image { id: background1 // Must be unique source: "squid.png" @@ -50,53 +64,32 @@ Presentation } Slide { - Image { - id: background2 - source: "squid2.png" - width: 200; height: 200 - fillMode: Image.PreserveAspectFit - anchors.centerIn: parent - } - Text { - id: namelabel2 - anchors.horizontalCenter: background2.horizontalCenter - anchors.top: background2.bottom - text: qsTr("Welcome to Fancy GNU/Linux.") - wrapMode: Text.WordWrap - width: presentation.width - horizontalAlignment: Text.Center - font.pointSize: 20 - } - Text { - anchors.horizontalCenter: background2.horizontalCenter - anchors.top: namelabel2.bottom - text: qsTr("This is example branding for your GNU/Linux distribution. " + + /* Make this one narrower to prevent overlap of wide text with nav buttons */ + width: parent.width * 0.9 - 120 + x: parent.width * 0.05 + 60 + /* For just a slide with text, things can be simplified using properties */ + title: qsTr("Welcome to Fancy GNU/Linux.") + centeredText: qsTr("This is example branding for your GNU/Linux distribution. " + "Long texts in the slideshow are translated and word-wrapped appropriately. " + "Calamares is a distribution-independent installer framework. ") - wrapMode: Text.WordWrap - width: presentation.width - horizontalAlignment: Text.Center - } } Slide { - Image { - id: background3 - source: "squid3.png" - width: 200; height: 200 - fillMode: Image.PreserveAspectFit - anchors.centerIn: parent - } centeredText: qsTr("This is a third Slide element.") } Slide { + /* Note that these overlap because both are centered. The z-order puts the background + * in back. While you can use the properties of the Slide, it's not easy to get at + * the anchors of the items. + */ Image { id: background4 source: "squid4.png" width: 200; height: 200 fillMode: Image.PreserveAspectFit anchors.centerIn: parent + z: -1 } centeredText: qsTr("This is a fourth Slide element.") } From e7849c5ed0692a37907818ee4d190021f10746b5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 12:19:02 +0100 Subject: [PATCH 34/55] Branding: fix reference error --- src/branding/default/show.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/branding/default/show.qml b/src/branding/default/show.qml index 84f252d54..3bf133388 100644 --- a/src/branding/default/show.qml +++ b/src/branding/default/show.qml @@ -48,7 +48,7 @@ Presentation "To create a Calamares presentation in QML, import calamares.slideshow,
"+ "define a Presentation element with as many Slide elements as needed." wrapMode: Text.WordWrap - width: root.width + width: presentation.width horizontalAlignment: Text.Center } } From 8125698696674ad156342483beab30ccc95adad1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 12:57:50 +0100 Subject: [PATCH 35/55] Branding: expand documentation - Auto-advance the default presentation - Add more example slides to the fancy presentation - Expand README.md explaining what the default classes can do --- src/branding/README.md | 60 ++++++++++++++++++++++++++++++++++- src/branding/default/show.qml | 3 ++ src/branding/fancy/show.qml | 16 ++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) diff --git a/src/branding/README.md b/src/branding/README.md index 8901a6b98..5514e77df 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -28,9 +28,67 @@ There are two examples of branding content: the default Calamares icons and a as start-page splash it provides a tag-cloud view of languages. The slideshow is a basic one with a few slides of text and a single image. No translations are provided. + - `fancy/` uses translations and offers navigation arrows. These are + provided by the standard Calamares QML classes. - `samegame/` is a similarly simple branding setup for Generic Linux, but instead of a slideshow, it lets the user play Same Game (clicking colored balls) during the installation. The game is taken from the QML examples provided by the Qt Company. - - `fancy/` uses translations and offers navigation arrows. +Since the slideshow can be **any** QML, it is limited only by your designers +imagination and your QML experience. For straightforward presentations, +see the documentation below. + +## Presentation + +The default QML classes provided by Calamares can be used for a simple +and straightforward "slideshow" presentation with static text and +pictures. To use the default slideshow classes, start with a `show.qml` +file with the following content: + +``` +import QtQuick 2.5; +import calamares.slideshow 1.0; + +Presentation +{ + id: presentation +} +``` + +After the *id*, set properties of the presentation as a whole. These include: + - *loopSlides* (default true) When set, clicking past the last slide + returns to the very first slide. + - *mouseNavigation*, *arrowNavigation*, *keyShortcutsEnabled* (all default + true) enable different ways to navigate the slideshow. + - *titleColor*, *textColor* change the look of the presentation. + - *fontFamily*, *codeFontFamily* change the look of text in the presentation. + +After setting properties, you can add elements to the presentation. +Generally, you will add a few presentation-level elements first, +then slides. + - For visible navigation arrows, add elements of class *ForwardButton* and + *BackwardButton*. Set the *source* property of each to a suitable + image. See the `fancy/` example. It is recommended to turn off other + kinds of navigation when visible navigation is used. + - To indicate where the user is, add an element of class *SlideCounter*. + This indicates in "n / total" form where the user is in the slideshow. + - To automatically advance the presentation (for a fully passive slideshow), + add a timer that calls the `goToNextSlide()` function of the presentation. + See the `default/` example -- remember to start the timer when the + presentation is completely loaded. + +After setting the presentation elements, add one or more Slide elements. +The presentation framework will make a slideshow out of the Slide +elements, displaying only one at a time. Each slide is an element in itself, +so you can put whatever visual elements you like in the slide. They have +standard properties for a boring "static text" slideshow, though: + - *title* is text to show as slide title + - *centeredText* is displayed in a large-ish font + - *writeInText* is displayed by "writing it in" to the slide, + one letter at a time. + - *content* is a list of things which are displayed as a bulleted list. + +The presentation classes can be used to produce a fairly dry slideshow +for the installation process; it is recommended to experiment with the +visual effects and classes available in QtQuick. diff --git a/src/branding/default/show.qml b/src/branding/default/show.qml index 3bf133388..ad7c92783 100644 --- a/src/branding/default/show.qml +++ b/src/branding/default/show.qml @@ -24,6 +24,7 @@ Presentation id: presentation Timer { + id: advanceTimer interval: 5000 running: false repeat: true @@ -60,4 +61,6 @@ Presentation Slide { centeredText: "This is a third Slide element." } + + Component.onCompleted: advanceTimer.running = true } diff --git a/src/branding/fancy/show.qml b/src/branding/fancy/show.qml index e05a04b7e..399434420 100644 --- a/src/branding/fancy/show.qml +++ b/src/branding/fancy/show.qml @@ -93,4 +93,20 @@ Presentation } centeredText: qsTr("This is a fourth Slide element.") } + + Slide { + title: qsTr("Slide number five") + writeInText: qsTr("This is example branding for your GNU/Linux distribution. " + + "Long texts in the slideshow are translated and word-wrapped appropriately. " + + "Calamares is a distribution-independent installer framework. ") + } + + Slide { + title: qsTr("Slide number five") + content: [ + qsTr("Welcome to Fancy GNU/Linux."), + qsTr("This is a customizable QML slideshow."), + qsTr("This is a third Slide element.") + ] + } } From 2fee85907d175d3eba90b507cb9693cb03a4a71c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 9 Mar 2018 05:35:26 -0500 Subject: [PATCH 36/55] CMake: improve documentation in the Config file --- CalamaresConfig.cmake.in | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 5d1b0635f..6d32410c6 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -1,8 +1,16 @@ -# - Config file for the Calamares package +# Config file for the Calamares package +# # It defines the following variables # CALAMARES_INCLUDE_DIRS - include directories for Calamares # CALAMARES_LIBRARIES - libraries to link against -# CALAMARES_EXECUTABLE - the bar executable +# CALAMARES_USE_FILE - name of a convenience include +# CALAMARES_APPLICATION_NAME - human-readable application name +# +# Typical use is: +# +# find_package(Calamares REQUIRED) +# include("${CALAMARES_USE_FILE}") +# # Compute paths get_filename_component(CALAMARES_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) @@ -18,4 +26,7 @@ include("${CALAMARES_CMAKE_DIR}/CalamaresLibraryDepends.cmake") # These are IMPORTED targets created by CalamaresLibraryDepends.cmake set(CALAMARES_LIBRARIES calamares) + +# Convenience variables set(CALAMARES_USE_FILE "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake") +set(CALAMARES_APPLICATION_NAME "Calamares") From 345118aec995683904af11e343e4718a11a180ee Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 13:09:53 -0500 Subject: [PATCH 37/55] CMake: improve branding support - Fix broken subdirectory call - Automatically process lang/ if there isn't a CMakeLists.txt, this was a bogus restriction - Add support macros for installing branding and translations --- .../CalamaresAddBrandingSubdirectory.cmake | 114 +++++++++++++----- 1 file changed, 85 insertions(+), 29 deletions(-) diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index bc2f6f9c9..0c58a7257 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -1,43 +1,99 @@ +include( CMakeParseArguments) + include( CMakeColors ) -function( calamares_add_branding_subdirectory ) - set( SUBDIRECTORY ${ARGV0} ) +# Usage calamares_add_branding( NAME [SUBDIRECTORY ]) +# +# Adds a branding component to the build: +# - the component's top-level files are copied into the build-dir; +# CMakeLists.txt is excluded from the glob. +# - the component's top-level files are installed into the component branding dir +# +# The branding component lives in if given, otherwise the +# current source directory. The branding component is installed +# with the given , which is usually the name of the +# directory containing the component, and which must match the +# *componentName* in `branding.desc`. +function( calamares_add_branding ) + set( _CABT_SUBDIRECTORY "." ) + cmake_parse_arguments( _CABT "" "NAME;SUBDIRECTORY" "" ${ARGN} ) + if ( NOT _CABT_NAME ) + message( FATAL_ERROR "Branding component must have a NAME" ) + endif() - if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" ) - add_subdirectory( $SUBDIRECTORY ) - message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" ) + set( NAME ${_CABT_NAME} ) + set( SUBDIRECTORY ${_CABT_SUBDIRECTORY} ) - elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" ) - set( BRANDING_DIR share/calamares/branding ) - set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${SUBDIRECTORY} ) + set( BRANDING_DIR share/calamares/branding ) + set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} ) - if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" ) - message( "-- ${BoldYellow}Warning:${ColorReset} branding component ${BoldRed}${SUBDIRECTORY}${ColorReset} has a translations subdirectory but no CMakeLists.txt." ) - message( "" ) - return() + # We glob all the files inside the subdirectory, and we make sure they are + # synced with the bindir structure and installed. + file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" ) + foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} ) + if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ) + configure_file( ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} COPYONLY ) + + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} + DESTINATION ${BRANDING_COMPONENT_DESTINATION} ) endif() + endforeach() - # We glob all the files inside the subdirectory, and we make sure they are - # synced with the bindir structure and installed. - file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" ) - foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} ) - if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ) - configure_file( ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} COPYONLY ) + message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${NAME}${ColorReset}" ) + if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" ) + message( " ${Green}TYPE:${ColorReset} branding component" ) + message( " ${Green}BRANDING_COMPONENT_DESTINATION:${ColorReset} ${BRANDING_COMPONENT_DESTINATION}" ) + endif() +endfunction() - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} - DESTINATION ${BRANDING_COMPONENT_DESTINATION} ) - endif() - endforeach() +# Usage calamares_add_branding_translations( NAME [SUBDIRECTORY ]) +# +# Adds the translations for a branding component to the build: +# - the component's lang/ directory is scanned for .ts files +# - the component's translations are installed into the component branding dir +# +# Translation files must be called calamares-_.ts . Optionally +# the lang/ dir is found in the given instead of the current source +# directory. +function( calamares_add_branding_translations ) + set( _CABT_SUBDIRECTORY "." ) + cmake_parse_arguments( _CABT "" "NAME;SUBDIRECTORY" "" ${ARGN} ) + if ( NOT _CABT_NAME ) + message( FATAL_ERROR "Branding component must have a NAME" ) + endif() - message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" ) - if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" ) - message( " ${Green}TYPE:${ColorReset} branding component" ) -# message( " ${Green}FILES:${ColorReset} ${BRANDING_COMPONENT_FILES}" ) - message( " ${Green}BRANDING_COMPONENT_DESTINATION:${ColorReset} ${BRANDING_COMPONENT_DESTINATION}" ) - message( "" ) + set( NAME ${_CABT_NAME} ) + set( SUBDIRECTORY ${_CABT_SUBDIRECTORY} ) + + set( BRANDING_DIR share/calamares/branding ) + set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} ) + + file( GLOB BRANDING_TRANSLATION_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${SUBDIRECTORY}/lang/calamares-${NAME}_*.ts" ) + if ( BRANDING_TRANSLATION_FILES ) + qt5_add_translation( QM_FILES ${BRANDING_TRANSLATION_FILES} ) + add_custom_target( branding-translation-${NAME} ALL DEPENDS ${QM_FILES} ) + install( FILES ${QM_FILES} DESTINATION ${BRANDING_COMPONENT_DESTINATION}/lang/ ) + list( LENGTH BRANDING_TRANSLATION_FILES _branding_count ) + message( " ${Green}BRANDING_TRANSLATIONS:${ColorReset} ${_branding_count} language(s)" ) + endif() +endfunction() + +# Usage calamares_add_branding_subdirectory( ) +# +# Adds a branding component from a subdirectory: +# - if there is a CMakeLists.txt, use that +# - otherwise assume a "standard" setup with top-level files and a lang/ dir for translations +# +function( calamares_add_branding_subdirectory SUBDIRECTORY ) + if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" ) + add_subdirectory( ${SUBDIRECTORY} ) + elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" ) + calamares_add_branding( NAME ${SUBDIRECTORY} SUBDIRECTORY ${SUBDIRECTORY} ) + if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" ) + calamares_add_branding_translations( NAME ${SUBDIRECTORY} SUBDIRECTORY ${SUBDIRECTORY} ) endif() else() message( "-- ${BoldYellow}Warning:${ColorReset} tried to add branding component subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no branding.desc." ) - message( "" ) endif() + message( "" ) endfunction() From 97eff2838373ae89a9cd98d7d7d85578cdcd6e3d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 6 Mar 2018 05:18:30 -0500 Subject: [PATCH 38/55] QML: Remove binding for quit key in presentation --- src/qml/calamares/slideshow/Presentation.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qml/calamares/slideshow/Presentation.qml b/src/qml/calamares/slideshow/Presentation.qml index da5048035..4843e15a6 100644 --- a/src/qml/calamares/slideshow/Presentation.qml +++ b/src/qml/calamares/slideshow/Presentation.qml @@ -7,6 +7,7 @@ * - drop navigation through entering a slide number * (this and the 'c' key make sense in a *presentation* * slideshow, not in a passive slideshow like Calamares) + * - remove quit key * * SPDX-License-Identifier: LGPL-2.1 * License-Filename: LICENSES/LGPLv2.1-Presentation @@ -62,7 +63,7 @@ Item { property variant slides: [] property int currentSlide: 0 - + property bool loopSlides: true property bool showNotes: false; @@ -146,7 +147,6 @@ Item { // standard shortcuts Shortcut { sequence: StandardKey.MoveToNextPage; onActivated: goToNextSlide() } Shortcut { sequence: StandardKey.MoveToPreviousPage; onActivated: goToPreviousSlide() } - Shortcut { sequence: StandardKey.Quit; onActivated: Qt.quit() } MouseArea { id: mouseArea From c1bb5e708b0e007931b35e0f82736f1977777426 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 08:55:08 -0500 Subject: [PATCH 39/55] QML: apply translation to the slide counter --- src/qml/calamares/slideshow/SlideCounter.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qml/calamares/slideshow/SlideCounter.qml b/src/qml/calamares/slideshow/SlideCounter.qml index 7d8482b8e..e59476f5c 100644 --- a/src/qml/calamares/slideshow/SlideCounter.qml +++ b/src/qml/calamares/slideshow/SlideCounter.qml @@ -32,6 +32,7 @@ Rectangle { Text { id: slideCounterText anchors.centerIn: parent - text: ( parent.parent.currentSlide + 1 ) + " / " + parent.parent.slides.length + //: slide counter, %1 of %2 (numeric) + text: qsTr("%L1 / %L2").arg(parent.parent.currentSlide + 1).arg(parent.parent.slides.length) } } From f8bc195fb4807059211a05d047be033517d52cd4 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 08:14:04 -0500 Subject: [PATCH 40/55] [libcalamaresui] Improve warning when branding has no translation --- src/libcalamaresui/Branding.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index 5677f212e..584d85c0b 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -184,7 +184,7 @@ Branding::Branding( const QString& brandingFilePath, QDir translationsDir( componentDir.filePath( "lang" ) ); if ( !translationsDir.exists() ) - cWarning() << "the selected branding component does not ship translations."; + cWarning() << "the branding component" << componentDir.absolutePath() << "does not ship translations."; m_translationsPathPrefix = translationsDir.absolutePath(); m_translationsPathPrefix.append( QString( "%1calamares-%2" ) .arg( QDir::separator() ) From 75df6a4f88d7266ac1ce6776203de404a0c3dd2d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 08:35:24 -0500 Subject: [PATCH 41/55] Branding: add example translations to fancy/ --- src/branding/fancy/lang/calamares-fancy_en.ts | 42 +++++++++++++++++++ src/branding/fancy/lang/calamares-fancy_nl.ts | 42 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/branding/fancy/lang/calamares-fancy_en.ts create mode 100644 src/branding/fancy/lang/calamares-fancy_nl.ts diff --git a/src/branding/fancy/lang/calamares-fancy_en.ts b/src/branding/fancy/lang/calamares-fancy_en.ts new file mode 100644 index 000000000..945bfb532 --- /dev/null +++ b/src/branding/fancy/lang/calamares-fancy_en.ts @@ -0,0 +1,42 @@ + + + + + show + + + + This is a customizable QML slideshow. + + + + + + Welcome to Fancy GNU/Linux. + + + + + + This is example branding for your GNU/Linux distribution. Long texts in the slideshow are translated and word-wrapped appropriately. Calamares is a distribution-independent installer framework. + + + + + + This is a third Slide element. + + + + + This is a fourth Slide element. + + + + + + Slide number five + + + + diff --git a/src/branding/fancy/lang/calamares-fancy_nl.ts b/src/branding/fancy/lang/calamares-fancy_nl.ts new file mode 100644 index 000000000..088f9c0f8 --- /dev/null +++ b/src/branding/fancy/lang/calamares-fancy_nl.ts @@ -0,0 +1,42 @@ + + + + + show + + + + This is a customizable QML slideshow. + Dit is een zelf-aan-te-passen QML presentatie. + + + + + Welcome to Fancy GNU/Linux. + Welkom bij Fancy GNU/Linux. + + + + + This is example branding for your GNU/Linux distribution. Long texts in the slideshow are translated and word-wrapped appropriately. Calamares is a distribution-independent installer framework. + Dit is voorbeeld merk-materiaal voor uw GNU/Linux distributie. Lange teksten in de presentatie kunnen automatisch worden ge-layout. Calamares is een distributie-onafhankelijke installatie raamwerk. + + + + + This is a third Slide element. + Dit is de derde slide. + + + + This is a fourth Slide element. + + + + + + Slide number five + Slide nummer vijf + + + From e4cca9b83046c75297c6ae678292f6b7b221443c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 13:10:01 -0500 Subject: [PATCH 42/55] Branding: document how to translate branding --- src/branding/README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/branding/README.md b/src/branding/README.md index 5514e77df..acf245b11 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -7,11 +7,14 @@ file, containing brand-specific strings in a key-value structure, plus brand-specific images or QML. Such a subdirectory, when placed here, is automatically picked up by CMake and made available to Calamares. + +## Translations + QML files in a branding component can be translated. Translations should be placed in a subdirectory `lang/` of the branding component directory. Qt translation files are supported (`.ts` sources which get compiled into `.qm`). Inside the `lang` subdirectory all translation files must be named -according to the scheme `calamares-_.qm`. +according to the scheme `calamares-_.ts`. Text in your `show.qml` (or whatever *slideshow* is set to in the descriptor file) should be enclosed in this form for translations @@ -30,14 +33,11 @@ There are two examples of branding content: slides of text and a single image. No translations are provided. - `fancy/` uses translations and offers navigation arrows. These are provided by the standard Calamares QML classes. - - `samegame/` is a similarly simple branding setup for Generic Linux, - but instead of a slideshow, it lets the user play Same Game (clicking - colored balls) during the installation. The game is taken from the - QML examples provided by the Qt Company. Since the slideshow can be **any** QML, it is limited only by your designers imagination and your QML experience. For straightforward presentations, -see the documentation below. +see the documentation below. There are more examples in the *calamares-branding* +repository. ## Presentation @@ -63,7 +63,7 @@ After the *id*, set properties of the presentation as a whole. These include: true) enable different ways to navigate the slideshow. - *titleColor*, *textColor* change the look of the presentation. - *fontFamily*, *codeFontFamily* change the look of text in the presentation. - + After setting properties, you can add elements to the presentation. Generally, you will add a few presentation-level elements first, then slides. @@ -73,13 +73,13 @@ then slides. kinds of navigation when visible navigation is used. - To indicate where the user is, add an element of class *SlideCounter*. This indicates in "n / total" form where the user is in the slideshow. - - To automatically advance the presentation (for a fully passive slideshow), + - To automatically advance the presentation (for a fully passive slideshow), add a timer that calls the `goToNextSlide()` function of the presentation. - See the `default/` example -- remember to start the timer when the + See the `default/` example -- remember to start the timer when the presentation is completely loaded. After setting the presentation elements, add one or more Slide elements. -The presentation framework will make a slideshow out of the Slide +The presentation framework will make a slideshow out of the Slide elements, displaying only one at a time. Each slide is an element in itself, so you can put whatever visual elements you like in the slide. They have standard properties for a boring "static text" slideshow, though: @@ -88,7 +88,7 @@ standard properties for a boring "static text" slideshow, though: - *writeInText* is displayed by "writing it in" to the slide, one letter at a time. - *content* is a list of things which are displayed as a bulleted list. - + The presentation classes can be used to produce a fairly dry slideshow for the installation process; it is recommended to experiment with the visual effects and classes available in QtQuick. From fdccff83c3c2a54d69a6a9bc994e8b3d4664ec6c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 8 Mar 2018 08:59:49 -0500 Subject: [PATCH 43/55] i18n: when extracting strings, skip branding --- ci/txpush.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ci/txpush.sh b/ci/txpush.sh index fe6d7170f..cf1c3b883 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -33,7 +33,10 @@ fi # sources, then push to Transifex export QT_SELECT=5 -lupdate src/ -ts -no-obsolete lang/calamares_en.ts +# Don't pull branding translations in, +# those are done separately. +_srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml" +lupdate $_srcdirs -ts -no-obsolete lang/calamares_en.ts tx push --source --no-interactive -r calamares.calamares-master tx push --source --no-interactive -r calamares.fdo From 36106348830a18e64d849d9826c6e6aade79c8ec Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 9 Mar 2018 08:39:05 -0500 Subject: [PATCH 44/55] CMake: Calamares uses linguist-tools for translation The convenience include file CalamaresUse should DTRT and set up all the bits needed to write Calamares branding components and modules. So add the bits for i18n. --- CalamaresUse.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CalamaresUse.cmake.in b/CalamaresUse.cmake.in index 474704ec1..00f3c968d 100644 --- a/CalamaresUse.cmake.in +++ b/CalamaresUse.cmake.in @@ -20,7 +20,7 @@ if( NOT CALAMARES_CMAKE_DIR ) endif() set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CALAMARES_CMAKE_DIR} ) -find_package( Qt5 @QT_VERSION@ CONFIG REQUIRED Core Widgets ) +find_package( Qt5 @QT_VERSION@ CONFIG REQUIRED Core Widgets LinguistTools ) include( CalamaresAddLibrary ) include( CalamaresAddModuleSubdirectory ) From 25b9663a40b50d65f8a40667d70c37ef50c54864 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 9 Mar 2018 08:44:20 -0500 Subject: [PATCH 45/55] Branding: remove fancy/ and samegame/ examples The examples of branding have moved to the calamares-branding repo. --- src/branding/fancy/branding.desc | 32 ---- src/branding/fancy/go-next.svgz | Bin 5473 -> 0 bytes src/branding/fancy/go-previous.svgz | Bin 5690 -> 0 bytes src/branding/fancy/lang/calamares-fancy_en.ts | 42 ----- src/branding/fancy/lang/calamares-fancy_nl.ts | 42 ----- src/branding/fancy/languages.png | Bin 86002 -> 0 bytes src/branding/fancy/show.qml | 112 ----------- src/branding/fancy/squid.png | Bin 8313 -> 0 bytes src/branding/fancy/squid2.png | Bin 8403 -> 0 bytes src/branding/fancy/squid3.png | Bin 8300 -> 0 bytes src/branding/fancy/squid4.png | Bin 8270 -> 0 bytes src/branding/samegame/Block.qml | 73 -------- src/branding/samegame/Button.qml | 91 --------- src/branding/samegame/Dialog.qml | 81 -------- src/branding/samegame/background.jpg | Bin 36473 -> 0 bytes src/branding/samegame/blueStar.png | Bin 149 -> 0 bytes src/branding/samegame/blueStone.png | Bin 3054 -> 0 bytes src/branding/samegame/branding.desc | 76 -------- src/branding/samegame/greenStar.png | Bin 149 -> 0 bytes src/branding/samegame/greenStone.png | Bin 2932 -> 0 bytes src/branding/samegame/languages.png | Bin 86002 -> 0 bytes src/branding/samegame/redStar.png | Bin 148 -> 0 bytes src/branding/samegame/redStone.png | Bin 2902 -> 0 bytes src/branding/samegame/samegame.js | 174 ------------------ src/branding/samegame/samegame.qml | 113 ------------ src/branding/samegame/squidball.png | Bin 5800 -> 0 bytes src/branding/samegame/star.png | Bin 262 -> 0 bytes src/branding/samegame/yellowStone.png | Bin 3056 -> 0 bytes 28 files changed, 836 deletions(-) delete mode 100644 src/branding/fancy/branding.desc delete mode 100644 src/branding/fancy/go-next.svgz delete mode 100644 src/branding/fancy/go-previous.svgz delete mode 100644 src/branding/fancy/lang/calamares-fancy_en.ts delete mode 100644 src/branding/fancy/lang/calamares-fancy_nl.ts delete mode 100644 src/branding/fancy/languages.png delete mode 100644 src/branding/fancy/show.qml delete mode 100644 src/branding/fancy/squid.png delete mode 100644 src/branding/fancy/squid2.png delete mode 100644 src/branding/fancy/squid3.png delete mode 100644 src/branding/fancy/squid4.png delete mode 100644 src/branding/samegame/Block.qml delete mode 100644 src/branding/samegame/Button.qml delete mode 100644 src/branding/samegame/Dialog.qml delete mode 100644 src/branding/samegame/background.jpg delete mode 100644 src/branding/samegame/blueStar.png delete mode 100644 src/branding/samegame/blueStone.png delete mode 100644 src/branding/samegame/branding.desc delete mode 100644 src/branding/samegame/greenStar.png delete mode 100644 src/branding/samegame/greenStone.png delete mode 100644 src/branding/samegame/languages.png delete mode 100644 src/branding/samegame/redStar.png delete mode 100644 src/branding/samegame/redStone.png delete mode 100644 src/branding/samegame/samegame.js delete mode 100644 src/branding/samegame/samegame.qml delete mode 100644 src/branding/samegame/squidball.png delete mode 100644 src/branding/samegame/star.png delete mode 100644 src/branding/samegame/yellowStone.png diff --git a/src/branding/fancy/branding.desc b/src/branding/fancy/branding.desc deleted file mode 100644 index 8aae1b0b7..000000000 --- a/src/branding/fancy/branding.desc +++ /dev/null @@ -1,32 +0,0 @@ ---- -componentName: fancy - -welcomeStyleCalamares: false - -strings: - productName: Fancy GNU/Linux - shortProductName: Fancy - version: 2018.3 LTS - shortVersion: 2018.3 - versionedName: Fancy GNU/Linux 2018.3 LTS "Terrible Tubas" - shortVersionedName: Fancy 2018.3 - bootloaderEntryName: Fancy - productUrl: https://calamares.io/ - supportUrl: https://github.com/calamares/calamares/issues - knownIssuesUrl: https://calamares.io/about/ - releaseNotesUrl: https://calamares.io/about/ - -welcomeExpandingLogo: true - -images: - productLogo: "squid.png" - productIcon: "squid.png" - productWelcome: "languages.png" - -slideshow: "show.qml" - -style: - sidebarBackground: "#392F34" - sidebarText: "#eFFFFF" - sidebarTextSelect: "#392F34" - sidebarTextHighlight: "#c35400" diff --git a/src/branding/fancy/go-next.svgz b/src/branding/fancy/go-next.svgz deleted file mode 100644 index c6dc7d0f4cb9def6cce592822ea664353275938d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5473 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 Xw6srdKjg2a<&XadOC(EQW`h6#G`fNk diff --git a/src/branding/fancy/go-previous.svgz b/src/branding/fancy/go-previous.svgz deleted file mode 100644 index 971b1d98975babba9d6a4ec572fd81c4021cdb56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5690 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 - - - - show - - - - This is a customizable QML slideshow. - - - - - - Welcome to Fancy GNU/Linux. - - - - - - This is example branding for your GNU/Linux distribution. Long texts in the slideshow are translated and word-wrapped appropriately. Calamares is a distribution-independent installer framework. - - - - - - This is a third Slide element. - - - - - This is a fourth Slide element. - - - - - - Slide number five - - - - diff --git a/src/branding/fancy/lang/calamares-fancy_nl.ts b/src/branding/fancy/lang/calamares-fancy_nl.ts deleted file mode 100644 index 088f9c0f8..000000000 --- a/src/branding/fancy/lang/calamares-fancy_nl.ts +++ /dev/null @@ -1,42 +0,0 @@ - - - - - show - - - - This is a customizable QML slideshow. - Dit is een zelf-aan-te-passen QML presentatie. - - - - - Welcome to Fancy GNU/Linux. - Welkom bij Fancy GNU/Linux. - - - - - This is example branding for your GNU/Linux distribution. Long texts in the slideshow are translated and word-wrapped appropriately. Calamares is a distribution-independent installer framework. - Dit is voorbeeld merk-materiaal voor uw GNU/Linux distributie. Lange teksten in de presentatie kunnen automatisch worden ge-layout. Calamares is een distributie-onafhankelijke installatie raamwerk. - - - - - This is a third Slide element. - Dit is de derde slide. - - - - This is a fourth Slide element. - - - - - - Slide number five - Slide nummer vijf - - - diff --git a/src/branding/fancy/languages.png b/src/branding/fancy/languages.png deleted file mode 100644 index 53316526bc8039e4e05d2860ae5767ccbde9eb4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86002 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�==0;j%F=Kq0P>U~X0$-7~AA^Z= z+a*N*`&^{e~`k2;E=>+k2~oi>DYz9mXO^Wm*!9>B5#JZ*F0Ggz4>VU z3x6Dv%XT!XzkC(DndqFCglqX2(#qabHLRxC0Z{^7b8XtU~yj}3Mv3h~Ed*LwN z=@H3R6U zCeF6W&Eu77Vrffut>>^ccJ3|FRS9F_v z8Jd30bX6t8G-%&OC8>0qyYW*t6Ti|;w$J#ULfu^5t)?m$VvOboj)=m=eNV3I6KVl6 zm0j{Z3&i?B~#oW3Jxydgt5B{n#ntUHU zQMexpP1{P{HeHHLq7JSH{`$$K_|)1q)@u@Pb^Wn?nWw&-hc{tN5eEs@^2h41%}>LD zB927avo|Ftof>__pWiwJqI~$>P=z&Wx~n3uTMoj{c3O;LMQGVx-MEyBAG>=+%vw1p z{)(P@7}ae*nWbCR{Ya6$mi>enGQ`Aj#G%sfJ%!x;wUCd|j6kx>y6?vf^R2GF+m-=p zY!2lC3y1VHcyVTrA&lJ;{Jn%j>X#@e%Knod1!wXZa=$bcNwW+A*Z_+!(T;qzw&%+B zW4>4Y>J*dHCR^)a+CX|U+?!h_rxaJsWz!Q;7`6VZhnU^c=2a-4#X|(Mv)2R<$NqfY z_j#ty)_XZm%SDewed+vGy6osxf(p4$yq#YPpg&f-d2m42xl_@Hj)5GQIkTb4t3RpF=;3o4fG!aF#i>$!XcBfyI^STTNaaLRz^cO<+|{(D%q_&+}b z)BFh>CK5+m>9wyg2okFF4O7IvG!VMG%mFLr;>`MO`ltjG#Uh1qUM)rwL z%0BG+l%)YRZp~V+<7U_m@m{T8(OKy%=%t&rHFRpO`nu12`^>kxqS2fk69;KkRvR!R zr0=nr>I(DP?z)RfpCOwgRk=y^4|_xyxo_IwfzFD@^#0Rm?sZ02v6E;1u@_T(SwRcw zh+OH3oA1j%HdGXp7U!EZ+fuLeY|kfMeF??7-O&9EWkLg!cY#i&ur6<^AH`p^?l0dg z34$`HcIOXCU~_D3M@U6vOsM>YhGOgI9TpJFQsl+8mTCB*l`tMV7racN=uyRg<%Doq zUdy=mwM{Sy274%ad;Jk2Z{>75nQ4+-`fM4#IQ~3>XQ-JS1%Dk7p1-}Msg(%P3G)>x z_m1FlJ~}B`~&?|LA=554tZAEZGUcLs*YV zG1w5X4QW&+6N!(ed~)Sg2xABDfw46`d}@gg`(PX2tF3jcx#B#PbAPeOmUEsH+U|m0 zZvnatWFZVmT^wkIqYL5eKfEVtqaR zqegF21Br`!$}VXXurZUEaa&><3n+-fU;=wd3v-C`Ii()qwOx#mz26BkvEnR=cfYB= zB$Qx|&R^s^=tN=EtZdkcGjcT+9M&1>z}QyxODG3#IT`Kzxv%m+r%o-@xF$%xU5bsH}?8oO^^tJ+MzG|p?rH2aZB z_>b)o?SBu~$2 zT_($Xk=d32A3v6_mxZ5Gnq{c0s3ZytY*()bUk|4vELg%oH)`kHd2u*Y zPtCjA{7GF7K+pJmu?%CA+VbeSiod~eq6LG=`p(c><;bk4PDW3-pb%?CR>nY0Y;0%) z$^v?|Y3FsPABBfFDCC8-ApkItak1R>%WP|hz=_teD z3e^goTJ-<$Zbamkaz1osl~HA+s%4>R3y$V+iX~DVtFto3v4MeSr&ZvS5h=x z3;+v0+;W2^n~Rb-vcazB6x!3oJC}tBwR^9B^P!R3YFmXF88BU>fBzE&(JeWYSp}1bLyEuPriW}m!(!j~oZ+c<( zTs+`po`M@DZczsDI|>Fm0^TsW^UMz4i<^n_`%H~v`*$*wY4xFMLL0+^xwf38A-*s5 z*sYWe`3H2zquKThKK=^raGuC>x$~1Bp?LNofbTH6e#FaqliG*R(@G6_NpQ#GHC{wY<4%gKsXI4U`n z)3DZ*;h!!YMDuI9%HT8m_iapI8hT3()lmN2v~#@lGuX3ns+Vk#(ffDy%kRdOp>H*^ z4NC;gflF&uUT8xR3Veua7-N)`1=XZ^LP-9~3Lrtpbap(_{~C_s|NZQ(aAmI5!rQfL zcssH1VgD{fnjw)`i5(U%M2{4fdBA8^hLl_lf&1Y20RkX8TB{-5+8atq||H4Tm({qok#66%bg+59FZ7W{;@kzdI|h$2_5SyMcdOA?qZ4hEuH9tR_* zk5!d9Ld)ZmSUu5gB4j-5OE&{0>am>NMqGoNMqP!B5cXjDcaV@hl`+)TC^II$&Td+h zv(xPSczfcVY}#Iix}x)v;CW0Bd_#mST^c)5;E~PZ3&Tu2x)GjQiLoc5|ofub9X%oZrqM2AP_mJgW_X zBY9wUBO3a2ALDlps)oS}20&9n2|qrfIr4rvMsDl~fQlv>uuWdGYrG=Ve~#c zIg&{b1At>>zCwUpcc0x1(*0cC`toKI$(H_F8xedWyn-{!J`7by`=q_-#bYMh>(Mk` z`qBVhhC5=#9#lcK$5zwt)K5#1>)&6Z>)Fl)VV6{&h)0ZM$};cwpm@E#265uXzNEj~ z@jD;rLU@{Q9RJwcY`yrZ9j)-1}997=~}R#2nP#-PU+ zMh%e%f`{P%AV7NHD~2MMq**j}2w2o9`Wg~p)hP`NtNEawNPt1rV?Fo<=Y+(&^R^w0 zw!IG)xhu9ru+(QmGDsMcyLXRx?V^C6JO(|*p*1E3B^nvC9{@}+Rk8Hui2Sflv(#%W1B5bL^kAu80Gfp4y z-BSGZp7vUG1ASpE4C0@9lq_08~8WgYCOXwirb z#uHJT-vn2$&$8nclxdvGEuv4LfUlJVnihLplA-o~S3K{n*7_R157MP&PrwGId?F*wJsvegUj_V#lHawO12a!J94!~vw5G99-=9^q@sI|6r4t$C1sNS$la#zR_F3l@G&OA!>>u3h`of7l-<|Wn zo@6X^L?pq11s#1TsVQa8PoMgfU%N4*L54VzM^<1*D-|jG=TT=J1gS<-cend1-&)I> zE^Kg#6E_C?3%{d74YuF%Y(s@cxD;BUbEuUJ`;XcJf=}MB5rU6jA}P8a_mVQCC^o}(uWpu zGoL6#BZL+%BZwR>NmnE&2+Dj6$`QA1D$)_w=oez}F!Esn2EfGW<89XSo4NYEK!N0} z0Jj8Ht_ULWxf#LOw}sE2`XRa}Ofey!g|wHL`D`M%G_+{&t6g$YK%ZhC z3e=(O?9)26kA{G9NY2J%w*lkIa3d@b;_W1N*N@W4s005id;GQ4rf-1$@+a<4l0WK_7-z4u2HT0v2Q;RPUTMy7 zz!ym1&%+Qc6>GizO#8t}XJ^fLuF$JkTeHi#$a=G!eX}LGmnO&4Nes|ATPd)b9`xzt z)&ZyG!E&VFZ55}v0uV@qp1);q9_)YHXMHt%0^6W6p8M!~`rGZe1V6I;ml(_6Sw(5I z?+D4(O^u@%f)-yQAH{eB@4;CQPpT=c8Rdfdcb9fj!Kgz$2gWqbt(%?IQo-5Tb6Yf3 z;Y4Eq&_}FKi;|kyx{tiONxO<6GB)HJ|J$EdJnXvenHtlF#fGuG7`AAqu==kqf&_!k z{?pl+y`HmGVw~Q2xe@=j!_##1l-w8DW>kk@CE2A=QMT)L1n`tq-fKCC)K2to&mJDz zFVSYyk9BcB_TiB)DucQH^le-^D~e4?U9&5j8wc8n>B)1Eeafl>0i!!N#H*siu!2#( z29&c_eS*fPPHmqJUHR^)O)wTv@=rJ#xy?MZ|BXX{LfDeEJPb4JExdbOR@q*d7)xt!4 zdWD9vpK56dLq-wlUT{m@z3$o(tCMpa63O<-fbq|WNf?sUjxg2SpVseMzC%u|DzuMdoso!!z! zIPX$qMaN5^^_enu*{AoJhQ9^f1>p?FpPZRJ8jMWGS89l3vl6G>>Kl7hn@Iq;C&3s1HDT^$V+fzU!N+`6?>&5?q0m+1=V2B$vCZ|ImG$CV)3 zzvH~I)TVLuz#F24a4}K&DGQ_IA!V^xG=!~3NvJ8}Gfj|t;S~mQ^d$o zuYq+o79&3w5m3nKQ`9DNRC%3*mQ{IB3O!<>UKD2lr%r1VqA|m z;Xjb)#_INRpp~LXM@uFkj`wDG7pX64rtBGUo6^mD&6XSecYQ=G-S!ocal11VM@a^a zE;|o8YwSF+VezMf%1sSTNl9cgeJCPs3%A8>XE{URoOkQ^u6fGYstcVK|Cz}ZjHB&( zO~o(?H`!_3$A@?glGJR3NdDzruY2$$ZR}z3sx0Z=OWBzx!Nit2b8&MKnS-upS*@=4 z2VeurdA@semp+7OV9w&s&AG_0fIKeZUc>#Q3^QIpU5j;lTc>W zmc1{|7E{NmxV4H_Z}AQ963IoLweour!|4VZuL~x8^Yau-vq!|KXy`I5Y;4jUY|4-S zWb%rkka^sy^k%DO|0I!sP|^!`c5E)3TsqGO0AEmkGfTA`{y2_3YrC}s$IjVi8t6aG z+1h*)8rtyf&A|;#SmRYz>#^UsA|qU{&!i&~kCboH(5T{6p~3DoKmVYd@qE*O0#P`h zMJOiTO3UAjI;H|y7^PNob;|jy|H34*vYplpzunDN$5X`xkP>Op9d_x|X)3beNgow~ zx)n*vP+1QYTjn*3Tz_`4brwu%_+2CRudc4b5%h_WipITh!PhMFMC~QdBhycfjTdwa zzH>c3-O?YE=ial=sdu2n)A5zD=pD4|_(#jg6D59i8F$6AbTOJ8?yXBCy^k`pUfkXc z)p|aw(dx0!bSR;L+O!c9MVHSJJa+BrY)`>U4?cMtOa%M10GR_3okE^r+xEZcB$y^^#^tm-4ij z8t?w>UU(*->XKq~LcywDR+wie=Or5roxW~3UA)W@+YzrS=ZU04g5u)h_J2?R;M_lb z@-)Jxepgu55LOmUnLsWMpd0wt85)II7Y)Xh;n$-^JmJ4c9o{jPt6F$2q$dTAkBeC^ z;V@77q}~4R*y8?pzEe6=D_#~scQhT2dT@&~T!r2GJ$7tQwPWE_#ygn>H{nMa6HUbH z(hRYcn~(cz?A(;{<3PHt`OBQBqrKGE{2W`cwk7@?jBa@cmxE{GK-`nd=lwf)GT3TJ z5md{S46@jzsc|Qu6SOT6`fsNz(^oNfpKK{0-U_AcqzRf`{A36t>+U~E^a_bOO(dy+ zQjl1B$0gL)W$z)Ub6-1E#$`B=|K zcPydA%XQEq90LD*#?RX}qq2zx%fC3LM=O07h`ie-?}R+c@ERhySpMdwwOUi&o@COA$&P1B7op z#d#jSyg1j%IQ}ZPgNVSzNwpdlhdQDTdtp%UQOm;oX6E9Ns1y?-9XF_#uJvlSZcINX zhJqdzqHX0%t<`hitQ4VFk>gVmN*zcME(N6hgXip^Ud9wuU;``9Lb`x+vXU=P9m*6e zNoBGxHWI*yMsri@r5Bz3`yXO&hWPhM)Ys?ce%I%2>`d9`&KWYFgZ)Q582Q-vP9a9F zGma&+cdq%I_ZiIeDfzMCT+m2UBNIWQEXGp34*QZEsoUN_1Sf(lrs0@6{I3Sn0xLlp z9I@l6uNXYJL&D9j7%7tY!>tHyFV<kh^k<_z$CP-5<+{# zAAUpZ@MT(%;v$x9o~d5{wjP3cAz&&im?#l6Pl>vO&}X9Hwk^Fb(}U%Si5Z{H$6_8^r6 zW|c6`_18l-#}s`!&xO-$hC#u(2ba-a{zU_TMM!xS1w>KugbBqolD6u;TfF@F*mOv{ z2Wl(4In4E)CCzy#K>Q$vsN==eRk0xQVqKyk=nX$TIX$A^8}VeojR1eqW3g?nCmqP9w{6hvLvs%IuA-}%uV z0#*!PnxsFMbPmGZ-riDl6JW|+*>fm|d+T@{{7Y{bt{z(QNnAuqgauIYgyr>|LI-D4 zoEh!dbTsBI0ZF4BX6!JYH!}g=KqCb@NVDcpG0;?Mu4og~tGViKtFEAe9mGDXW)Ju(}Sgg(Y~m z-&7;F=u>&d65qM^_tDf6Q2A4db~>n!H94cA~^DX1uDLZ;_?p>Fb6m*skTF7pM+9TcBTOuL;u z+h3G-bZ1UxVIE4w!BYnUZvvuM+$ZncJ{vt{4exW!c--!19Pi!90baixZ+**TX>E%4jsa>^XvOh<@eip3KC>LrP{_CyU zKNFAR*B(lbTi?)dUdOVf^P?1u=)tO6S`U+&GjwP)LJiv^Xd1J*o*_p5D9U{tkL)~S zabQ#|LTXn``uojuYCxnM9B)}N`eUmpCR4Fj?HkqJsQfLCB-ohkE0=6ER4x3j9ZeR0 zX5YrbUDDtDk)EOKk80zh(i@5&0D*@20il2*o9@sun6(GqUtMigZ{wbM-gw zPYHJOh7)V&Rng%kE^`GcPe1(9e}0~>5lRhFG@f)N&_w>iYmy1#bXa~_N8y~8-74`1 zdRr`SaR6obF99>ec3ak|X%4-1DTO!(&{uiZ9OnB@oF3ivF0XOHUdXOIH`(dwY5dRL z+j-0$iKgKadx?rJT?6Z`+pOe#r@OtEyX*aDV7%PLG8>ejCARrdmtU3Rrn_mItV!$u z1fM+PvE5J_ib4%B*gf~fC=u>~ ziMn@3yAbbj9fzn74fyyXDJ7w22+Fnh7fz!-;T{hjsrP&SS0H#(fo);$-<#Q6l)>d` zJ3$-78j|Bnwt4_exY|k+2wR(-XT(QK=3s~SZBMWahw>dGBK^eA)S9h&^2;3Fm+k!^ zbJwq_9s>mx09pq>ue+oSb8Y*2AOuu*TLx6Z zzG?6lp0p3iE9Me<$`5GrkLCwe^_R)DOU<+Ybz5q{X2$jZn2Mrd7H7Ag5`C( z#fL<5PpwT|)_7O)0g21O9!_jHEEcuuCv2?eY({n-7qnm%gSNkrJnrQ=W!6*Ui7zO; z7qCa}CaJ7d{M(*TNkT*vM5Sb%-HJ0m#tFWM0<4$cI|vyv(0+qCqN$a}O+)rmJI~vf z{%sPOO;7d2NSttj6~j9wyoG0@iVX)G;=%#EZDk6qI^9d8!Fus+U5>B0az`c9r(hr8 zwf99v<|XOjTjz>}dK74{5YuCRj&0O7wJP%4W@b`&dTfinPr!n_o#ng@aMw`Orv5IW zE&HGA>3AiJEP{5kU4sS@YoZ_pPkbW+if*?vAWdKrbI0Bg{v!#mu^m${0|=}%zf$KA`@ zs5z)LM1vUTo?Asz&D~;d3j(w=ba;KG(H#SCI$v3Ziea^z%m$_+{o-ytv+3BfrS6SL1YO;I%D>I2cjZdb= zPQTS$kf)_7G5_0>FBDGvtC9{Q23aSI(nYW@^(~@C2oliGid)ymOw_G3+1Tn9V&WQ7 z<$yIQIp|r4T%W0F))+bcCuHpObvCzAnkTGhSHV`eUkX{LwLi|8^$wFGKKnI6_cjqO z$)}TX~D389bM!zvp*|=Nzn4M~Q)Z zi}Ms8c+%eN3Rn`p4(oNd>*@7>{a04>8u=D65PKa0aYXXIv0bQkwW=*x=m=tvXAc%#~A z8tJ)bQOez7kRj{&)QDPYyfbYqDh5r5(|!49=gaD8d}aarUWa#T z@`GKhdBnB5uuzByC=LV~4%bwLzLB6uoub#p{JXoPWnVYp2AU(pABkcA{%sSeWfd23!;43mO`;pb7YS#a+$hX&3J@6Sp>UjbX(J zg!&nyG2YWB??EfQ*~ky=R`_ghS%p2A5d`$N(w2Wc*PXybOfx$t5w?1dJ?(5OQ8)OX z|1!y?)vB>QO)9kEH{Xid%r!IBz6*r_D8slN0((qiAp{c&^>pi;LB2^8@XZh1JFT%N zJdSmr^>Os~>0riHqH@^jIb;Ff=8=yiB7W^{`*Yp|Ys2zT@Okjn10yB-flS-vw4~xC zH#P?k-Mp>jksQun8Yy45wqkSp!_recTx64$uyvAZTsJwq7C5_;K;M#Y4?S<)Y(>1F zx{pu$-#XrB?`06ZF13A@pVDmO0t;)t;9&|XGJLS%vMwH2D~p1~9%`QZHHN^@LwO9w zqO;1h`v+4rJ-PUSGQ&6oFz~(HgmTVebBx6SHrAQ7tcqas{&OPyDCnv;`4K?~qJS$9 zylli|WNpSyJIw)K1t}p6oap0u2Uf(a`!saaQD_NtN+II2K$$lxpGwldq5HJJ0jn8K z6-`y4@(l5tcGvy4yT1c_Mxv&^rKz5cptlwHNHH}6zWNX;s4xL@0Fd8jwhrAP3F=zb z4K%-82xWrNnz2ecKLdM*y>PL?0*NM>3qRgduGt&oP~W5a3jEr_p2 zDwn7&sk?8at#?W!5pR|zB^sYgw6>3#3H;Ua*Xr&yQ5l@XDqyb;OR++0gouQR}EE?}cr?1ZfhO$cUAj}h4{P&Q` zeb%ok`yQe45t)5eVUae%Ep|E2<3wvm=Mn?#kP!%9#ew3Y&O_$zd z`co^y(ltiU2gHY;R-P;XtI04p6UEtYMc;_UH$1a^dOqoL&GQnKiOlniA^NsuFb=AsB=epYV zw9`Xo*-@7GM~!xkW$(yr9!=Wg9*`(IBl~K7A2U zIG>lRl~C8D;Hla>=svb~?#5!cM_$CV&g3R4EctC_be^=_lSrorzLyHKb;u2-6mmO{ zIde^s8NFAg{pZ_4E7J9ao!s3~^gc5Ioz-K6&;TWKi;D{YB>(M22I4-aOJ*wSr8uYe zDZ*q?$~6_;-k!EpJ%ML<0qEqcXkRU>gp43a*%$9p3*~rxz~BTr`|Te3_-y)peEUFX zJ|t|)zwWMQw^r7$s5qT@QdNXE09OzW)zFVmIT{2*8L7Y~tn!tbfM z(#5t^=xT)XD=lRaX6>Sp91E_biysfj?7R&ea9Nxd`~`?Pj3sR?BhWI#g)u`=~Ao3igA=Kve` z;VCL<{R^|x$c_#nUn1hZnhD-ElnNqn@OO<1&P-9WDz34V*fYn`jPp5z(TYayezBIt zShDB0GO@@;GZ}rMMbfvwn=LXMgfI^rR9G4DIS4_iaxd*~Y`{b2xIlpiF7G>T86Pwd ze7WCgWv&MSxVfA^wX|YE0xRcE38~=Kgw!qHD)s5I;P{+ly|r>^?fq2Y?Ip*^%k)x3 zw?9x$mFeWL7^R+dB7O$;xgB!cxGj{MvS?6{Dn?uN=4OEf#DbYN8C{NA->K8#VuX^N zFxsA~g*?D{wVv{MKJG7`@{L&~8is@Y7#itW+eUN++8z%7&=_jH=@7Sv)@8|WnKyc@nCRIa8e7GRCs(C;RC}%f45N0jvVw* z{~kZz)?hoVvd)Nxbk{$x$T`&Q`*-bn*G-b?`!2qYTpsS{E!A&lpUf!vCkw@{ynmua z>n_;a6!>v`14~tMXlJ!2wF^Y4PEsl-P6<1{cK`+gfW3b9Eyr3u4P6`8-(_J>b2 z1Xn8G({|7D^DG>j;?{Xe)hyxz$OJt#sCv5)+q+-1+|%XzOUL!APJ0qM5wAfe2Gg98 z$KwW_E@Lzr+ibM8jK`d%E^vK>v%Ibu6ZvjaSff&Hm;47TD;>Sq<_7qamfjgV-&>eE zk2kg~-h%dE`#;}4!YsStxPE{M*M!p*#(Kx;)_v*Ngt*-CCez2J{tD}`?2GhicK6?B zw!r#;gV$ocqdzzwEod|DoGLOBw?^L#!U4dwGV{68MvnUz03fePd>2$^;s1}Q+Z;62 zuPdD6gmYOL;2btEBjga=Z?TXG4RTH7=WQ|Il`W>kF1XHry> z9W%Gr*nzg#N8emZ@pjKpsoNHBB0DZ+cWMNohFRT&v(7n2<%G~>J~QpRQq?JsywI$L zsk;(u=9Yi)AUCoMb$iBIPJy< z_)d9ry@0>21-D-=y3jpK>Kot1F5J%szU{M6H|UPOkz-~q4<%KBVoLl7=!IeY!L)vs z;FfKA6lnlgV>aHWY9&v%PKPlp{cx#V&+y66i2MN1ay|aKt7CuZ>CUljCDZ;awsQ1V zpm)>G*IwADcd`2eMlK3lFlybd7u4_y+$wzHYW58G^pVAD70VdOtr#(L0@zh_NBpZZn4ELp<#$tvpofkS1lrzGzHq> z&e-)gG($D+v*b>XrV*WNXAJ6RwNL9b>Uz`E8Xz8sn8rU7_Ze5KHoCVHxy0cB%ykX; zq#9Y%jB=U7gC>X)`Y0^@ab2eP@+4}*fU9JL7aZUv4ZNMRanV9$Qzf_NqdzvU9&Bro z+62iI&48qiuiRV$HKD}VJP|%^+9K;?xw#ct(Sx&GaSn!-M^UGhqV=lY86yfD&HhpW zzr}_45OZtvo)8bcc-e~?<)>7Q09cQ`?fkDy007S6vGkkd*nkE%Tga3!NIC}N<34!E zYsqvSb(d1W*mB`l3T|D^HcG2o8SggkzOh&0f{?Q|RfoYBz(jPz!Lz<(Egr<;G6Ppe z&B%UQ?l76d+Nj&=thzqZ*)&_0C4hYx0szEhWI~S{bc|=Ya8)c^^_5N)HcH1mpB?1c z^W$a~am15GtcbUQuz%Pb}(Fc~Ya@z*^1=uY^EU%Z=Am19Xl z=+jC3dJfvE|9vXdi_?yM?&@Ta$zrqu>>;ty9NXq@=4Ow$6_gK!*wrhiT2|!N>J|{i zQo$QqYLcBXb0!l-qkjt_niPUNEAPqcbxf)a-D{Ra7^ zBae$5D?dVk8auEb?NvNg3l4L;`nrxl1S_F{v1)Yi?IZYIbOVBk-|h*2q5=8_>bM+l zI&(~32x5GGIa2l#Vx`(MDL*gWi|K$JREI(17_tf`_azMAOALHU{i;{Gr;LiqDLXjZ zBuQ+^eevX&ySA_zJPmyta31G=6co=YlerB)$m>Uh3Jx)9tY|OZiyH3ok*hf(NvUwi z6Yt%tpv;V1JTQN!w_XjN!iH3K8lh)g;Gr|{n$!d*U2birbS;O%3U6n3?W5&b=I2=v z&VJJVaBsdht>6Y;q8=dtT7nlM%xzm2)r zp61IPIT$S4$Ms>qj!VD!0FW<*FZ+@@vj~&}+>nqTldm8)f~eq0&srbfm$mk zI{5Z7elcp3==)QW6m8&iqLWZgHZqYz_tB6yD`IbxYr4_bnKP0#i}n^V1%78;L_u4` zE^j1I5SFn485Jdz#K7iYt)t+(v*)w@{NFN=0u z{*B`(b-r1~hUzU^n4^P*)O3D-7y@@0aT_3-uw=r_TxX9}Z|f*%%z4?65~J_!*gN<^ z(`n*eJ3r^V_3w^j9q;O@Pe1TRoiW;Yee#sSE3xfSNMFa*(W7*YZqMD0#xJ)35mw1% zmC2(OIbs)#u#rQoW79_ZtEN{P&%@!;Q=0?bZJqnsXGyZA)oF8wlCMU$!QRb)3_d(CM_dt3EX#!+-COMn6pxVjR~ z+5DZk=dv4iQjQ_u{)&O zG2EV-bjG42)!JLpdF}@x7|IJ8f02T&ys%2bWAqi*4~Q~9Z*6b0B zB_(pNmjxFIbZ^fbikHI?v1Cu<7w%)6KnGihjA0h8fv(Ipw!lQ_yIfc;wW3KuaKtSn zl6{*;jOKMW2c&qqy`n$dLM!S?3wYMvyKg}FW+r2t;nw8c{3&hWl+b#SocmkkTbW(x z5_`PL4=srD^6PptbM#dap68uP3LVqze*v2XWcmtI*D8a;YY<<3UQe5zAj&ZmlC%2? zcGu*I#Bgy(#hS5qGYd5HtVZ2@R3x1j5fQn|Wzp}RoL`yJtH|BUl@@ER*U z0|Qx#kZ>#$1OVcG$+P<-D5l0F@<5j5Fq4xE;aFNEm*C-!u7(jT=`kfOE1!JzX6Ian zaNsiv&yDv|Y+sJ0#X1WS%(5JIuE8W@D8iqnnb5=`F>(MHW$&n!O!@pwrcLpW0^YmIYqrbL&V+%R!RPw?hAu|l2j&AE;fvHe4Km*pjI#W0lI_-edP zBvo1v1UTX85dxsVpPaPyr~O>|TN2V?JWyR-odN)SRATCCu{?kf$yC!1txvUy6aiU0 zLj{_3?dwro>>n4?f9_9v7E-M`dz{DA{)xwU+gCnP>?sXQb~!BIq3NRYZr;uoxuOR$9U(+zUUZ8=zXxsqJ*+4X)O9BLfv zHng0vwO?~Jb~sp6Ec=JDPt0tuO&=Z`6TL(7RG87=%SJgKfS_12$I^{XhwXI6h=}?5 z+3}TgKfD+N2&x(v7j$p6j$9p4OVdpBgV(?ErMLrPRba8rVp_Jj>{8Xj9T%VTCAA!i zi-+94s|$&X^t;;YZ?KWQD@KHO-`|Na2_o=+r|s;1JAz{S0f6^9x)Cq^2L1i|aZTBq zwJ#VPB&$}6scWUnEYmlhopz`00*XtORLQc@RAE*dkaoiTX1YsPw~Z8-Zwa%>=3xNjw|3L8{K zxh%+y_9T{J*bc9?OGCMB2x0A@Ql`!>Y`jHn4eAr_$<2I*U(spVmyrEeeKm@_AZ_rw5k?RJfhVN?jvZNDS~Jn+ zBz7Pep0PV;q#>@K|Gn4JaVx(6+GFiXeLgK^+?5t9<#al~V`*|))z%j~rxctmrAQJ> zcqV9mb;I4aajDWB9j5xC;b!Xuu~NNA^M1yRVY4^y#Kbb>a!Ky8iFrpWr3$}Jmqovz zByXxZ=cAuagaxWTF3U?U7JA~z!Gv2NAn;`P4SzMlXeZw_cQsqa4j(uOLy@Yy*GJLM zr#%B@73bmF@z0MPx?&&Mrnhfo0h{Hgl>Pn3_oix_{4%2ry3WxEhR3KBGP~L4YU4R( zgGwQv>+n#qxi7@85yfZ4dU@$9(x<|BJHeh&$Ynpa-fn+6D75cDgPjyNx851V;&T6a zOIB7@e!I&f^oEcD3JCn6BriWCkthQcQ%Cfnbr!E8P$f3zXUDSu07uI5VS3gEU|CMQ zc-NId5o)Pv!X?aZ-X?gQc_T@U%}`!M@A|9j2CkcVtbvwq!wTS2POAy3GE0mx>kzNpN^6951J M07*qoM6N<$g8o@6NdN!< diff --git a/src/branding/fancy/show.qml b/src/branding/fancy/show.qml deleted file mode 100644 index 399434420..000000000 --- a/src/branding/fancy/show.qml +++ /dev/null @@ -1,112 +0,0 @@ -/* === This file is part of Calamares - === - * - * Copyright 2015, Teo Mrnjavac - * Copyright 2018, Adriaan de Groot - * - * 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 . - */ - -import QtQuick 2.5; -import calamares.slideshow 1.0; - -Presentation -{ - id: presentation - - mouseNavigation: false /* Only the fwd/back buttons */ - loopSlides: false - - BackButton { - width: 60 - height: 60 - source: "go-previous.svgz" - } - - ForwardButton { - width: 60 - height: 60 - source: "go-next.svgz" - } - - SlideCounter {} - - Slide { - /* This first slide ignores the "normal" slide layout and places - * an image and text by itself. The anchors need to be connected - * to place the items properly. - */ - Image { - id: background1 // Must be unique - source: "squid.png" - width: 200; height: 200 - fillMode: Image.PreserveAspectFit - anchors.centerIn: parent - } - Text { - anchors.horizontalCenter: background1.horizontalCenter - anchors.top: background1.bottom - text: qsTr("This is a customizable QML slideshow.") - wrapMode: Text.WordWrap - width: presentation.width - horizontalAlignment: Text.Center - } - } - - Slide { - /* Make this one narrower to prevent overlap of wide text with nav buttons */ - width: parent.width * 0.9 - 120 - x: parent.width * 0.05 + 60 - /* For just a slide with text, things can be simplified using properties */ - title: qsTr("Welcome to Fancy GNU/Linux.") - centeredText: qsTr("This is example branding for your GNU/Linux distribution. " + - "Long texts in the slideshow are translated and word-wrapped appropriately. " + - "Calamares is a distribution-independent installer framework. ") - } - - Slide { - centeredText: qsTr("This is a third Slide element.") - } - - Slide { - /* Note that these overlap because both are centered. The z-order puts the background - * in back. While you can use the properties of the Slide, it's not easy to get at - * the anchors of the items. - */ - Image { - id: background4 - source: "squid4.png" - width: 200; height: 200 - fillMode: Image.PreserveAspectFit - anchors.centerIn: parent - z: -1 - } - centeredText: qsTr("This is a fourth Slide element.") - } - - Slide { - title: qsTr("Slide number five") - writeInText: qsTr("This is example branding for your GNU/Linux distribution. " + - "Long texts in the slideshow are translated and word-wrapped appropriately. " + - "Calamares is a distribution-independent installer framework. ") - } - - Slide { - title: qsTr("Slide number five") - content: [ - qsTr("Welcome to Fancy GNU/Linux."), - qsTr("This is a customizable QML slideshow."), - qsTr("This is a third Slide element.") - ] - } -} diff --git a/src/branding/fancy/squid.png b/src/branding/fancy/squid.png deleted file mode 100644 index 452e4450c56c10cda33dcc9c5d03753ace458862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8313 zcmd6NXIE3*^Y%$0gd#1J04hx>q7XU=Lg*m9b1NOBD!qt82&ggiqDZeQRRmO|6RLn9 zMGz2a2I&Zf8X(|5{$4*H;K^E9XU~;6vu9s3d(LDhv8Kkl=jeIp0RT9sucu`W03hlR z1i)d`i(O!uJM{t$($KerQ(qBqH#}9Q^Vj~7d2f!uynjDv`1ix(nX#3V-}C>?dEr>@ z9|$!h22gGzR|N60?cBbERn-W|)m>5b0xUnCtN}x_aN`)U{L+lvfVvw}8i?sbxdG5r z=RN=~*p&ie(ZUHp`0oK{lTu>?7TmQ~3%X{29gG)as^@#xk1P zMyU$VorzFC*;*i>rF!Atlge}tOT z7p4@tOPo#K-Dw{Xgw;z|CpfNB0j4IG$I36>DYFusq7C^2M!pHEtm#k$^8};a)NSHc z<3fqFg9=R&`+(32Jm1m}0#@wi885oE^Y zs-GbIh2|QjWEs`qetUrT&MgrZQ8z%qoSHB4e}8vP{W;=`S)w=NDs}B-`Fm7A;B6)x z!Ep-P-uOFj$R_tdc6u@3;h$|KY0OGl%+B~y$Fk6PToXX-E(mOQ*; z3KRjipn#phT@tg=H}k%aJ=WSz0YT9UM6T}d&|(%s`xof1Eg%aWl>#CgN>b5LXfZnh zEf1>yhf;OPdTLa(A4=rMsQ=i)stb>Zy8)`wfu!bRHbUO;Wd+w$kL|eNp27m+Jn85k zh~~{|e>dwFbd5O+?MF4xxAzyr`|L2{dq#^+H3hwC&3N!&#W8&UBvR?`=tDx1LeyT~ ziyio9H?X}XY(d6?IbuKofwv0dkEwB7UTt;kr7F#t=P!@hFyf@M(7pfspEl$dBi4J+ z_Cc@X82S0Xx`6c&1ih=1{m|>tjQr>{UvMlUYRvtS8`$68Dfr ztc2G0ELmsq;HC6jlgLDJZ=*g87BOyXbl z&7N%?P3WlBgb)=)vV{GMq6=)^g!J(Bz-;uJB&wP2#|_!&DI#qrYn05lglvEtoq*4w zbJL~>7Gyj7%4c8h16*|M46$C{*$9Q7-roW51ur0__uK2SGk|p@xiWG^F0lU#Qsw0H zTebQ%=C+s_+rK|@K>e&#ZP0jh%sQ!vU7ZzenAP;xr%fB&x@nPVMT%bx88R(@7=hBJ zI)GGbhM1*Tk{I4Of!zQpk#gabU=qVuU#dXI?tS|(C27UM&~C!cwGTcn~baLpFHIJ?at$fHZ00loS`X*@du6HP6Z1dXzxbkS(P8i~vMW z43mWxA^PcgDix>te*EnqeFI12TBZBvGy7OI9knJZ@Cd>)4(-NVuVU2M46&a8bK`1P zumdr9rj3~ba;gX#!1pXmcDxcg%76`p! za&w0dqo62>VSOeJ<^tnJ<7_`e-|=IH54+XCEClKn_xR_&RLdvmyQ>&peTsUb`YH^d zF>O8tgQ$Upc_l%mCC_kb7F!OK*(CLDF}6ZD|4aPSA~?+ zN6p5e_Uu~f92$`E0{mc4CW_(J-`ZiUpRnE`0V%tePh&ey_%e zTDv{fEwH1xpiex)efQG%Fu(b$w=o>R>p!ixRw1u-Wh5T@!G=2x_O=Yq> zjj9x)uQJ^~uS@hRFkvQUaCscRwV@htMPdc|p)+$~ zMk1s`%Zne3J8I;=??JhNQI3yvqE%~ed!LaXUNPalbNtV^)+7qhtk^{xvPGRlL|jdt zx$vil$|gRa+fr%g;x&9XLF>UbF@yQ{kAG+z(o|`uVt3kSjGBG(y5ZB;n6?I>o|-Jh ze)Mr-2Gz8#2VXVxDe?})jIsZ67N@BkkTukQ0<_*OwPGiiW!a*1*X%XzfldYbipFYe zyJV5vuXI+D3}*`&6bHZy`o#f=?zdHA?||V?jhs(3gK8dJgA68_fD)HzZh@$hXL_&BCRNxAFO3D=%pc&S3bTYUiYC#$Qm4!=kKN0%+^&zvqoF>IhOLCy!q*ib(Hxv-gVagp#D2OQqX_$|Ktrc$Hld(nBhT-MAR~GM55%wkT2RVrm7e3-9zggJS2S zs3Dn3wYb$w&F2nkl6I%%##}DY_(c;-2%3uRFNZ`IXjda45o zQ_MiSDd{T_&BV4Kx?M8%>*$1bpz7A4Z8hchA%mv2=aILK$OcGWIqdp#8d~V6c+*?W zNuL8B$<&ACGX{4943fdqta$v5?2>3HSgZA}s;Ik*aSR#61L0?jsi+tUR60~}6<&UY z=cAIz_PC;=Z)rC%Rtgc6*8MLSbed-DW6JEEK$qFSJX_xw`S5kU+LM#5^Rp$rtk~I&9x9%Hf`C zKHO;5H{oFiv6PoQ)8mg1!+;X0V_j!@M&J9xOm1bv^Ne4>ELm7F`gWxTXT8`p`-L&F z4@}rT#)OWD1w zYAdSgOkfNF;Rie02bCkZW}`o-+XFG4($OEDo=SgU!SgR%-O?WuEHK7n7@Y!m6e)^R zl_t>z54i6x%N5>&?$M(f7?Ih)Cu>NK1kHQ|O-+D83NQZSpuXEW%HK_L%Ets`Q4KJ> zM|*LWZJ;r5+mDb zzjB}!pTTrNtM1ksIVeGFs=-Sp)ZxB>yzlgR{XNzuP>qlY_Qu}1g1 zfuRnCpEvu_=BS*X68oGH!QOa?;c)VHTEQ!C_W2dgoMfQGRZ}R9*yJdYT#S+G}_j~N{uZ66YV&j3^7&NY9@>{D45>iICh^vBslQ&mzm zHm%ho|J|vY{5A#Gw$~Avhj%`^R?sn`teT^QKruqpP6-7I`;!jmD0W?4LgdrK7UltA zVek!;nlbFINc&dPHFgpNz4b?E;V=@k`d;mY?3B;LB9%W&3q8z0uInagyO=z%O%wGN z*`d_iMWASl5^1qLJv0<@2d)3|U>17#<=k0mRH!b$(uS4iJb~lxPCEMCp+?pN?j~pK zy=Lk0T^*X72Q=$Z82Yjo8aMoYt~v}}n~(1N?>1Gi-28FKexP<@Shn(JqCzp8s5mrR zD^%lY0HTc{n_gd3lFglxr>z^(*LEiT! z={Pcj{u&w?yUfqErskfE_ghSzbo+q^)G{U7%Qa2&Tf|e|D0h}=hA#}1S$!T&7l2M# z9AaC4?s`UXdG_f4;yaO8cJ~kx*BtTpT^MydrN_0T>h*0#Epr>17}2EFvpudARXZ^b zi+>2_S39MTOP+_cIwT*%*al7N;QL&Ei9UJzo#c3C7ZTYZGcPB;%@|Bp3jV_{EYii@ zwbO}WR5|+P2R_2kD?Tky+nm}pb--L5r{8f2{(Gtzvh%7@=FRZD%sSuF8Xt}P>?DWI z1;ojAZzn}%Xs{ru#eqWkiHklR*5Y#RZy_CTWaek@ohl!zI+l=IM@pG@-s_^sL`}sT zK}^CgjL>FZW$wLJA)S`RJIMr+x$Ym$FuR8Oa=v`&isZhS)TGyjl95Tw%E~H>2LTJY ziwn_^hUKP>$S;%gYP8ECHCz{WWP02F+h0}FvVT1Oay(9P|4)>2)V*`<$er+WjpwiN z9^`aM5*}Apw+>BmgB)o=-)kXGk#BE^r1i_^zEhZfGvPh5&oXhzEg`TmA@ zVw$wITj#G8XnXqxtUcV?__g_E1RRU#O+HbEE%X(CS?OFFq-o?m0Yi`?1fpAa ziw5w#b@0NSwr6wmDrNi)!5%x-OBqbkV~HzreVlQZ6mPFkuDl=_&%n^OTpE3{D)LSH z?~Wjw?#1iK+^4?&Kmz2OH%CI&@S4!^%Uf0LCSQ(!(BSWrm|3q~sfJ8gia*_FVamjq zR#}^gvKNYeICn=4iDR9Y00Kw1{B*PotfWfMvZ>!DEGttb%8eixKX&3q5Qsby_*Yse zjmA~92pG!g_N$W|W5;^Gj*BP)F1tRYBlono^HZIzZU*mi+>RKC*W+BGC|>DnoI6s= zrM>6xKVHG{D=>VWX|Mg=oq>f?cPcrkiTrI>U#+yvp#mD@AlpL=#GOH&dTG9{JN`kT z{22qObiw^Q>EesZFw^<_SxU@?Zb_5h>HwZ?N@&a_%u(j8Djip_eW57*(5?3qlPaf? z@=ng|pI%fJoIq8d#K!uevJr4KO)dNh8?BQ%seQU9l_s4=r3Ccv}wwwcDK^VDsh7)TIbnpFA z&aMWGzdd%l+jM)k`HP1%^?VAp+mZX)Tr6}pIzlx$X!r+fh!g;H2?(=5HH@C1I0;SW* z>5FfqtPJDz!^vjD)W_<0*bGv~>f`Ho4`^?0RDWpWdcX1G{60d?^INUGTFsdA=`u{W z(Gq8-K)IJ3d1hA=WaG)a=GohmVF!C6))uAqr0efr?`Ac?b#^GFvMlwxxayPRKQ{qv zYiL}+dxOt|fpNx)Tmk_zR`%I8E!C@d!G{$mlt zjy<_3kmy97eTA;su%J;J?A$(ND#Xhll75pLrU3R#Z#`9zl}<2_BnZwtxaab1{hQ*+ zOc3M<)6tz`sJ`?gDWAQoyvkfFIV;F%le(+@T4A4m35bqW!!Qy+*_-RkrM}0?{#E>m*kF;f zi4LpGNKkoGLq`WY&AC|C)PbcM-!9mBCCaJMHQe+X_(I9}z+Z8_R5GPxVdO7Qgjqfa?7b^1l*TKYEJ%=$(VvaeOc>?&6MBk`HS zES&?As$`LIil2Y0?4DF#=B?tc41>XHoX3P)0`^3`RaH3}IB=EKjhxC7aLjq5(_kzs zwy@~|Z3(S{3z@7c3cBhbRuCd!+;);vmR$8EpG;$@e(y(!t>`2wI8ZHOb_E0=yVe-g z@N2wn@O)lIJIXC3^F&A%LwjI%FWv`W+VE+K4J*fpmR* zKisioWA`Mw;}2|DQwC_4jkYKiHp^7Oatxm;=*-P9)XKi%U4IgAHTNOHc>9=T{SktN z!SI~~CfXU9nU$~gv!}r2sDoAtb!u*MG_EuGb5EPEr&DPgYE#$OEjj6vYX|^wJ%UUs z1U|_N*YP)*lZ#!Q{?}ptZi9;3RM8hcHpu-;YCX}o;Qh@<&d}JXvy8Vdy##fzE`(J5 z$P9TVsZst=*(=hM<|g$tF5vWz?ac8*taS}9Uo3%RNXfm#!}RTQ6e<$#TCIvJvKV%C zT1K_E+RRw>DinX%a=Gf;2uhdZx|J>(dtHMx(EBN|>Fr{jP4YsbLK5*;?4l@Ve15NY z1HK+4puU&gRTUQ=59DvD`tGUvxAaB^~* zUg0z=e{Lp`QB;2AgB_Er>mu?3Z~T`-d^Z4~CqoR4sEh@nK2_m_d9p4!Rhp%eA3h37 z`ri1T<;^?Fw_>b@jc=$&=(9zA`V*pC_}2JMxouM+#BZ^M)(gL2ou>}T1 z+U_(vcbbBaW_kju{DOv>-Zg@W3a_&Cae2wlhAxu~yb|Q{#4j>f&p0vKs!ByG4HjEU z{6~Cxuj%9aX`Rni!&3emNSX3FjAFxOOsQ&*(vwp8aYWdTUyHDWmwBsjQU0?yLNhol zw!+J{EkeoN-Myn~*0?9{vBK<;cICp?JU;WLT|bMDC31?9;iH1Tl?(frYqlvZVzVvI zaC!$Wy0@%lzM- z{RxyA?Pvbq)K&S{_JEL9*jt%fAhJuu0*FbN0TyYIR-Tz{t|urG!W)4$-^#C0`K`<<4A8a+j;hh z8wB8jSN!OmZ#RMIm`_@f7r38vB5(Gj*{cCOU6|&%S8p@IEe)pT?;E|U;qxr>Si5NA z9L0#&=0fX?$tFnNhLv0ijbis)XR@UWMP7*~h;3$+?oZ=R1NCy>)y&8L{K?A5bnbiD z=0|5jnOQ~+ft3A$?j%o({=`+|)qB99EE`u_8!$LLd^;5Y3_c9ORW?H)i7&^OYmIFO za{o*)o#eqJblxgukEJP1&tKE*>H=h%A)&fAD-0lsuA+f?{gYbo*^9TIf6bMMKH}#2 zoy?qC1+k?!vXHtiANS-a94PLfE4m$a^5V$L;}SamJ#Ks@<43)1kdyr9lAud&`SZ*; z9IOLrDv_T1z_WQmW9I0~WXgIuX-IN?`bFb&_ejn@!yCP+wuvCwXBKh^2}wl_HBQNN znJAPdThr>U!Hw~x6Uu?CZPN+GKuQq>r*UzrsU7x9X6=)aDfYd-wtJg_$=2c&^1X7U zfptIvn^59~=Kvz_opZfl`p6vn|;kv(0Mi|%Dw|AUResXn39Cqe3@iFD1Brb26B_N>Ka*Kx!EJg z|AZW>U`bB`nNH2qK51#3bbM`|x=wSgQcP^qM74Gs+()H7x=5h8z&lJ+Z1XVBPL&x| zXkLEnN@GKn-bT^C7g4=qt5QWGRjV02P04GKf(#?*BKU z_zn%@rF6~Ftpw|fltdNjiva_}#q%-)S^gptPB_g#r2@-}$HgJ>%=y8jJZ^pkGGY?) ziH(Weg$nL34Nt`h{Guj>RllVc;FJQox!o_N^iVDTF&EbV*U;Nm^@du2 zQL$Ll3I@A7{%IV9_D-W~VlA!^ypu zwlDloD4A>%%q))JK%;b_m*X=xX8S~tpe%S>p|p0xs~mjT>;gzCY+C*4YxC4c%N!Ar zuRetb5COHP35e2?9bb$@=1rCuUhmIT28v8*ol+gB?RXZyVo@3%bT~qurwhG3ZoxlW z!i%FFAX^6IT`v+R()=T$NGGC4>1%}-V(i*#4WF2oJ(P>TJY-JkyfA^d-j>(v_cB$hdnsWoX8Sv0K%7|}Wsn_yaRKPdCK z1(aQ@1W$f?D+|tAAPsN8FkJcWj<(E4ME}sVLUU(k39AuMr%e>(5e{l6is65_uSz;r zj=adJz=>BU$xmkGJy$>63qic`rRY`|dyQ}o)$gW>Xs|MX1Jzu{8nXjo7$uH`1(eJ!TB=a{R zx$n#$LmO(-AT3LQ6&J$`wXm=P4EpbZ-wo*&o(<#*2>hbC=9%^~F^^6L;uPrBl;G2! zhS3=o&tAg9puG~~QGK<$pU)*5PPB3hv zgrFQ!0N*n~q*|^nlnO_iD>QC?I}3Gp00=H3>QCgW#o0l1?Z=ND7`t&#dHZB) zZ(2^2X4Gh?w!w1KK{GMK)9<{6RghGX%gX%r;+r_yhQgN#c_-{Y&xl+~BDdsne=hUO zcKpKwu8zO$DOQrxyJ?{_Yx^k=FT3)QydDIClHL&$>sKt4B~r?(HC5TUDXWl~kSc(5}8@;3j>&AsT)NEv!|RB|T6ZYKqS zpj6T>QDwZsB!9xb?l!F?M4*%3{G6n{Q8-5JEsC^g5Jhh9p}Gv;>lBC+IkErC@gr58 z|5y3$Fp#RVG$?`WTHt1OV&cE?Z>@kg-|@etu+hQ8<;SH9Qz>|@A{Y=yW~sr1O44;l z^ESDkDv1Py?00aJCXuyp{L_0lxNlCN%b{a0XQdXS;6#mKevnzlpm6@TWF@TZW)q31p8e&D8wRp)VPbq+;P%(_AEL4^RIBePDeeOdRB9GBXI;ecQuIok_rEYkr-Fdm~mO@%p{iOMv*(oePWRu1;)q* z0LObKdeGm?9H#=}SBYN#zXXy6uCfs^k_=14?APTW<}ngw0+=hh?zGT&Ej}lv6yIwn zx|LhV>~+OdaL9stEc?-sI}+PUkt1e~NM(kP3yrtpb7G6}y{fk;99>DA0P5?)EKppr zK7l_}xkLy~kqjl=0Wqr*^N1-XMk@eD>%wDHV_vkb2qV?zuM!O#xC1K1bK_j+_C8PE z5J09Fq~+XWq$HY;6Jv4FCiqb6X@8&m`gtL~MB9)+qAYY})jm)bq>9j;nFMm(^*SFA9Ngv>G7Wez5{XG?2%-ye@8=|y7zRx*n^0CF^Qvs`BYpLtiOc(B z)l}UQINDG1gjg;oK*Uj!MJEEUjAi-vM~y(T5cBSe3YK8esmF`+ET6d2^FP0Gug;|h zJzB0lpA*eV14aA@s^;~FRxssjc zZF2i=NC#woS)83cqF~uZ?<4VKRT&sEC7&AQ4&lH_Z_xIu7TrdIs>81XA#Xs8?}Wh+ z&rBc|eR$R&=7$Sr#a9?f0Y!q{WNqx_$@tcx(ugzsbE4LmA|lgU62u(pcj|4KKdT)) zaf=g}VDBcAk>vR!pNPRK=HJHbTjz?{R67Bhb1;CEo&^zvmCeIoO+&_mX`>nkN<@kA zC)Vh~pXvK4zq`UMg^fR5CBWMQfXjF|dy%_=Jh67ZA-O#u5n}D(-g@Z4l%q{GflIA# ztsLmX@ppPCFlsYaCGAG}Z1u|L7k<@8&n&9i&KfLv=HF6}M?p2mR#}bHZO1U%CDCv2 z;%%6H-KXM-uGE~s^;fywAbJ!35VLea8Rk%{-@F+&Q{#(Pj-m46zf|#jMD!1} zS0SVJvlJcZZSH`ELD8yZN?{Ucu%_|wT%;{Vi%`iQBOlL4R5bYBlM-qf8h-udlmGmJ z4AvE?#%%z8>N4=Au^Wp{I9_R_bW-u-qR0JqT4MHO;SZ(5`o#OPbqerGl?IfdywlRe z+S&^bw<#^npzjlGzwD3R0!aboSggE%|zbL~2Zkf{fb(b+-znm_sE_|B`S5Ot(H$`?nb^pRf__ zdSeg;KT8<{)`{atFe(PDz-HL15+QI2Cnm$M^+;_pv4?~i9ZWPckYbd*L8e2vBzn?( zlMt?zuf9qiiw>Edi2bVEkx`UU-fO4{wnFhj1!#CM&eim-CZ8v5Nw43Y+elGhE z4cevB)V!uQ*$IiT{piofDk<5oMgT@YjFM`mrY>0t=Q&I)Ue*`};u4coH#K#tn>oY8 z#46}7UtLL=g~D;qNW^_dW3mT|Zy|y4TY<7Wij0~Yun+Ez&?wT^DX0si+;!D#m6fzbJx(KHE72@6{O-)MDI>5iv`V=w6vDzq z!Wdhe_Y1{wpW&3d@D*H>-^eu0{jf2tZ^g}yY=T6~)Ufh%)A$H@f1&>9 zsV|V+CyGX`12LFl7&(Pp+dln!mtic`0y*>{$e0!7h3G*D2>FE>w2mtR{IW2L!z`;P zqo9~qrzU=JCWC1s{f(O0JcX-r9ys9DJ1IdQPS^_1?`I1AF$aYDTIdsQ{Dl3;Bk3p zh8x*b9)nv8*gWLXv@AW3@%h5G+D{)Ir9jqbtbAm#b`msytk^`X&~QLwQpTxXAt5o* z(Jh##{84q+tk3p17AsMCxzPD8;Iem#7v)tG!VtFGMmzlvV((oe`3wugpYDUut391{ zdY3;WsZ$T_#};XiSMxe+LwG|{B^ChdKPrD7T#{{a<35IewfA+V7~4g%OYF|Ydp3VR z-hdd_xL;7@hKwqhHz75IC$yI+I_d9%eE+GE^dBE*GLe2>09JVI0E&#kkJb;DD5m%K zDT0<-;lDIJEY_k>q8=3J184Zq?aMIM+L{^^R^>Bk^-kzlAO2dF^xIa6qSY;2#6(g| zT92tlfm`G?cEO}>KgU+r=j6h-=2R$sag?j;+-4=VuMQ3+0LuLIoc%hzagVb*(_8h% za{9h2y~+|xO-Z|(n{jAJf~1@BpB+HO92RiKqC7V$?OD!4M2q~p zC{qG{ngJzekM4bUphQxxm4=eCZUleLFXtS#J>&%2UDSTh1~w?J1^qQ@`$KTY4npke zSognNQh*s4&L2f}`jOhdJ@2|aT(Q5IbZ!9#3hLI93W8U$Ai!OQFAq;ZleZN7~uleRr?b zPf7pX-QTVXTa}@>jHc5!^|n#RD>+?4wm88ciPWzdh1?X=>kml9<;12}MGgOLufUrb zU7DLClq6f7L_JI0zzy>?(~a9AJILcK_>h>{puF#2Dt&Crk0zG~AW8z>=o+45=?`s( zNuXq1(goGo_So4$JO9yRh~eeQ1Na2CJW})?+l>=!R8|jVj|XLbsL)NJ8rO|c!$B3~ zj=Zl5P6>N(@{|e@%$Is||BvAIXV@ph&!J3d4<*|a$$+4(+cg?*o}MeghYX;tE0mde zS=5#E$e!jfZN5OND6bnSsF{ml>CEihzk(jU43CYF7kQ)XCwRE;7TYQxnl`YJ>zEvq zpYM5X%i~h-d5%xdX8eicuYm`dS$TA5y_{DBU+lKNQzh(J`F8+J|ByQ)GigI$E0_u`uzd!c(BuwQFz1IEF7ouyie9<=K z@r4)YuAx#ipLD%6L9J|FV{pmiAOp04T4-_MqdXxbmv>?CN<{%5~Ek zj=hYm$75olfAf2))R&EJ1@MI8(Y390%=X}!iYVQvbh;tue?t<#4n(Wp1Zu;#1fWW7 zlokDr8=7}#5>}?}<*fZj-g2!oJ2KTsj9pS$&`-*6iwEV2$oM|UgmW-Gg#qUl3LhS3 z>2^{kUQ^)rqla%X+8>~X=VKs}=GkQ1azF`?8x~ePLlG zt{L8mffPa%qx`#=(bGO}qewk1GV?RC^C@mm7!1-L9Pm48vnxV&qTLZd0_mD3XF}H4 z?;C+cV`?SNYxE#>TY^Sp{9rkJ_mQaf?sXp6MS=D08yQ1tMlRfgwlMIG77f6udjXq3 zl~L!oc;?EAE-<+r-SYkp^}wRA=9U)--^m=1#e@r&WKAaBpj)m!l9*&gd45cAyG<$h zB#3&TsJfbu7^{z&eTR2(LtBi$(Qsl>WWsh@eh+e-f>Qf~wYt#T55M3X39nxhL;5fZ zf|QS@W^yy#EU7C6D9U5o3*)68O06C}&O0u)*fDeX!y)llYW`fK1;F81=D6>4|hrYTW&eozDq zXMAsXGD!mOcrmMuc2Oz3Wj=SEM+~KjPp1z>UuW@h_?EK$uBo#1y?LkFy)8Wn&-6iQ za*I!CO?Nw84A}i06ga5C-kY|uoFLcEhQcQfKleac?YcGA1_)@@-_q^sT(V!)C5pDP z*Sgp6NG56|-Pj=7t^Gd_+?K`9E=U@8iTBXg%AYqM5&*;Io#GTu_mRA(DsKz9anhL# z>td`lDctl<^%l9vzNwmW5CGxf>h2rK`LH1xY5*@$Loc&@6P*>g=L~pl%sctsb=Oyy zbRRL&xJ!|!mKhPiBd=Y_{WHsc`TMNFsBt+a{l`eUcMql)_4;NCdH!6_L!Gn+$az9#Y$>c_u@QWsCzGS1a6 zix{e}mdq>2f`BPu>O^^8xy+hS+Of8;<*?f;|8he6x-nt73ba8nxVD)IJO+Do9PdK7 zxM;puFAbJgcWrK#c|0kT!ybH{BMi=)Bf0$D87<*{g|}dm2b`qL z+kM69cS2|8o$dg)+X*ze>xTmG&tk3I+egMo5@a{JH~FH^1|N64yBFdwm}v7)d~=1{ z8Y7{|B@m0vrUBa!iaO3Xe}=D>7G66#aS-eMvGHr#2MdhRwZvfEhiow(jl9wuRwlAs zeoAL&XEnYTfjo--jBK$6{|$Oa>LMo{sx?=>xf2M;pfwZx&aY z8}WFbAoS@*`L~-$kg?%RFxz@O8<=N~?&JAg0C+6_a#Sy~W&Lm|3yJOZSa7doN|PnI zxVV^ZctR_b$k*Q;K0l%`OrZRe-qg;^E$5N)u8DgGmlsOqRPe#V*XXkImP z%wluqcB$5j@vhZuTCoY#K-r7Q3zEw}=Xt_rfp)@}&YIKjlL(w(Mq#z;m#>GNU;w7K zgvU{@3LV@3_WBo5DCes#M)y1NxjXA&sa-V7++y_efAScTw+-=jM7JfSLdiimGxNF= z+rN74-%VB0e*KVtxko7(Iy={8DlUUlnv?xc2mnrluLZrszRoz_)%qB(Js}CJutJ08 zMq7cQbcvI~sQA=>_)(iM{l={{8X=*Z_9k>rG;bjRM@-;ri?2FjISNhM^BNRuSYM@W z@T1rH#oW$rz=tgIk}z2C2G6ANq;NXTX3lJMikYAN68>;AXORK1&*rx_;Uiq3!bi(p zt@dn9q4Az~jG`v7WxwV!wdr@QzSdc&LHTlLlWFxZVC=E1Y0m+hXiea*rQ2)+c?1Y+ zgXq2%BxOzt=(1$y=4z&KJD2`Kh11j>_9tg4fg2x^m8U!WO)ALd*78Ac-s&mM?9r3a zWiEV$ckQm`E1y#FIO!0=&E+Y*TjoHFN=hrgR{!WS5?>a0E$gjzLApL%bU3UF82hWi zXPtPkX$hGr%yt>M3wd1fs2w9wRIRoD<$FB#c@VI0S@memQXvE)k z4GaiJY2V{NR92S+fN>w*w{KZspLh~*mf9?N!`GKAOZjnrlp8$6#|~k(xJM0yfe;!lQm9XnRN}uP(OW@ z*vyz05o;Xn;Yw8m#QV8_cb>RfMkuFqD1U1qi6a2pgJay^Mra>tWUn+GokC!WD)hrr ztTbAppXz?@$Ct}i>^oDjtUD`7l}d5iceWiw%)D^QQ_XxqEkAqTzd6fggEB)#yS1+} zZzXD;POar5D!uCs?&a{XZV&8>_>QH7^mz{N=XkxF+uvN3$J%scA}^K)g)W!-|0{1_ zFVcOK!RLB6omNf0doJ^6aDupWeMx%NndqbIH4u9+dHHT+E89pCLVMcor%E?#_T1MN zl+tYK%&q7{RV8T5Q>Fe`oq6L4Db9o>iLj!NQ$N0L86r3jl_o*j_!;^2rliIsFHJIa z0^MW%DSt7;6Q$9|6DcW1e~*r4%#hBF^jm!dL`=S9`Rh3=msjh@WLvY}Wk)8eUV3bN zfre-oxEo1x_4W0^l%#1#>4F%a+4}ETO1XcSyRJgn)Ka0m&e1=6-A!DgPaGFdn?5i` zf6n`?LM5rJ!J-MAlnC79jO*pcG%+nVk=%eB*PuWNFSVz~D(@`UG@W}!G9B$w%a2l5 zNNp3P%TD!8BrRkB<+^-&Msm~nX_xDYCxx>(7wh#Bs@}>PEK^m>tBWH)G60e&8md7x zC&L;OFumXVXB@`bXE?x7aSSr#JGRGtmf>tsioICIV$6uoN}@1msxdZDX# zSXTS7d#}j)5qy0LflS@Zo_8a_yC$4@ZcSDnEA=}FP{fq|5p|s2#AFsL>12SgGPg<5DBMw7giMtFr_CNoRZCB5)olxNEihxEqN=i zWmO}i8S+q;XV)ZjjpN0Ouk$I7&c%|meG~apvPoS8il0NcuBjoBi`gtN2m2_EO~>JV zNa1JY^(OZS!JuI@Rapx)pH2-b2>lkxYU0nC5&bR0IfJQIP*dN3y6nz?4 z_gp6x5R)VwfcZj}C$W4EbkZ|W9cOX1GT*lkaH`vuVz+J{a z$TM$4g9iWvkBszmZbjs;KaZ@xX!)>*P}#iM;vc=^F>4KlCOF$r-@Z~UW=uqwKk>S4 z)ro!DS=L|mT8hiXFyusc~sv^WnzI&guT9)TW{?pmA_vs$KO=8XwG}$NCG_P!KNL zx^xi9PB25m^+GN{ka%`oC>k!F0K+10z_zY@w=}4+Q)Pv z@TL+yI~1_v22P5t75z<{bv9J?EpnAfgudxZ|F4NintTpIKgYGH3e_|8)Zg;%ZqxE3e}n z(V}qXWqOu-pOX%|c)#)EwL(Ji)GJrXb7@Bs9S@%7-o8~Vsr#;si^Q-PB9E)OVjUlV zyDx;v)TmRS+)$6HNhnUzA;~f05*wZ`L<#?4MV}0o$9d^k$9OTwcFKNXQ0vebV$uUg z$)JtDzxTB^=&8#*TQ5JPK9YbGIhiY{NpSs^cI(i)MuroRj^&2PyJBENx^#`8P=lW6 zkRQw@pPT3jM?=>sjz{~NqYy<3FrVwXkK$%CPFXkJiDSkOpG_M43GrBZtinF{*Ux|z za|MciXTU&e=HJ*AaNYaIS{#HMc#X2h&&t`eV&*^0!_dXXqHskwK+pF9oG?#%uhL5u z6A!}%BnStP80am_l}!x~87aBNTU=WD)hXNiH&qA+6nUfDS!7Nf;r~&XinnD)-;6uc zVL=n!tnY$uDmZhw>ZC%4j-)Xa9;1Yy;IF*;u|gp23lQ3jsob}(f7c0g{Tw-?m3qR^ zta^_v?r`L6ZTfp;k1JxTzEr%hq|M8Oc&Qfv3pHS9l&AI?rbr{c0ZXwePV1f z%XB@O6lfn^WXRi=eM}d@#El(MO>%_Ouz7Wwkr*~U28$2hLxD1xbFd8=phH7R62qJu zSO@Qj%tOyd_ECL`g%L0PWFa7#MB!zJ)a_JI{w7Gd#M=tGq>T%ZE!_1^S^OKixC0nyyWs2pwEt`~94Okybb31Em}k?VSd${VUO>ZbnS8J> zf@yosJcCs#Y?b`R5$li~J?Xi*YDA7v-?)>kuRgnCBS1l*;AZrlpNjfTZ)X+!*;_Bf zpn@c!%`H3Ue>+qngU-_ZTNwRM5A94BSlIih)DmDsSJ9301W!?T^#+>OnK0PXFq0sx zP5xW4tys|NhN2k#q!`gW_5cU65R}x>qNB=gfL10u8$Rz)-{rNj=qM9KW({YHq!)DW*rVrb3-I{EykBBgI-;Xsc`Sf`LH9A4Ag38LR~KI8GRDUzl1s@t z{$mdI>xXF)OSFO;csK(@WjJL5c=5aR=#$5XuegCtDJqkE6Qt3<0{x~7g@Xf8xcW|6 zZMB!LXGDOw@)H&dh`DTVuiY}e*9nQ)pf zYX4wZN_@aNDT1_D$!Y)H^Z~m8EJ8k_8Jwh)2NDU5KfH305In*{4pdQojT}R7mPMBV z(#uFXA>iy99*#ZvwDDjID%G-bjX&D&bo1fm&^fMb(O=uRI2|b5LUiLK*E18Xa>9-| zEsUC-gyRbjyGUxD)hLiWmUiAf90{9~!07OpU}4C)&M~Sv8H~;sQ;GoX9HM$Ggwc8Y zPY~_wqIxWf!3}fwU*)CghRI_QETL?MHHXw3!jb<1P@n{0#6{@63~6<8fFwamoJW7LRYMKx?ydC7bQ?Cz!?lp(k|Lo6isxe$Z`5s zAn4f7$4aaO|AoMTOQ{lC zn{1XO1{l+=sgxCQ3W~4*{S?=^iAq4|NDSb7~L|7aM;m@ z?}7=MZ5os{Z%BT%vvP&JJ!dkqXH0qKFhWpBO3$A>S`j&`?T=j)M~n;Q)gmECwRU+> z`Q>R+1Z%YQf_Jfr8KqLN%Lu3wdZAZr-?xW?s0B96Y!zu$o_t#j5Ys>hrQyOo;nvmuGxGWH6MEY~Ba9?4>`LO{Fg z8+szqLRsyJt;%Frc&^!<&ROt?DUPxdET4?v@=C9|H`!wDz+X@7 zUZhCA$n3Q#l5TEOvGDppSrcJlMT(MZ7Fy#WDxL;}uMlo-^PL7iIn-%{5(uss6&yx< z|M1D-bimB>F-R|fN3)2Ie%mr6`yDnJsZuUfrH2GbBntfu8~m`&RHLzVoBR)s6}I@r zdCX_N&*A5!cO?5kIkAAUKZt`uGAuz)GY{|gRdP|V%wL-l7ap<_>L|A=7H)#HXvOy` zMY9qlDa^a|R%0dhxkX4cU<#i28~WTZKF*B8mP8m9&&ORJX@c$CWTx1O^oiMQiR<}g z98Mb%65eaIk_IA|K&r0 zU0=?$sB4(pf-Uk^7c*e1UzcDHjalZa_{In`_E#0WJ{PW+ms>#B45RwYksrL=#5C+1 zZMytc^@%737zKY1#v&i!JzdxxPRIXU)rI;GgwNpc(mKM@%PN|nArleckXZRP#hAy|q zH351;@M&DPArV8!%Mdgz47|3v$Y+72=u6DMd9W=jifoGhp_vnX$hHcGCzU?m!15X~ zAMqB)qxFO=ET2{!{Y1|Pevpmv!j(u=Sxwq4dn6nTpB`WTG7r_KV0d3*HJpF$h;{|^ z<}9+ovAi2^A>yk$Dp%eDdJ;~_-~c8+#0{4quETc>uOP@95LZ-TqdVd~SD)R_N%3#g z$Q#rUNcNmjIFd5nu!e#zzpwMA#6L#t5Bw7^x*%t5rT#0acTAx8>*MUS$ln^ff&Nk? z1L!DbqrY@uxNT|m;PqSwBHo#1>T%jolr|k-6nO1@Wt&+mSb0y)d>9f%x9ms-O9crJ z;P$v;{6A9JG_dvV#@j8b$_LV_exh01tHdQ);~Kq-P>i=ik?MeyEp=;zaQ(&ur?2J2 z)!=rSz+c%vHyxOpYUevi^Qy<=d8!yPV*5zLxQmrOUPIATS2?d^d0C7zEzNmsRmrB= zkN^1OL{l9b)T6_q4%>(bVC8$>MY+P&yUa@2pv{fYa* zBVA2z#aXa@G9d!4gsCETiG5`)S`q5&4jTnCbaxD11e9Sp~y(cW?jO-jnAM-sdTY z3mf+Q(vQ4N`VKH<*}t#pHFL!H@OSKeHI|OGN$q%C zc(hums1pK;IgZwD%~QTn z*Jvrf`iTQ{<9W(iiXfoc)5|uif5tVtbAE>kNJF8fk$KdBdfH} zA615qGnUF~Vvk&9U86ii$!etEOTTasgdnpAY=E%?we{^LVSC|3{1>0YS$(N2I?~;` zh~rQ9R_jT?b|+o1r%gJ+^SgGxg7*HsraIwNiSGUB#Ks@D^9wXNqFN%3Iv61*1&p%o zk0W=|R8W`YHjct~AGDf~qKeI!-71+&&&v}7e0(IkIn#739xL1{*El+@PjQk9Szd}* z7-V*d^5E&{5JvFu!I}*VP)bTk)z#JYDInli{yg#Q^dq_dg~rgtq&Cf>Wj&YRwtP>) z?ft{qMEkhT(p%fAN6XR9j_wzUh&Q(xb70cE`?cc6fm?eQ~@ldj!e#ZTW}HrQit8ng^P z!m}h7yW+W|NGbLz)#|^bcY=cp7AtZ0moF_uZf*;?7;vf~))M^!fKNVI`I2yt4BX|Rh^D?8t+_{$%-u*RsOHV32`-~8R(5`CUCRJ zxOe3r`?3>?ZpkDzl_}Fjv{>LPN2q^6Qd$O5@m#6JSUy#Mc=W4>ITgTv*WBHLFN=v! zUL#5#A0PiN_t2c?$d>)FeA_|qlbDBr#g%T-@QAavS8QzQ4Vep1`fh|5F>p%TQpqa) zT|r=9uij-27M|;L3!`?b&;8DuE9Uw>P;y7^4phaHMm`6YgHDukXi{u)1;#?Ta(0M% zs}Z{P)J12*{ud4BveK(>Nhperf|5&|y80~(7FX8af`U6x$`14kTe6yi?^Ni0Wv+%s zPy@~WK5c`T>M0-Jx8L_O=MX1?dzX_iGHmGuwc4QA-2&B_Mn(Q&t#j)V+uVZ@Um~qu&~|5Ax&yH#^}WMPgG0}|^9&xv*~3!Ce8-V_eNpOAqGl*i z^kyFVN5}=xP{$|vw!(zf&3z*Vd5S$?Sg$fG9tB>RwX2d}oTppXuHK!Qj*u242@lIu zj%kM(U;q0|3RurMiR$l=OqLw!xa}X!1(5i2EN6j+)gLvkJBD~4%j_6jTU&1qy75kT z%fZyWS6;9@Y0rGRy1muNH0zN@&hDxPXXA$anJ{}H%0}hsHEqtEjq$bXJ2|jvd|}%I zlxMLy{!TbDZ)k4t?T2`K7(o0r3Rm`yV zgv3lp0V418!;TJv9y z(kZ+AjT>vrg)6-!Q99wd9@+OH_=D?@?S z7j#IXlnnjnW}}+JSDVc{kg7Xmn%0HQtIq3Ps-d5Iew80~y#y^m`xln80aw`O$3;y9 z4-fs}CnATnecI>G7PG^}GY&oBq;Dl!Q_>kOgYghV zM3NY4@?;X_G4TFBzO97}fbqa^d!O$)^v-~hF!Fg4Au@o&!x3F0;}?L^*Rgjobd%?P z>CnuX$lT)MC(jG`H?IZV-HU|ZIQ=8tFtfNsm#VbXwk#NXyz1vDTdMVm^-}GL+U{#c zra3M~MuDVR9(tHPx#ZLF?FsBcWs$(afwNTCn0nyc&&jsnSf;s#zi+rmcA-6kBu>k; z?z;w#j)LR0j_E4td^%knm0*>QfFBFiPLr3<(o3rgcjdtF|FZl$+|Jct0+S3~iCvOi z97}VZCmZNcH_PKrStojlyt>XiuVZj*C%;y-m;p*JKff<5T6d-qQ861%vitfoHDxQutdf5u;0 zr@d+fQF^1B-FnCzc)a!(B)WHmOGtPYK)QxVz%|C2xsW#eOQYwomm;mMPPlBp(bjif zkKaF74AYD`58LkRd;aujp_(-|&$In-S(S4o-HKR0&wXjCEuvOz!v zUB1TUM^lFwsmL>e-0rvlzWl;-^Px1CjX~c)pB~ey{d65Elu`2`b%L{#PY_>Y7ACoi zMgTqgXTW~pCbvV{&83HkV7pmJtxs{1W9@`k4gmbwiCl|z7Ie^x0Lom3w`w-t}E96%i#P-rPp`^f(EH-|?!8)K}V z*M+m(t-mKV??)zI)fth)<{woaQd3+sGc7iku$>pGDKJ>vm8&YhIZFT52}M*m9i_=C z)@b6q8dfE0tH9iyU2UmCN?G=8TA$!wXtSAroDn zdZDz5@*Jatr|Hj!FOsf#rz+)3@-SHCJHc!;loPm3O3kIdbutfxNPE6d{cl36hv?gr zZ8Wsk(dJ8OtDE^ZBYf;N1J%!uedjVn$9(x#FV{viO9muTUN*Z@xLkdFcs_lYtp509 zD?y#$#c`);N7uOF{9ga~J7}}4tZi8+4f_#j{CS~DS)R(v1jUtxy(0ulO&L0fVyD-a zta&rBnbNHEa?^vBZP7zh{&o%wDsCwze zK)RB^Ks>T+OWEU9P)G<1LOtH4n6~ft8a)3Rltz55!S^$nHmm)t>6oQr^p4p$#pnbWq356P(0Gd zlTN*g>1mWzlb26!ZPhv%9(nmw$G%YT@geuy)sHRlR$jGcMYY%Yzm`R%-Pi1)9to#f zG;ol^i>N|;Vk^w$Uz=Wh724lj(gGacX9NpW3=e|W|<|Lm}f@!B8H#M2u* zFGhqVLdT^$N`;Bu36z2&-HSVXMWjubmUaSM@6ew#S{m@}hdJIrSU479Lrk5Xzm=h| zSN1KKkG6#YSz1jQ4!Jp?y1fDJ?Dt;gaoIxb4ec25JE8O^e?6%H#FyuU3vu^W={q&n z!d)Z05cIBMe;BMzfhy*cS5Z%z92PB1ouf~cGTSjlwFTw(HR4ZMkgWCqx9L|@lNU>N zjm@b=QL(!Dwfc7R+hj^AG+s@}uVv}Z#l@fc!I+qeqn(INt_`pg{WP_>)4ho@{qO#l zZhRMHx$>MkKzB?rH8s^GEbId(9Z;1tE`UpX?^lHR@2AE%lWz|HjIA?an%LE=WZ-J6 zVQ`}E?i2ub@(3rc8XARq7hz!fwF*bMw8eI=DK~PbFQT+{OHV&vcozyV6nje~7$nH4 zs577yRWI!RoNo2T{1l+eSbBM3?`UCPdYmsi?agmKxtyhg7#t3Rg0eGEHw)O-zK4fn zc9hDZY6v?iO&{E3%Ez=A$|?#<4a>R#p1vxcgam_(!o0WLR3?b*3v~9oN96)OlMgYz zJW@X%p2aV3{!IkSp=@TC8oFu!EdP&It$=QGG0xR?%zcaWJ#G3EwkvMUfP8L+OF+OVnc+o6y(9f} zIlQp_Y@>JK4WMe=<)Zst7HT~-!M=Yf)-W98rfAuLJ_qQJG?4L!Rw}pXNg(s@vyjG@ zjT4U5w;r!jo4ybiUrX1{+ywVhnzTsw=*BkZ+>QfGWBrF>&j~H_qwEE&!(KTsB0_?L-^5nXDSd-71)>Jk#)92Gdt4t$uumvJ!60Kb4)-r! zB`=`fKl6xx9aicVwuXL(yFKwf(FL_q>vxfst^P(;f$*cSkRXjUc{mjd>uX*r5!!b3 g|LZIH;yI`SlJP@$RdA9Unaaf`fxa+`T>hogIB2 zi1<8uSg@_Y1_0c1+G@&XA-QSV4)=KY-49D5e8Lyn^++*tdwu`nXy?|Blq#Tb%roCDdnuggPp3w|2x}?| zrfJ_f4rS~xMA51R@IVlWjH*x+tzbM1gD`=y0?IGo58aN-ZC&NigKVvjvW_?H|306DSutuRkh09 z@Am4CX;q>C$`AOg6+|5PFmBGr{382A{f1+E zwL`idB50h6?|GGA3+FD?$^eNInXPblwn4Axgdlw)OTf#-bhqp1&Io_I8w`n50ojQk z+%*Yc32X?;BGD~{X!f&Y8+B0nTJ@He44%bj*n)NC_2h6Fr7dgO^|nNNv5G7THKyj9 zu~hR6yD7gz3mu6Md^FC)W3#J6h*ro${VsW}{9a!a&yq=@M%7HOW*x$Verz|+y5b&$ zpdU9!F!$>2Qtg>bU61x8Ld6RFf@v<|Ss1G+{{?|SKoA__e|~d3KOqe*bR~;M zQMCYSQokmyNR^Z9Ta7E#K{5FoShWlz5?ZkzOxB%~df)pjY0H)U(J94MtOvF8^9LG_ zrzuV-Sy7nZ)6dhcMO}zZqmTL>@@&5MxfdXMqmCZ#bdSz)cP++q>Yp-R({KjgRff{i zemaz|bDRJniHx_#VD>j;nk88C5|Lzlhlv5&{N> z03K}wJM`p4rFUE%Q3?rDBWYipkT&7!8Rdf%6H7-}ZZF&OGyLU{0E+$SI}p^!@x)?0 z%RIW@+dduq!Ze$VwcTx*QuL0p&!L=t8w_vQ8vEC_?`^g=C7KUnS1btt|*TiWc zRun)~+w|dbx#V_dv^>4`e3uZc4<> z_)kCF@)3|kxUo3s)k|GMG^JqeE#$ba}4C3DV*z9NAd)T#*VTMYOs@ihDl)Hbb$<7)hDD(e4+mU zND={PvvdsHaDNQ2qF_n+6fe{X(foNtK`$wpB7h&Aun@b1L@QtC`DgCjeH)wJhf`DN z6TQ4|yb8`dGbqu*d_m>bv$_hRv{?=H^-^DONDnO(n-a^55 za<4Qk3DL5-#4x+pr%C2}xj%ncNIUISCg4vhgUJQ}6I2CqT!(;?nmN=oCPWMT1Ek|N zLxLB$H1JJ95a>Hf21kl3m7$ru%o13sMBJg`E)93D=y=-NKb8i4C9zT|I2HO1duLi> zNg^o52{&*ROVk1m>4)n_l(~TKeBN-ZDoqu14qmg%4+LHXGJOwfzm zr0|Y-r);eBdvE$EvE`&_3L_T8@<9~`q`HQLKB{h6{NpJDGjZF0r_)BHD@HIw>utOn z5hw}Z2!Ai7`54a%DN!Y3*SvhyfpR8Qr6Gv1U)p*1>YY$ z%io)D@c0elI-lH);rT+MMJUXvSPo?w)x?gmU56m<^Xhea)l(*Qv_#wy$fzaeA9X9S z8>39dfY=SrF|1gwitJ^nc><#K;?YAfEP!&Bvnemjyx!QM4ixqN8bl0{hxvA% zzRrL7b}(i|5I)UY@Rqod-07A8y_8$n4WW;+SavVfGbC0DW(^K?KrIgl9C`K=J=x`G zZc~T+OTF66!D|ky9A-7VJ)$jqcPQcLzkgaoBAHfGXwD|DmT+Oiq5Uw6qI)SZ;S!)( z+Ss+c=T3tYTX`W1?~Uj?;tEcd1E%pGpApX-MVY3uomk3RpFul{v|il3uzn*J%-_`K z9@|2QzdCM#p)b`4si&f73@^~_{Eo7-)A;tCtot%^LBaWkHoZ9Tm_C*`;xCa5XK~A@ z^qOlkvg3S7tVTc`h&9Zmij&o$QUm+_7$`Tl^J7v%(E-2s@|_GAn(0_}o01XuTWBKC zzpUAL$Z>&0*(99s!n&g9j55X*l*nHqQDRuHkD$QsNEI6ly=d-OUcW`mH66Lm2nkyg z+>;lJ-+8aVNeFZpBLcyeiunh1Hb!QhEcpH`oPrQ{ZxkJJeDbdr!TY3HTb4LcmJ;&l zW&-bQ(C~*X>S~3*R)l}<=wT}pj#C~>U+iY*+(Q|UUv?I$KvA(!NTxX``|(NmmkJi5 zFQa<>&gDq@j#}cQO8J^0ZFl1aq@(CNgow<$3{+um9MmVX7+yfaVc5;(bwzwew|9XxuLvj=G}PSD~AGuM1+<361{ z#LXneV)bdXNoZ6)M=Xa%z{|^)e|0G$BX9^8rX-V@@Ju*3;GKxWH^~aHl`o2Rp={$$ zK$}xr5W}Z}!G&Jt#sjeuPHf^pxjP%&d0dF;IEELwBAduvA`b8(E2}Amv;5GKPEP45 zC&VV<)u^ma*1K(83>O#g*ZvBU14YFBCG%ybS?vFu4V8v12%+{Liblts&UXjlk z1}j-SJPpW?vUK|@%B%byBVL&w@6qU?4t9MPdhGQd&U?Ma@K>w6X2rU(T8h3lMK>uF zYHlpd;E*bJb6&XZ!B5VWsS&yE*k(YDmv#aBS*sJ>QIN^4U+ky5v%+DFA?nMFCS4iU zr1*D`zsc~(NQOUP+NAQrZ4A3M%_)0n97>JX*gX5y=`3o=?}KQx8@B9b<-IxUHP`s# z(Tg*Ki6y8y(TDpDdab2Gdz3SvhBwXy$FOfVKm`Bn%cwK}YBwE{!M@bqa1*CTEGO@& zY9I&`h_hJnrw8yxmM_+`bApqk2oq8WBp0t8j36#=7%gt6Uk2!l0a0ls&tpwmZB z8K)qnuX?+nXKhV@IW5g`>W{Q#i#O-l`MIJ{luX@2`w+npvPF)~#oErJ`D+}r*WjH0 z>CMW((3fPLqNn6_0a;NG^uWss-~Eqc6a!g&@eZ2Y%euD#mU$BN7jAGQ-(4m#)?q!v zrPIifoCs6Q@f#51fxEI?!D38Ocsr-}}U~m|W0R`;m409aR)UeRynaDQO|&*OaQLJT-q% z_mh`HzJ1vi|A261zg3Ku#OQ!FE1Ixd7xhi2M`#h!uIDE z@Zg+FY=;ov{nPn)sdzp#mkQ9W5;N7JNy{v4s0 z(eVw_(BHM)dYyI`f?65pTRe`SUaMDPmifLBUNV2Iensr_=gz-(cX+ObcFv>Tl6T4V z_jC}{5qL7p>8YH8?^UF13U=7JH@4(knfD8MnV zh4w`2w^AM|DS@6+VT)vfU1(gHeN?^sKBLCinZu9orbUh^vaiVvWlI=vD8)-QdF>0& znskDc&`%RCDP+&eMC0rdH@A0Gqn70C+bv$8VUWSA2nvC-@EqUXN~hmlwz+r1_z7Wu zPair(aD*RkQY_EkFnr!ybR%lZ`tmXWWWW`>H(A*3vcRmtG#F{G_RGAX61pPn||v7TRo z{P<$=IEvuCHs$eMhBgX47+TqJl3o!weXU${A>-6p)H%!*Nw~B7YjqI|fpgQi!iKK( zi2a>3?KoOK7hL49yR0i0MTIWcql5<1enlSRe+f zyHM5~TfdhTlHek0@VoN!t}vT$gWjwWS$D7ZR&UKpHb8H*wOIR{=uESIQbWV;Kub7& zY`FhQJgKXWV8mR!d2Ujrhg^j8XK?NZ!8*T*boM%m`tv#UI=F-1;DB7PFBF>o=o1VW ze}5o6a+I>Z?jBNQ<_S1@5;#pd}O@ceES5{XPMhqdx_|OKYd9Jcd^-W%vn8R~e=|thG zAUWTkh|Bxu68a#4oWX&WM@A+eaxfMLhlf47BVo-#V)pO8Hnb*&7!RkH#ilM57WbgX zp=87jT?Lu-avQ~R>;8LkJCEsa;(+ti53UuB-lQ*^l${RJ^)gb%pFNiDtvG*#d5==N zNU%y^sjXTA+ynZ7>J1TzRczAaZhSK(>Y@;*li4fEZCYjKrdI-CRPRd8eyuR_ZSEmt zCEoGBR>r|!Hx!27%TRiXXat6k0xdosUBl?Ac@NKq??;dE@N@1%xg@j*Lq^eCB~Z*k zk?hY;QkE4}h4mx`9#Z;gQ16 z1)Axxwy=~b&uK)#moRx~r(z&b@@@(Go7V|YkWWnVY=`m58+nEdvz5BSFm5mIu}QLv zY-$KiI4-npYW(+eAw-yamv2<0VoE7U$6({xEnq7zJbbW6C|PK%$I9o56Tr($ylw}1 zPc@kLuRNxmsum-K#Kb(7#1gX>zTG}_|112q^{6a^-Nw{DTWyiQaH_FS&r@%?wykEh zWNzSQ4*HhFLd}oD6-m}+I;EIXhf$SM+E3f4+Xa1j551^b-~gtpl;^+s)*t&3Z8(NZ z_i@py7ptUOjC_)qAO1d4>|8QrrSPWDl{{RKe#CH>0`>Fq=~Pe6`sSrK+n6q%iu)Pa zOK!oOih8T}U>}r@b*)ph^e|Ygef}PUy=e={g;c6fMNyABpn)I48Y$5GEGTFez{@9X+sIr zO&f@N2WjV78GNN!#mm4fYZ{(;b3TluUYxI7=Br5Y|E`2@c*JEl?Z2Ks28p~>Qs`!S z<*>J>MD}#H(6(CBc#K!S9U6EDu?%$gg}gMOgUUp>WiMRFh)E?`d|OMl>#s%@vw47c`#{GET?`#X<# zk8veUofk{DKNdDiu*kob5iEjs<%WmuQdJj-BuJoX2Y-9E7gGT`L!;eaJg=B-hP3$* zg-IQuzD%z6sA>^!UomxMTPH1I7rwD;VNRfFbMls82YgyKAN_Y2N^5fQTexX^Z=d9I z{=UOOhH_+JQ*Dkhw_Os$OeE*ocPQCzN<1{9*XJ5(ya?LZ?&6JS=boui#`(F}GyI=I zS-&l>#ZSs)yK{j*Qch}`omWCqsx_QHl-JhMc+S-J6T7Pf|H~9x;P`QKPpEE-Op5#)P)r6m zz$!-D=&~%LxD>waw4BtePqP_Y@r~nf8T!^A90KlAH}70M=Iyx{w-Wx5sXn=jb#Fl#X&%$SF?SuPgDchvd#`w z92|bTxSol{{*mC>Sq!@Z%`gCbBQYrA(DaT_dZuuNgNJ$2^iE_NRIX@<2d^~BHZCE} z&ifI}xi4%9;2tqCX}R=yU8Np81ADb+Bwr;=@e5h=De z%Li9zW{F%9Rjz85cMo)+pcEQYMUSZG;tr@$Lsn@Sy*St^hiR6nz%$CV0)@oKGh98L zUs%Rv0?8M*g|-LFH;gPJ@2<$$rA-X_du9tH-BH^e>eooCe!FxyL%lR2ld;&l>pZZ! z|F++wI{v{>j`QJcI*>@D(Q^C`H`$Vs=*@Ww7uO7x8pf{b z2k;9%A}z+8Hpzp3DH~dn;+1*d(?;o^97ayfu5L}w@S|J&`iXBIaRBsk&_^HGgz4Cxy8M z1*$y7#5Pu|w~T#NJubnTnwshq;=(V1<70#XfbER9xHxtBU>CerTI%ZnKWK)HDXBwV zb~U#sPov7{ecAQNKR@2yNEFq^8?qK{lTUt4l4jD)5$XH=oByM+G&>vFum+N3#1p^z z7Oe|R zA63otd+>cJ;?mOB?B=%2=Cwn53hm!hiY%P+yqvqb{lN2n%t8)}@I*5tnE-5zj?!Y2ne5Asv^nRJa|#zAgxdHpSU`K5z|h=n1M{cd-qtSoGBmM{|vC z=vZCHDBBBiQ@6J_HlQL?f(_=>r%LjO#D|LgNm|2IZh5fJpP5y^nr&>mNDIgwoGu5T zD3#dH2}kuuekN*&UflSqOIklTuw!YSg_D(4-QK=9a`oZ8t&+E6G}?qztHAl6Dne2- zH;gPQ(%ntkKDQMuMX$<(15@(9*13J<9o8Ge`1fq9<;!rjJWaJ;4@w;CszG`lpZ3)U zky{U?_~{bx@z?hndeDMtQ>%2@cQ&5=`bxJbrAjQQliMnUdk!Q$+stAZagn%-`D#Au z@D@?Q)XG{zR5P+})GCL_p2;6M>e!#8nP1I_i^Iq;X69@eHhf=7Kt+!(+1jy#@$H?s zi$h5;09zl$(RSYsBz59CY7tkEg2jn5?vcJm1Ct3C_u8~=MfWRT)pcCvYdIDS9O+SxmpxN#|_9=@L3fKkrTIgjRj;p?DwN`L*C;dNrZdqpmMyf!^j<(AFGw!$x3Z8ei z0IR;KxU8((Wt_R`chR_QlSD(usNmm^tN@OePW3#SEHSTFJSoq!lwY&}68Y7RB~d_J z1Xrd?#B27OaVLPl<_^|odVZtU?56f%^sA|-j7R;&1Hm8{GksNDCuYj9vALA-DBJ*9 zKngdyneBPAqE0DE&6~4R#VtR+z5QMPLma+9j>3&NkGXpCoUD9<-GxPd8u zwIp*Q2gc?u{&M>u`e(VI(B4|Vu4IlQh#RFL#l!b{PzP9cGBvV>rcU#ixC$t`7XFcY z=O$V4ut!AI5FU^9Ft2T+=evBAdtbMq+p@)2LOuvF+xcc=R#iMVz@mvhmcmldY>ZA* w{*D}15G#2!dD8c5V0w~Yod4U`@ckA4|}Qu&;S4c diff --git a/src/branding/samegame/Block.qml b/src/branding/samegame/Block.qml deleted file mode 100644 index 81bdd67ea..000000000 --- a/src/branding/samegame/Block.qml +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 - -Item { - id: block - - property int type: 0 - - Image { - id: img - - anchors.fill: parent - source: { - if (type == 0) - return "redStone.png"; - else if (type == 1) - return "blueStone.png"; - else - return "greenStone.png"; - } - } -} -//![0] diff --git a/src/branding/samegame/Button.qml b/src/branding/samegame/Button.qml deleted file mode 100644 index 77921772d..000000000 --- a/src/branding/samegame/Button.qml +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - id: container - - property string text: "Button" - - signal clicked - - width: buttonLabel.width + 20; height: buttonLabel.height + 5 - border { width: 1; color: Qt.darker(activePalette.button) } - antialiasing: true - radius: 8 - - // color the button with a gradient - gradient: Gradient { - GradientStop { - position: 0.0 - color: { - if (mouseArea.pressed) - return activePalette.dark - else - return activePalette.light - } - } - GradientStop { position: 1.0; color: activePalette.button } - } - - MouseArea { - id: mouseArea - anchors.fill: parent - onClicked: container.clicked(); - } - - Text { - id: buttonLabel - anchors.centerIn: container - color: activePalette.buttonText - text: container.text - } -} diff --git a/src/branding/samegame/Dialog.qml b/src/branding/samegame/Dialog.qml deleted file mode 100644 index 94e708f9c..000000000 --- a/src/branding/samegame/Dialog.qml +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 - -Rectangle { - id: container - - function show(text) { - dialogText.text = text; - container.opacity = 1; - } - - function hide() { - container.opacity = 0; - } - - width: dialogText.width + 20 - height: dialogText.height + 20 - opacity: 0 - - Text { - id: dialogText - anchors.centerIn: parent - text: "" - } - - MouseArea { - anchors.fill: parent - onClicked: hide(); - } -} -//![0] diff --git a/src/branding/samegame/background.jpg b/src/branding/samegame/background.jpg deleted file mode 100644 index 903d395c8d04c9c1f3ceec8e38aadaccf073ff01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36473 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 S~YJ6cAChryNrla?vKGSWGwlkT#oISh*m6) zKxH2AW5LOri3Jq*PeD&!PEZ}9*BkZiGPEPB zzu|S&jrjxSi>$u2IfuNXLd*VptS-2~vQ=7h1WC7RrCV2A9?`J}gZEx2rYf}|6@4+j zlXZ$AL0#&vS{Wj8GU|tI%|3#(zDB~2GOT>m_9B!t2vrR!8K#6?Ap6{{v2@fMj*{!Xa3UhKoWN33m^qh2{idau*iknGke=Ew!& z%NCuf(wqKs*`UU(hkbZ1qHBBgen49x6a+IbEJLAk*JwES zlqO-=SmFfW8N07oMeR)kvfUHxvs2SSLVn9uF&$sxgXqB06;Xvkh0a*t!a?Vr`Yc>o zej*T*Y#v$rswM8sNY;wl9@4gVo9W}ZGLYEOxo;<{8;ujp3(mh{*(54D$08PCY54;L z=tySoH%Hd$%2(y@*0F`3t-(zm_G4MUB*YYjn|vIoGCvH&E2B9%Dt0BXSa_9nK)x4y9E(xDKg31i7%{1Dx&$` z3E%_&zT*ysF@Gm5jfuL9w59htiep@P*hmR`>)Ln4$KXWDrjPBwm|0!Hg?>;1N7W9p z@joC%zlzc1kdFRRrMMlVwu|IaRtU6E;IA$Ree(Tb8FN?Bza~Img2yCxgM1sRS}ceh zNMZ{@ylbix8HKB8HFIa>dO^rq%v$|}#y6G#%*-@geN;Qowzmr=;)un0^=(7jv_94x z77vS%11%xs>2c5=yW@xIHpI4Xy9=YhKBd}DhYo5rpZ#O(>y?xo9Dab_^&4f|+qXM2 zAZ0t&={dtME3Z@FAu2WaV%Nikuy@GX=g-VntvpAEs^+W9j!dHGr9G?zVTOUiaz34) zZDNzf<@LR3&J{!He0MHZpaP7ont-Ca*#*vcz5*lR;`X64howilmI9Us=9l8fjtu33ID*N!5=h{M` zI34pp(b@0R;J?T!`cc;fo#Pf`9HZhkYx;$<;?aGKP(K)=TXxQl!5(*@HCj5&JI7MO zk_>+0Il1Cm3B`Ysywoj$Z$CmoGrs3lPCkXwa3V=DJ%~ZTa&)69q?;>X&El5G9qTt& zkD@&OR(!VRdXF4Pp`zuh;y7?}d7@bTJwm6C51cHR`CJK?7e#c7s_B-K^&84z?OsX9 zRt!w^ms=je!)F->W2*Vku1e`;)xy+KQZ zmS3p>NzQO8S!OIbU*t}i8nTt3$~-ohE=r8>uOC{mO*&zMRCy6H6z#oMZ+VdZrnrZ*VvD8g7+wD$=fGrotqBe!ES5|er zFdwi@`l48Lg^w2&uU;u^u^%Tq2dh%_rN;s zHY5w?qq8JpHxpLnIo7Zxjl-+%&SO>Ed{D8cc04t0tJZ7ebzzFU_(Iw54h=5+?lG5N z=T|{-Z)~U5MW*cH2E?qf8~1eYuCPf0bBMjT^yS$qe4~ODGH%Br82iLrce)2{tlNXL z6S2mbgj+-G1ex>WJ}%g%$_kV#_nxuQw`mE{36U#>^{~IV4yj z+n6d4jA1S!C}dF7@=Oqngu;Vndk0*3d=SN=Gcl2Zu&F>ehQ-Ffk~+PyIH5F@xL1Gm zNZgx7bSi@}AjUQ-C>NRkt!tl1R7Yi(kF(8ev7NzdS&9MCd7Oxig4hM}fze1$+%~1k3QT+{wvfkcJ z^-7@wsCL@&JUeZ~j7uNM+@eD}tr=F1`NkcKlXL$AN9#v6P#Eg8;eaEKZI=g)h-|hN zC7@~&3DajXL9KLXYd@q*n(cYvT;^y&2!-r_lDk?od^UE-v?{4jx%kUbSj?FcO*IDhA7>rhblfy{9Zx)vZt+rrvNapI6-{ z7Zwxz4^rf-SBV!2iy>Zo(w43jfwc0ZR-P-a#Nh+;(R%W-r;MMPE!NyH@`p!*yGe}r z>Zg&OhDHq?x>}GUsbyfdkbd3{pD&HQuxNsq)sOttf+a1*XynYdhfB-+__2Y5FN6fz zehXN|yhj_onD2?KiK#4&dAF!=r)o=Q8yZul?~76f!yQzHY~;ZqX(I`WHcL_8#u{+B z)Z){mqqA;{*R%#M*(ME-wT+G~DqkTCBH$KLKeV4+Oh)a8!#%=>hUib1!Ih&H#iD;o z5()>0_y$)m<}mhq4z65aIE_&vtD(s>|5#F=F6!7qw7iCpip>Wp$awz5%fWNT>xldr z>f``4uST+`)W%^}jKwn+ZA&PjFvT#w!$f^-QJ!d_v$!V-NsvLYkm`9r zS{Cp?s_RpxpaF}va&bAP4pE5F$f0EsRy@Z8J?ES3vA-{LUpTjb)&j>|^EbxBa1PpX z7lLn((z1wM1$jEnA8}2Qd$v1yz?7z)XWi0#`%RH7%Xu&>-0b{a&w%PhteDpy8e6C? zG);18{O_10&-(yN73h(j#yT5JHPQ!?o@)Va9*47szz<$EO7#mrT1tMNC zAJ+S=HzT#<^%ij9BEdG=Q$%O>&D5QzuNZIQf1SrKuelwruzp}RUtCdx@qFK~(5%ix z24DnLX2+^xK+A&+Rr{4`qd)C9yi|g;Ut6uuDtUQAJwk@Ap)i~a7x?qf+N)T8SHAX? z$usCHBO+e|)1hvm?l++OYg9dD;X(EzT0NV51Hy3QYfYb$)ofEAoi#=|mHLx*4tX!D+=XO)t?rKM&cL*hX-7i7oya1enRqMVSnYDCURqTy zMpc=7SI%dJ)b4wwyPk6GaAgGTaBfB)m@L!6gpD<0bCn7HRwKW?e(`v2$T3M#o&IBu zuur0IvU!L)@0EqCgA(2gzTux&%0zTL_{HP8c6 zGF<7fSTystUd}bNqphc%x#zMkb6{F6!7_n2ZMs7{TnC+|-B7jpsq5FitnbE#KIK=M zefdC7d{2@LD^r25v*`uj7sU&@nVzJfg_yV`@jWku01L#E#v`y2;s z6~lWfUTWYw;?AWLxRYHVMV~XB(mI=NiL1G0Np&XOOGv$QTC^NZys)LX3ZP4auIMe( zPscpdEfCGPAk~TU;OcqOML(B$f3bSDd>-+AH_yfNrKlHqMYJqf(i7=v!xJg%D3x#J zDK*l`M)D4KpBb=RXS%f!Eq&7$I33^U)I2~4h<_{UM2o&LcAtGUUyDu^rBOf6f|I2T zWZNKl)zmbi^mEYLT#(eLkG5IdTLV!nWx>6hUX`wX+*g|@C{6I_SV(7bOF(_h6QLkQ zi)hDEl-0wVUeW}gzWKAsYW}?-sn$6d=5oO4Oao(5A{YT)0gmuuvhu2MuNHRB-N=CqQxbI72EJu z7y06$SMDKy#QtO7X(P|Yy`}C>1$Tw+@EBSq;^zhXjs}y_o6DY3d%l00p~5@yi^`;K z7F(WMmbs!(ut1Z*H_sz4<<_=CqF#<2PrzF^cxF0?H59F^g^eju?)-C0C89U0wE1R$lP)=tTLk)!TjaOcj`{@2O}J%J!{l z|1V>klikYc|G3xxF}8I~m2SFg2ebLwm#SNT{9np8kZyDa{F+wSB%VKqZ;Sk-C+=@$ zt{FA1gwJ}pzW>afbufjn4ND?6NvFITRzYDC|xfYw>R|TvUJ2_Hy0t)W!rSIt+{vq6A zJr|X-`*3gGfUmG={!zoLb}&^<#Xt2ruYo(AB=j5ZKJ3tH2#ivSv2spUw6JU3dL{aSFFGQza=ch)(x&)KW&#uV^q$=~7#Q@(HB#5rbCD?TwX)Ws*nclx zl73gFEQI@*iD**LRnW{z>?lkR|*S$t6cKw0;nzFD?XXv8ZqpDYul^^QLYs1t6f!{zM zm=D|jIp)Zp5eq0$6eMJ-lJ#2&tfY7hlq%DX@lpP6S0u$w`Cfb6>6I;>K+~X6k;5jy zJMz^YTSpCNm%`v>mg3T$q~6b9BUZr)AoX0_`(L$~xAAQ9;|(+bQZl4WS%Ik-)Gsdbcem6gkCX+Aw_94$=gUlmS#!*!v zM&QIv-nZ=b7fd2s%H+>PGSZ1vD-uB+88ekt*zCxBTx(QYu3VBJIA z<}qkt?1VUmu=##Jb7a@&9`Hz}E`Wd8iMP_2eqC4A9`Q&QvDD%IbR}A|Rvi#rb2HWA z%A8P5?{8I>>b43eng6!^Sv9zl^!6IeGF!nrAvVOPm2~H-)=(>N;t4>)YG6=?%~SQ2 zmnwP01#tf!QmkO1r2`X6Fiw(~wloK<)Veq9p-qPne@g!FnR*u(w*$Vv%;Zx_NF)m{ zX~1tLtcgVgrd9{ab~5l#xW0xW^i>O~1SaSr9R0KUcl77kuFTnsnTD%L`QR#MK@eG( zpQLX?jIm}6Ij6@4b;;jS3rq__X2>pmwF^|xS3yR`1-01K&X^wJp3wBkac=4Z_XM?m zladmDC6$@f?^|7#*2C_=UrZ=ZiwZyl!1YE{mo*VRZBRF+Z$hhGy*+>KUP|;+r-t=& za-9B_w!BFSz_0sw{Y!@Yoa2rO+*pOe{kISSy@V4$J-Ft&v{yb!wf})BG57=!hRjwB zQq{+S>RXSdO~qT0c3f65dZ~Sf^e(Qz*pK7`q2-kHzzP#ooq$t9CC@VnPaidB)%y>tJEsqk;6)Xj-3CQDaY`57T7k=GW9+_amntl&Td%opF#- z`IE*#VXp8Em|Jg~d{?iQChq`;u2kdezpN3x8z?!h0QvGy*2p9qB|^fv@auH>zUkj{ zKQ#z3j(M8f`%g#wxRVR-11@ao#7o86mg>+Z_I=#xy{O3Z9mCaHf|ugblVyxr_G?ht z$+B{ZfaSH*L$1|m%znmBOySce%O&2oJ1$z#DvlF?m)1V8K`1fIDC69L^GCb2$=j!z zDd*2uig1+xEdXHe(YKf1!5~F!fbgpy{Oer6ke!xf7y@a0%^N?gAwAP_(ssb&7yqK$?@wG$g~vuP#(|_Pjs{N z-+V{J&#pcAAL0p}B6-UUXu0i_G7XfxrXFSBnep>!mAvQSIL=X{{yl%yf@{d#Mi=|! zCyy8HZa2D&*>up)#>)CrWCDdF;0h6?^S+c!R)cyHiB7#ceyS_9ceks)%eYNNn0_zZ zK}CeR>F=`2crGYhiBe}J9M@Q@aw|$iiFp=givRkNL*0QOErRXuNa~|LJM)~=XS%r zQv!;DQ7+>1)L2!$1F+((V_?h0qN}U z^)|3^M?d{)#f-mysN&+?a`nR(p1Vv`P%Q6^LEO)XqAFONQ5 zUW(-{Qc6}Xe7esQWzqm-45(kj;q?lWmKJ+m?$~`)5VK7#2~}@dXI$M10h9Q5fuu@G zphPv}upI;i9Bo7FsqH}}vte-&740r{j9cq;8@&GI+@tbJk@Xn+G|z*=wcEWzGd@TI zCOj^=TG=iV&e6T5FG>yg)jy{th+k+RnABX4TVm5D{@&YDvrE?nrbMo+^=So1xyT6> zE{(?0idf#OmEGCP@0<&fRsw2m{UNFa;3`B)EAVSG%dGV5Bg0t7kiEMW^k>KO>9sAp z=WGZwj!ZZLX~zT_EpaN$C&eeq@dni(v6NvLr;rO|eKq`E?&S?m8IwX&L>TAg_ecjk z;U`o7x|Ch|gTsQ4QhAFm$jHm7jZWdqNgu^jTjGa*b>qs_SHk1e9AmGIw2;F16vUps zkhBpAkCPE&`wGlbtWTX|BuqM@XA`bI_qm!Db(G8%MyQ)Lh!6R5u-2sMh$aV~eO+03y@yc^yBnKuBwU^JC>3>>$jCNkXvdEA2NXW_ z^e%86$_EqB;u8Sr&Y<%nc7o5WBTW29Ds{bhA}Y9lW&SWaxLdy7Y9>c)u1tF+nL?vo zMcHng0Qlz9r=E1m(~Oqj3&LgQ%c@JY(UCSJj_JVm!RR2`83{4TFL0p-*qAsc1p?lq zM-3;3t605K$U>XZ!#oI>WXA?$Kd<91(`}b{5BPL~B&P z%X6#k(~|WjBP4zA$z5ppCJgNX`*u^5=i3WK&K& zF`#hqvQOy;h##212U02e>=NrQL42)EKn;c0@JcO_1)j-h@dhOF);urqUgZYP0A{Hg zv>jQyi+o~;uhH_2^B&r8(O@B;{vf~AR8v*2Szf!bkt5&#WSu}F%>!d>~$V{4qvW8s+l$JFg5%mv+y|>;j0P`s}I{P zr#aG0Mc>{owT#z&_(mrnM{1YD!d$uld9F}oQ-NLKr=Be=o|P@8;3DX9#>!6PAlOc~ z<~@tr3|v&u;`0{r&vIMN@k=h3Tmwh*cYz#^)jn7Hy+ZD1uD(TNR>>TFyKP@^9rGG9 zj7EDqkbr7khp7}V!hWJyGtGRk*(RI~r)Cj1hbF&2(JAx>e|}O=Iwa?|(sREB!Bi>V z;!ZI(XzRIa3S1wG6}jZ(3y2M>%7fpb$;TyZDnpVgc~A1~;T1WM^1v9sYLC`A##QTd zB}3ObXWoO<=E0`Km~YOgjYz_l$!Nl#hoDK3Z4;g&fxp99v&NJ_BN>rDqMp><(~L8i zPgDV6MA^4g=lq6p#5TNM$D;&cBHsCYhsuYQr1;lb*XNBKeo1IHR>ucUqTedKd1dh@ zsX28ZBv7S)G1H1>D3^n`GrMYEA-=PlygN{VX-!BvZ6zB`PELZ)dR0=byO45u@K$+MX00% z7J&h^A`NZMb|^$SCBPG+ieUpZCEof@uGj;+dtR_DYLfu?&8ds$TTmobBVukT-l9&BqI+;eb zu8Aq>^{0UzTE&|3{4M{Gc0!+T*+sltl6}Oc&aQRolEGiV^-PmOiz-h(cQylBvCchJ z)v$`;*Ew$8N>8Exe8p2)Cp#5mJLnYRT#8L_9&%PXu)p{lz&3;j>Cbmq90^&ivyF^HLvHf2VaT zoeBQppXylP`Zy>~dIbI7^i!3EM-QqZCWm;qHVKn8gZEZ+*=%h^q5S;({%K)& zZnC@l6tb^D_WtaK@dow}!>~ypRVUQ>>hb0&U}HXcK8q%Q0`TMf;AzL7>Tr~A;y0OB zCpHtgU~;QGZ9pO>uQccDUaoYwV{Bv~bHVea0*^BL)>;!%_C>E>5CTzwY?jcH6K`D< zZ}F=2jX6p^CFFeBrBy^kV6zZhdQ><3325hY;|e!Pr)C{~}c? z3RqYf5YS#Cyf*ymymtK3#a?3xuEoo!+n+_sQIWDDYg()`xzVX(g&Jz$nyH7bD}{w! z?f$e6;ZmM6r32|R_Xq3;QuA zoAOg#WYKsg7UVQ~USEBqj0(ZR*ObD|Y$E7u{ z9yvF^{$wX0!jI>ii^2YWIwNIS{AcYKmtUknEn%UD&HT_fnn^mlJVNpHkBLNq9`U8A z!2ySgChHtAC{;Juqw&KZ2XxDNt$-a>SICjjR9MoS7q9d$}aa%S_sXMWAT-` z+Hy@^A;wq=QZM&UG^K8+-`ah|*9yLvZOA*E21k0h=F*d%k`oJ+Ow+55m`oY7=q7CFpON*sI7w z(Dcn?7svMFbZ=EupIY3M%see#Uo zkYeIaL#3~~Z#WtyRSNsoo->6URsPv+aBhs<&ZOS|ANw-vpxw43rzxkPOr=lMU=6}( zV~hS|u9^u4tNP$jMprolF~Tpw)6Q`W0_a~v_sMy6LXt4Se+YP9U!kF0IK`$p*QORt zd_KD&){~Dwas*`<6i6-;=TD|Y%V~Ppuhi}vWB+IwO^>B(q;<-6FNxCr520q4-^&1qpX0E6aXgc1h4^J`^a73jQdST3GPuL z)W?bvO<$Cc-Mf3T;suc^$HkP{N;n`9R`zgqXlF!!oX&-hWRrO{E5x$18kSv%Hvg2^ z8jTjXh9LNBF*$yaUtCMKpVWzkUz=beqtPmIr+}qXv6-RYj-3UQ2wn@y#k&ukHFjsT zKJ8mpkZQi6oUVtAg*fQ`1Yeby2f;Xi%|T0i`-nFRoB#*_9*K4xTGtw>>viDD87BGH zCHeW7y?Ep2KW87ux7QMWGh2S5HF1rjMX%UIj)6BModX?#`tFV#uyDFpl(x$Wpso%5 z`Tp{y{CvD?#7e$fqe5bgcY*Wo)(WUvbIx^QY2w#ss+u*sXnYe3h4 z-Uc)S`kSfKA*>95(|Fv^-1*~5$eRr~$bq5L#jkq7K`&KB3LiQr_aRSzMt?M-%1rLm zx$-AUdY_(6Ju|z{IK@e=ozZLJTQJFgS5d*~FFj$P!2PK(pcqj)nzb3@e^g7%-F>Kg z(?epND~3`R8`H(hEZ_?F*XJ|k(v>I>7QF1qK!cFLrd+kw zNZ6Vq8`TZ2##n#Uf4&@VI^jzIZyb+$K4(|EH3E)jMJm?*cKLO)5&HTCl;9ynP>vt_ z8$}3`Qba_AJo2#JtXdy#sS`pNZ;(>S{tdcQx{M+R-Zd1Z&7n3aPjdZ>eC!qCd|%ZG zK=?{_XBOtMP|7Q#(@Ph)cD-Ny*{Ef&8-d8GedW7@4Fl`;ljE)ROyMO57?V?&ip49i z5>z2V986HJzgZJDuo>xf0>Ebam9j~sV7G{0yNYASR8j1L4}{LfXXF*U6N}*kb=Y0d z%(X_>iSBR5*X4(fdXdu^0SyC9K%>lv$s$S@Cg@^J^ z?Gn*FkD>?GEWP9E-JRh1O)PIV2oOTaZ`6Kny6-+lTidRe{MYPd&d+1czGT$s_+I1y z7l72IUR1RQ>wB?uTJfk?y=toDWpCQOHR(A)k&s&i6ZtFjVlcJfXE}r?YeYWQ_J_V8 zL^9)Nx4CIG-~=EF$js~9taUfiH3yh$#@&Z0QB<)uiZpJZ=fwvj6U!4dquQaP9wtOV zwyAu^=jxSll)On~KD*lmDntkR3RwWwHvVP*QermMxqdiMXB$;xH{Ft|zGUk)U|BC3 zc9bm7gGkhA`~?G2Le-{ffS01@`rq`wudz0EjxM>B^12Rv?TJpNYT^C5_@r>@qs#JA zVW>YuG1j=doGPS`5sCP24nK#ELT}>Ke4Gh@|#!Sa7p3$>o4x!@pK5N9?u0esoW9NoWL04lK zvO6rp>JZ`OdyzyBy9hcU0Pu4gb3!F}M6tRwZt&R7h2_B{%Pc?a z5gv=%#F`rW&@3Sl4*^)R@II$G&w*u^hvM)sz?TP&yhjL=zeJ^WvbM1g!QhXQ9WXP& zFps++Jm0L%p(6OF@*ZJ^B`No9x7>dIR%3fugWw+(#Mo8VxbV-R=k%lkaA=ntbo%?R`qlDmNl;mUNo*Y#2 zZD)wCf|DEm&p+?^OUfLFB|C7ygTokZh>7kd^JDuwndf-kZRY7aa{XFe_saQ%nFinH zc7yu(@16buoO`y9x$2f)r$3e#g6&^$)t_Lq0>0(=A712WK9)n%Vmf!?9~7@nzU<&L z>~{Vc%1QE0N8+vqIBmO#5SLQNc*)5B02iL0;samwOkxl31F*v>aSI&A3MaAd9I)yw z0=)&}{3d6_ptND)SzVwe_Ljqx=fKha#rfYD(wq!pL97@SW?RNz4eiKK>aql#KSk%< z;2`jS_5%l9m@};C;RtTXtHdfEt$(BQc^`suJniuj>*AB?Xeagqk2Z|{Gyv^kD_61; zfPDq#ZVBin!M=~&Lku(K8p;Siov7{X=DCPwwLWS#s9=6p|yffIaF&O`Q5nvs$H`7E*sbK3=mKYS+1 zmV6Ur&JJF7E}|MF;N)AkVd6k&F3>Ab(r&FTN@ShT7@Eli7!)ME1m#1mb!S;Mc_G_$=`JDKk58G&b9yja? zoDD^$;uOY}PcBN7DeBQ&B}I1gOM^PUrIElI*$UWcPV6`W$;6ug z*P#28H*$pC;7DE{4!Ir}j|1QJ9KmRujy*&Xk4@|$9ll$!M*-J<;M*|OfgQo_9@pvn z;r)IA;7pTw&G@EpHL~9)z<9z)LA}q3G;Ij8e}G?nI^)gm*p+={`eVq$56t@2=%tB| zBQb1#WzLJCF)yiU$}IVlfQUg0Yw8W#A_K+?Mc5P11Ra8Wp^&2qGM?pqPtkozk5SGp zbDh4E1bdd))9mu1E-68-AKd={`zL~Wlzqj75FCGY#tA(z=%ecoqCQHoi7_P36Jz0* zoH~39&jZ65M<7Dud5&=J)RXdJu^8`Qo$^2+_T8EP0O{};VTXesh6O)y`@g)_v8~yMJ()bURLLp8?;Qit-o`2W6Fo>`jh=c_`NOB?sG4q!_hf;!d}N`J8SKT zHV8+yHS-YEe16t3B$H(L9Hr8C`CbloLt+coW{{mA#{(eTZ& zJwpyd4I-X@g5~CpBCJJ$c&$SEV-2Y-f8XUmsVb7;fF|$0uX#fN^!hQ zegSZjNk4+OPl(TFCmjT~IrIFTn1BNgj!1B^_sIxBkJLl;@!||bc#bo>I2dvnd=J(f z);Qh<-vYb113PR>c}v{eXX}H+c!T0baY$#28rSpkd=g1MLyp6i_h-bDg6_Dd=KlZ* ztM>dr{{WXnL-2oVTWz-?h8`4nh~$17471=0!g$3a#q0Ss4k9nIS?)+f_b!$^#2v%p zM31QYo2+~V;NfTL)_fu-sn=#nB$8*v90$*KNt|VtSs-nv4pPoNM;ZJep2P7Jzf#oO zko-2+kYR>6mxK^!KKVEpc?|`CcN~A)H;3use+C*2~uzD3g8@7?w%!ch&YlJlI)eq3#3jf8g!?aQ^@X z7WsLAlSkk^zK<`%cx|@Z4)8LMJcEXO2a+L%CsrxVZvOxb6z@CDc~6dWco5=vFi%mC zcp(rXLGvOXQ4W9M3S-B`A8gLc7Gg=tbGaemg5qP?O8Hr5@NXH^{{RPHyYzwbP+nF6 z41LP3zsfycP=^D=aGVhHu)~ov5!OCZ%2S_wURTe+;5&yA75OJc##sfN633HVrJuo{`ODHi5b+TmaGV@G4Yt^}EwTEZ208UUr^UK3wDy*H z7<~a>$h}GZNq@K_%z5BD<|Q9+hXD!Sd5?vefoDU(~-@GmC+0E=!0HLZBqaEq6Gt!rBGg1R56F~`sTvOMx5 zkn_uU;W#-Qw}w^u0pVs@aX>qE;W#JE0em7j4?y7R;D_&aaB}DMj@~bhfew?2hmb-X z40vCPf3G3=_y)18c*wALem*&W@thtwc}3-UMdOwkCxMf$4jW}%IeM7(EPcv-#(TZw z{uYct@%U4-siHUg<1^X3@MJd~=idh}haVCSi#TsDl*A{4`uuyn{dghMueisV{FZd1 z9L=c{8IR&)9zmn$=JP-K4;-c1^oWmvJJln;6X^PYW z$Idh}g))XDUxC>&XRRFOFdnsXk!A`x!G2^}K=1U05=W+~N~i^#tqC}Kf=$F>?;-b9 x;#>sG^vSa#^bTibzjz6KM#AK@$qyVr5tJLNayIR{jKl6thJ74`Ah8o z60nTf43U6XOKNK#e&ivZf9?waY;0_=y!hSM9(wuZw@?1r=e~5t()5T5%xX9K-QWAf zxrZM<{l3$l zeC(-ze&$zRedYYe&E&`KyXVg1tEoB#6P+yDBF=YDYN)NRlF!efvA$%i)>vD^-BKEC#AHy>O5)aK^!;nSz@=IkS9c;L*P+;PV(tgS6$23N0+ zIe&hGm;dK&o`3!vufFmcA=qn8SV`XJP2o4ZZ z&crs;w3(*KG||X7%E2;g>qiOYVMe38J{@lVdd}4$6aNj7kP*FMh@JSmdYHWfAS>zW zU#Tp8_SlIt@>6FY;r<8j=E(7N21^5qGT?&)5wbx_MiVntotRdM$t*ISCdSiD%#LEP zjD}UlV`VbB`Y3657Ps{Gh-?2}fR?WOrLg*2hmPLMUH6^g_ESI3@}U)cDDc7IyhBtw zxZJ_jb!J*+CbP(B5*aRxSpy~o$p(xkLN%S7vUKHMaZCSzxOgpc*M^gD*FJm#Y4}-e z@OZg;7bkANn_E9}D@&`(xDZh95T_tYW)5f6jWMkglUZUkjSMF(!*S&5q-8YiY))$< znxl!H$rNHeIxRLiggfxH{XFfHg928cv6TNt%RAia(K|SL%Lxt~T*egv4GwV*w1+cj z6Erb1YckU+F`6YtlgQOc4>^g9XOYn~GMOf3wb3MDRtZg=$?cW1BJFq3;`M#{;NHGu z!D96n5^gR0@~xByk7A)@76spAT$PcK$S%?%R1pSMCIrPf0fU%~rp?Ui$aEH&%o5`& zGpUV9Ys`|6+<;@$otVxNlPWQ(GtqxOo6i*dFTSJ-*RVKScD?)8T8KGzt=M>d$u9S@!yLMC6 zsjuqHw8>0bW7-;35?b+4EF*(;q&-fq-~N=NRH<_w3W>scd8?(l!qERPkO)y^|!RVSc#0X7SUd9ZM&374FM#_`;0l3gj5*#jgeBsg10h=lrAzAl8vS0$rB4D@m z#cVy4kVQci^$wQ}%!p=K&X6490^$dtVU;{RV&X1$2GeX_z9nI>EE*8!x`~3r7akux zJ~({QeWu<)->gl9EM41Qhy@uiQP7O2;yjqSzL|A^U9x6UO#OTw5$`O{Lbqh_sOx7H zMAT40T))y?NJl6-lc8{g;PBqzyx_EJFY^`yU}lJds39t-Dyj*Uei23&+MKbJvFOO! z8AjC*zZ(uO;oyAMDdKhzj_4dPxXxT~9a!NgdPwgT@2|nB$ZktD>mYMBQc_~dI2BaV zwXWOSGoQ&`Q77cSjY_dvAr3G+8s@WBz?&lJlqj8@-l7kkwIVo*9yA1pcir~pR1jSV zvGs+Ljg&Gj3QlAs)Fk+1%J(A z(T@-u!FM}|bAs#v=mcd_R9elbr2Y(SSXOd$WS_|1k({8K5olP@Yh0J?iP#Uo%9g0yVZ4onHc4I@T8qjlFAhv{a5PVlCWl+jO85E8| zsT6%qb-8B!fz@zLw`*7r+_v39oC;!z+|Ed|9ny4TlB@SVZFy$hnPma69lo~Tg?Nkl z{@-p_Z~EJKaMh6xpfsGRGa_x$Molo4+5Njsem`5)aL!?)>eF- z!qJ~A%0dT&z+m7hOW%Rb`(kf2?B=1-Z?(jfY1%|xH&oM#$#BSUdy^|0-)HB0PyYGj z!nb}O2n&B@To+`wk3H9)v7y&(&450V)AQeU9mJM3%6@)UctU^8QMQ$UJz}J z)OAZWtC&v4jIQi(d25qP@4h;|^wO9AaCqUl&jV#IB`*Np(4h981z-Ry&#LBdJ^bH| zm3;9H5xK?u@^K%6cxN~@RB~UDiJTKLwlqykT{p~T71POt(QwGl_70mrc!!HGKmFpy z3t#%v;pXe#1eSLH0P4=YKLq(f28$l@K;5*fS1)h1Y3KE~@|CwoO*K7~@GCekU|3G1 z7>R95RoBdB6_fFl;c&#ItxH@u|9XDsyHCCQ{pY^;6l>$lx|bnWWe}w8+BdT z=*s1E`Qp2?t#{6C>|FTXo8!wDUap(;p1}^?xB^@SM!*=Tdf>PSDIZ|4oErpI`f;!a zJ>s1ncghJBJ)u4v74@qI0W-2$onteKZL^g#?`L=)*aWtFuwf512Btk+yN7I90pqj3JkICVdEZVdjV{2Yt}=}tu30nVTkv(nnj!Qu?W1h zV0NVkpKt7K4>8`y)P8xlH}`G`xHsIg$EsV%(|N9z{d=)cbn~lzy=r@tJ|I72Z13y;06xb|fg~w+umAu607*qoM6N<$g1PYW4FCWD diff --git a/src/branding/samegame/branding.desc b/src/branding/samegame/branding.desc deleted file mode 100644 index b280e3df3..000000000 --- a/src/branding/samegame/branding.desc +++ /dev/null @@ -1,76 +0,0 @@ ---- -componentName: samegame - -# This selects between different welcome texts. When false, uses -# the traditional "Welcome to the %1 installer.", and when true, -# uses "Welcome to the Calamares installer for %1." This allows -# to distinguish this installer from other installers for the -# same distribution. -welcomeStyleCalamares: false - -# 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 - version: 2018.1 LTS - shortVersion: 2018.1 - versionedName: Generic GNU/Linux 2018.1 LTS "Tasseled Tambourine" - shortVersionedName: Generic 2018.1 - bootloaderEntryName: Generic - productUrl: https://calamares.io/ - supportUrl: https://github.com/calamares/calamares/issues - knownIssuesUrl: https://calamares.io/about/ - releaseNotesUrl: https://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: "squidball.png" - productIcon: "squidball.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: "samegame.qml" - -# Colors for text and background components. -# -# - sidebarBackground is the background of the sidebar -# - sidebarText is the (foreground) text color -# - sidebarTextHighlight sets the background of the selected (current) step. -# Optional, and defaults to the application palette. -# - sidebarSelect is the text color of the selected step. -# -style: - sidebarBackground: "#292F34" - sidebarText: "#FFFFFF" - sidebarTextSelect: "#292F34" - sidebarTextHighlight: "#D35400" diff --git a/src/branding/samegame/greenStar.png b/src/branding/samegame/greenStar.png deleted file mode 100644 index 38429749b8bd4882bbf391a0010d796cd4e2c7fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`F`h1tAr_~T6C~~>9J~DT(iEu$ zj-6>{3S|sQz5=sl&RRLlVLWQ(BFz+Xg8j&{fZpi~C5}u}l~4;fTN7~f1e=J%-b3!I w#JLtkwBIQxXxP=(`=-PpFiPRpd1q+`hKR64RtIJ^cc48Cp00i_>zopr033lZ_y7O^ diff --git a/src/branding/samegame/greenStone.png b/src/branding/samegame/greenStone.png deleted file mode 100644 index b568a1900c3c656039afe3e6271a469b4b2f7603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2932 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 ed5^LEum1ynoHFHgZzdQ30000=acq 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�==0;j%F=Kq0P>U~X0$-7~AA^Z= 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 M07*qoM6N<$g8o@6NdN!< diff --git a/src/branding/samegame/redStar.png b/src/branding/samegame/redStar.png deleted file mode 100644 index 5cdf45c4c098a148907898f947f561484f6f75e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`(Vi}jAr_~T6D00Es4w4YvXm_& zV9`w84%vnX;UjA9oB0IN9X9e^Y-14p#JEv2tDnm{r-UW|La{HG diff --git a/src/branding/samegame/redStone.png b/src/branding/samegame/redStone.png deleted file mode 100644 index 36b09a26869643fb61f0d0cb50ce39e284d9a271..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2902 zcmV-c3#s&pP)$#7O^9tKZrqx<>BSJCpyVk)UjZRi>I*_VAhj=5^T-PVq@tprBH)1+s6Zfs8XBn& zv_Panffgsmb(_X^OzNh-jP02@mwonSt@ZJ+_L(_89;Xpo+7D;%bJqH;|94scb>xLp z>|P4U?#HN5ddMs^5t%V>R)Y)e*KYsG`#p6$W=ZE+3&|!5JQUx%)l|Kk;(b zF&b`h{y$%P?mORn^^@1HeeZco^XTKJK76#-9{@0&jQH;Pf4+O+JOA>dqmO>@-#_u} zCtrPZZSCvMxq3&4_j$>E3NBpp3i=2k(p@=p@K+BUUinP5{qDz~SU<&+XU_3c>t|U# zc9P!GK|q;~H@SQB8rQF0b=q>=ucbtPXK-nsMF#;~dHQ^EHIm|GY(JQocw zoj78i`pD^Z&VKxP9$o(!2iDf<9azJ42Z+l-mFO${berkcO}1}d<=wY0aOuJ~Ise`7 z^Y*Q9mB5RA$IDIl$$)l!_2Dm-lzV05b2j74KYJoyd;Sw=dHSQzaqO`t8SFno-W_0U zmhvM6G}LHQLQ^44MW%tJJmc{GWsdX}=kKlD9Q$9J)a=iMZ)BEenxFBapJJz5Czc) z!9!C)Jw?k2Ivt^tEtqVycrw2o}MpA~Aw*kh+F?3grYXTDb8RI=Y9BH(|1c6x*0`Oea?K z;)JPJwi=!+8us@rU)!s??N6^f2vyB5#Jz9 z1N9WC3MfWU3}L(l<9q066ULipF@(uBQVcQW80V+dK`A3_)|~U6^O@nTMMk%npQ>bK zyU}-8yj8!DC$*_u=}8FLsrGGD7)KKmp3g3riW#Jko{L47w3Q8Ifj;X=ZQ{sT!oL zkgPzm4q`Jfsb5G4;A?0~OjSTNfog=7BWyXuHziGgJiw}jV_g{5tWPU`YsvAF>O*!C zRS59ewH~Zwumq@wX@sr`bm|eN3P|2y@(Pnrk*tekIhYJF22{})b}E{>#MF}(a*S_E z%BWNdMCb!64vuu;TFqyo@}~ys2NV>bQBHR(&#q=LFyK=DQwbCTP6C5^jCCHDbc!ss-OuqMTA13Qt+A-8kiKV+l~{#^D%4q)}9Im<%I(oon;3- zz{WI41x$fVAQQ#aQ(Wbdtey+618JArwjK2~rY?z1NfQDEFjXiOYK16Cp`O69h29dh$O+SNptlDmL1#`o{sZ5Xy #?4kbOf9x1)YLbkap0(F02g!D* zNh8ESh>>OnrU^{jZ#ii}H7&R+u#|v*Mk6a$xTk1Bh%(oE@`oW+|iT*c{{0V7nB@H8qA=~0&Zj%(lA#??VLfuOL{M99CdTwbIWc=!NS5O%Bs~g zc{T%-1lVoE&~24D}GV>B>dkWrFyo>twqwp7{Z7;euz z;(cZ|C|8=8v^VyC$Q|WGa5hWs+2t_nfyV3}YT7C$1|&3yugQFkgk~2GXxiJ(nPZd- z2F9}u#N{&QVwBgbkdjt3wSrlgX9Z(zhGbpHI^a6sW`Oti!33CkA;uyiSfCS|oinpcB3}^$e@Pax`G)06Ty)7UOcrx{&u;$eD_ZfIjWV*6p|) zql)v9Jca}(sfeON8KLlmT=)k&?`G!rIxF1pk*^LtpK4r6B|EEX0b^YP%3Hu4$ZR(c z(boRY)NA)>Rfqu-J(-4`PJyP-jy#ls^SN+&-eI|X-fpFq@X}_@r^XI^dlqtl6_fIA z2G?DJPCu!cyr~F>W5bpDX1G`{Y4d1RK ze|e|j(`yF2ZO;eBrsZVa1lH*%$eD^eAT6M;!By#*>_Uq#kx(Hq5`ZGYMgwK!wH3!J ziw4@g`tJP?_GfUo!{@Rke)$p0p~C{vkN|cR>_Vrv3!1lKmbM;ehSl2Ls`d>uvwSs# zkZji-4>xNj*T;Nz8qfzU|M!M_o|!hDI%t3MSQh^N2-rip&=ZR_HcjC2q*~sEP78dW zr z?x+haHRbf+JEh*bx^(oihYv5^au(O{-GUR^S_`D=4SvbV5^%nNBB+CS$gS zTfDuw$ye@_7ykH`{lcYf|F59E7Ra~W;Q`3^QZR2J`=Kfaw}+GFjo80>iQZ^Z`~A7E z_hqENWqee8@c5>osisuZg0dJh9uK*mTXu8yx>YFFSp@?@pdw?j1Tl=yz9pJ(D{p zs*$R$_3mU6u5FK}=eH)eE)L5p?-cbVt?KJ&*aS9#EnpiM0b`(Sf&DzByoZ7_pV|lZ zwfAxhx+>NkRp*WwV~*v*p-f}|nyD&LwW@=Tnh-aL@dg@hpn4m)+ky>Ss4-BqaMhfO zx)P~5SOHcMIoLkS+c7Fs$1Tj=Ik1^p(-vx`+PrcP4e?^DnOAdm z&ja`7l-<{YXYKEs7Gk`IQhVjyV(vW@a53DnpsJnAQ#a?tX1;b-bfE>P<`in?R0<1f z>0T}7y#N>A%O2on4{%}OOf&})_W*f7vBm5E0IhF_Ml((E_5c6?07*qoM6N<$g6)ir A8~^|S diff --git a/src/branding/samegame/samegame.js b/src/branding/samegame/samegame.js deleted file mode 100644 index 01edc5bd4..000000000 --- a/src/branding/samegame/samegame.js +++ /dev/null @@ -1,174 +0,0 @@ -/* This script file handles the game logic */ -var maxColumn = 10; -var maxRow = 15; -var maxIndex = maxColumn * maxRow; -var board = new Array(maxIndex); -var component; - -//Index function used instead of a 2D array -function index(column, row) { - return column + (row * maxColumn); -} - -function startNewGame() { - //Calculate board size - maxColumn = Math.floor(gameCanvas.width / gameCanvas.blockSize); - maxRow = Math.floor(gameCanvas.height / gameCanvas.blockSize); - maxIndex = maxRow * maxColumn; - - //Close dialogs - dialog.hide(); - - //Initialize Board - board = new Array(maxIndex); - gameCanvas.score = 0; - for (var column = 0; column < maxColumn; column++) { - for (var row = 0; row < maxRow; row++) { - board[index(column, row)] = null; - createBlock(column, row); - } - } -} - -function createBlock(column, row) { - if (component == null) - component = Qt.createComponent("Block.qml"); - - // Note that if Block.qml was not a local file, component.status would be - // Loading and we should wait for the component's statusChanged() signal to - // know when the file is downloaded and ready before calling createObject(). - if (component.status == Component.Ready) { - var dynamicObject = component.createObject(gameCanvas); - if (dynamicObject == null) { - console.log("error creating block"); - console.log(component.errorString()); - return false; - } - dynamicObject.type = Math.floor(Math.random() * 3); - dynamicObject.x = column * gameCanvas.blockSize; - dynamicObject.y = row * gameCanvas.blockSize; - dynamicObject.width = gameCanvas.blockSize; - dynamicObject.height = gameCanvas.blockSize; - board[index(column, row)] = dynamicObject; - } else { - console.log("error loading block component"); - console.log(component.errorString()); - return false; - } - return true; -} - -var fillFound; //Set after a floodFill call to the number of blocks found -var floodBoard; //Set to 1 if the floodFill reaches off that node - -//![1] -function handleClick(xPos, yPos) { - var column = Math.floor(xPos / gameCanvas.blockSize); - var row = Math.floor(yPos / gameCanvas.blockSize); - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return; - if (board[index(column, row)] == null) - return; - //If it's a valid block, remove it and all connected (does nothing if it's not connected) - floodFill(column, row, -1); - if (fillFound <= 0) - return; - gameCanvas.score += (fillFound - 1) * (fillFound - 1); - shuffleDown(); - victoryCheck(); -} -//![1] - -function floodFill(column, row, type) { - if (board[index(column, row)] == null) - return; - var first = false; - if (type == -1) { - first = true; - type = board[index(column, row)].type; - - //Flood fill initialization - fillFound = 0; - floodBoard = new Array(maxIndex); - } - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return; - if (floodBoard[index(column, row)] == 1 || (!first && type != board[index(column, row)].type)) - return; - floodBoard[index(column, row)] = 1; - floodFill(column + 1, row, type); - floodFill(column - 1, row, type); - floodFill(column, row + 1, type); - floodFill(column, row - 1, type); - if (first == true && fillFound == 0) - return; //Can't remove single blocks - board[index(column, row)].opacity = 0; - board[index(column, row)] = null; - fillFound += 1; -} - -function shuffleDown() { - //Fall down - for (var column = 0; column < maxColumn; column++) { - var fallDist = 0; - for (var row = maxRow - 1; row >= 0; row--) { - if (board[index(column, row)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - var obj = board[index(column, row)]; - obj.y += fallDist * gameCanvas.blockSize; - board[index(column, row + fallDist)] = obj; - board[index(column, row)] = null; - } - } - } - } - //Fall to the left - var fallDist = 0; - for (var column = 0; column < maxColumn; column++) { - if (board[index(column, maxRow - 1)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - for (var row = 0; row < maxRow; row++) { - var obj = board[index(column, row)]; - if (obj == null) - continue; - obj.x -= fallDist * gameCanvas.blockSize; - board[index(column - fallDist, row)] = obj; - board[index(column, row)] = null; - } - } - } - } -} - -//![2] -function victoryCheck() { - //Award bonus points if no blocks left - var deservesBonus = true; - for (var column = maxColumn - 1; column >= 0; column--) - if (board[index(column, maxRow - 1)] != null) - deservesBonus = false; - if (deservesBonus) - gameCanvas.score += 500; - - //Check whether game has finished - if (deservesBonus || !(floodMoveCheck(0, maxRow - 1, -1))) - dialog.show("Game Over. Your score is " + gameCanvas.score); -} -//![2] - -//only floods up and right, to see if it can find adjacent same-typed blocks -function floodMoveCheck(column, row, type) { - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return false; - if (board[index(column, row)] == null) - return false; - var myType = board[index(column, row)].type; - if (type == myType) - return true; - return floodMoveCheck(column + 1, row, myType) || floodMoveCheck(column, row - 1, board[index(column, row)].type); -} - diff --git a/src/branding/samegame/samegame.qml b/src/branding/samegame/samegame.qml deleted file mode 100644 index 73ef74d1e..000000000 --- a/src/branding/samegame/samegame.qml +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 -import "samegame.js" as SameGame - -Rectangle { - id: screen - - width: 490; height: 720 - - SystemPalette { id: activePalette } - - Item { - width: parent.width - anchors { top: parent.top; bottom: toolBar.top } - - Image { - id: background - anchors.fill: parent - source: "background.jpg" - fillMode: Image.PreserveAspectCrop - } - -//![1] - Item { - id: gameCanvas - - property int score: 0 - property int blockSize: 40 - - width: parent.width - (parent.width % blockSize) - height: parent.height - (parent.height % blockSize) - anchors.centerIn: parent - - MouseArea { - anchors.fill: parent - onClicked: SameGame.handleClick(mouse.x, mouse.y) - } - } -//![1] - } - -//![2] - Dialog { - id: dialog - anchors.centerIn: parent - z: 100 - } -//![2] - - Rectangle { - id: toolBar - width: parent.width; height: 30 - color: activePalette.window - anchors.bottom: screen.bottom - - Button { - anchors { left: parent.left; verticalCenter: parent.verticalCenter } - text: "New Game" - onClicked: SameGame.startNewGame() - } - } -} -//![0] diff --git a/src/branding/samegame/squidball.png b/src/branding/samegame/squidball.png deleted file mode 100644 index b7934e8ee5c471bce5589f99cab75f1395941321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5800 zcmb_=S2UcD^ZvWLRu`)aqC^SNTM%va-bM5hy$cdV*;gkad=NcKL_(t1NP<}4>7yk>$g1_AKzvlH&E$dK=K#$Ncmtc1wEG$gSJHR)@)g{PXEHK!! z=#LT`05HqyX{uR<7w^6_8j{tENZOm|kJ{2jG*Jk?63{@X@Q7t2$Tihw665dw8q|tm z_VGaQEyP^JeiBK@M^NBE!Mm5*Y6wOiIz#SfBGksrm(on&BU%- zZWK!6;3FfR&w{5Z^r(RU&af^dHGv~o_>@}ntFWG`GMaG6FM5%v@mEgj3>aFI80BjN zD_Qe|GPcMc#! zkp8|Z2jMDEyM8UuebBWT<8sh!lN!m45`;8U+BhYyQjAZI0D>`cW3)Mmx1_}f`U5ro zkfr{}`)+(&CQb^^w^6Z;xmwj_kcSyUnfbKOb%t9?_H`Mh^zzAR$`FmX`X$QEUbdo) zo``%PotvHw$(beWHi;t($QYj^VWk<;fMvd=+Ryur+KTalHemotj6SZOnRc+jp3De& z&BJWHqZ%y7&0$XGZf?xq;Dy)Bl}JD{`Kyl=q`*xLC?t_Dld;5*54?H$dfNYI2d)}q7?=u~uMV&O6XBsj6S@s+-8ENc?a zikDp)MFTsQj0P#x+IJ#}ZB`g4g(kx@${`6BA}4uqZj2JteM`POsG_rs#XK3?k#Z(B zsG+e5E3QeM&C#)XBA=1qrJ{Pc`HwsT@&g_6Y*^ zv`EoD2|gWYwYHR8toaTkvuP&K=R5C{;rh;>|3*A%S;~5!_-oA{O+-CM;}x=}-120ZN2#9<_@t=&ob~if1BT!e_{|t~$OO^2GTnOWouYIz&G5A`fXj4}SCZVu zkmR5-svM6YUv2J5B$fM=5oyaHL+Gbg*9!wUYCZ(}iQy*yAYqW#FKK5dJJTzL7x;#XFd^0tNU6G8ItB+8v^bRDaT14dSB${NGyvJ?d`b-e(6a@kli zUL!1YpcJ4f6RD}uWQw{Q6tN+I9it+m6(D>}+Q3u!QG|=%+`7o-TRs`^V}k+mojQzL zR0C#|K#Ckn{dbA+7xw1=m>A7EnB{{3$Q2}I0CSEBCk%`R%w*7jd9f~2W!}lol7Ljg z>o|Tw0^zyIbfCFB$A_dhg0wV9GQS?Bhxs7n6U+<)93mNXlLZjuG@#5Ewfmp|0iS)3If>K^1QCcE07%=44S z`$9_+tkqr!JbGLqYm`i99bZXjUj``#t@;E16MTO?tO5cn1OPTrp#SV$o2%I4vV@@3f?U@M$dIZ1VJ`Enb1(6|=M-94@;I~A-U9XO=vUtnS35q8TRBXRIYvJp<Q7a0+`&j>N|0qfd$MgQx#hic+oX@?!YX;r! z!I|s=CI^H*3uvAgcInBcbgrd+Xs$agrscBzXj0Znj(p9O$=Pkfq&Ms`fY|>*U`%XH zo&vw}XtbJvBkH@@Z>M>-s^VI#cJ2g8fk~_B-Et z{FGZBtU<=9pZ-DxR^`96B_4P1UiQ5hdt>6zrl{%}!eHcW#%uUhZp1gB%9OYE5hO0t z(MYcBLF%W@FI{_(@Gs`76>E`o1i1XzVkDMbO7Vb`#{sgc2z99XO&aPCppRa?xwg-* zq9~?^AWQ8gK*OPEb|8e-`q`Q8?}ry2(u!|f+8^xsJ4t+LkSZxW0o*$nZY{ARZ&z}% zU7vz>GN3acQFIc4je)j}8Ebqa4`l|wAddT+qOT=&L-2RdpU-_r!?Y2Ma4**9e$J0Q znT=h5xKWi_6|^f=1@W&A@K03Z8Ksn;(R zt3VtnmgjO0*a+KQsWVkAIpVot0(ac;>9*G}H4v1K75HJ~%Hvgvm~kgTupN629dcQ9 zb^fK{b%bJ*t7H{Rmj-0SdQ9Dj*gG=lgjowH~$!7J^SQ8&!&a9IjaqPgb2mWsc@B@@j3GeO@~!z zOuF<30^uG)F{v({^kclS+kxy9)G+6g8`__Ld9f?>g^sJ&XoZm?=r45^pR*Z)L?>Eo zHt+}5j_bY@wP{jX6o3bgQ%Owz+cvBveb$hBQ(dZKdjw!iQRVq5b48iIQbb$+E#RpA z_VHH4(;B=#Vg0TFChGp1P{*omU*F1B2EIF#rX#@f5u!6m(p1duonf*Z#MNmV_S-G7 zy#wTgoWkD7DQ}g8_@#kk} zV$|sNtl7tSm;O@NhC8wZgX(Bixa{b^-7U;Cb+A?LCoKv7<}1nC?!D#qHj8)4U7C8XIFF_mv!3Y*^v}lir_Mtl z>Ln0VgZ9}{Z&agJ&qo|hKIdw5a$8YM%hJ>Aorxh+gNL<3Hj#HbWJbig<$C%Q59}1A zl_-V=D!_=UD?A{#+GITTu2}9d@J3~ zr2&HSku?mFmieZ<;X)t_PM;yE9`ArFouo;5>BK!OUl>LfRcsN%>%9a3$)j)bL2QGI zBn;of|EDbk?lVx|bwqY50s4hMraFEVR|+GVaIfHV-QOoJ`|c{n;!Iw%z{sCNqqv^X zNmK-lk~@-MnT|6Shmq{Kv&BPcx!8)y+vC?w&!LA80CXs>lOeu5wGOdiBqQ=6=f+|Pv?%viw96hpS?n+EI9e$n8h*yZ|f zpBH{7VOeA2sa#%RH!*Z})4^Kvkx^|$5lfiLkJz_|OluyD=+3eQ*0ygsJl!vMYW`B6 zVq8fY^d?*i8x(1GzP&ikitCFef2vx|_a|CbIHqjBm&;Vt{!p$ce7!R5n=k9;%7aFw z`9H(uM0c-C;2QZI$Xp91XZw``HP10A*Bn8X72O}Bmg9CBYy3Y^$bn!~|1PpWJDpGq z8B<*|ux9C>BsaJF`{^F>-7NI#rN#N*e~MDkje_5mH;!oEf9$g5KkU%Ygn9ImFJN`) z)my_W&d%ph>uW_{PZGtZdczl={zlJs{?K3}6%{?9TTMK$S%b_!pM4u+?#^i2A@luqzsv53`{RV~#b)QoD>@`T3fN9T%Q-n~ci8yU ze!E|-rMU4QxYr@_;ckxplYbPaQ{<|lm5+XCC>M*t%LKeKi%ck<%RKO;>3zGd`iU4D z!U|?b@Q(>K&4{T-EhAYZJ#KeevS^`33$7jGNwX?O=$i0eG(K$o@@L*C6J?gH&FO>1 zVm(@5;t_f|J1*+B!314=egrB1lw%ja-_cU>h9f{?@3!JeJt(I7c;>CYnst|Zj)C8) zboU*`D-};EfO~r2nru8XN!LK1q>{*rLEMH!GH8klxkzb#_=~TM$}Uw*Rf3fI*7v>H z7%`V?57I{;1tv1an$2%(scs&UN^t$MYYSMzRWz@B8<$9P@x`T8YUX5ZFGp?O#}Q`5 zJ!OE@0rgkoKxPp!t9Q07ulZMSA#$rth^SON1z3d}5+#G~S7Fy<>|aDUCS^99Y&F|W zyJuAW_ZGo1_?oD!u#@_|m;t*Fn5`V}6Ik)P!6asPTL@a=%e^)`!StT#KvV5?`5!8L z$2|WTV7N~WvvUMbH79(4Wa6SQw#N#dekXC>Uj0`LqgoGD$OZ$OqOA34aWshpm*J9M z^%)yw(8gVx;^xxdtPDdz6Lkhp=5c9?p zvm${@mg3a6q>f;`U>Wv%5CL+qG`f*oo1D6=;vh(<%%)HooYIya1o~7VL|0()sb4Xl z1}s0Q5V<V$4);riK@Azl9Z$P_{Zx1|tTJY9F;DpHX}mkz}~y z1upA#U33vLpl~5I`Y$a|LOM2mOk*^KerS^v2qE^}Oyv3Zxz;88gy@&FzlB86qMZV0 zSSEzLNfgU30jxNnM2a;TeUZ|SgnfAR4FIswfC?0=hdy7bVbw}UR}7%Iz-}m>5zJT@ zg8!F58Z`QbLNLN`Mj7CO;}wAt=vcdl*02xB&g|vgz}2QJIcNGyRb%(QN%v#JU=5h{ z+Sxg1yZJ{&pz(r5fHyqG>a`IsfE&YF69I`RCUk{`4ZaiKnOTSdX8kCJWJTLIP9oU_ zc!_LaJ&ZW=S12~pLxQD!hfv#HPmQ9&j^`&_eannvQ2yUMWpr_;>csM-W1;IZ4C??a zQ(~#Wh`gP69y9c-z$62EcaQ)#9u4u7>8lk%Mu&!Oubh1OvV*|1;FQ5U(SwQ!~7U_I3Uro7VmW ZwX&-T%YMus_0MGn^t6mM>(rg&{tx8-w&DN) diff --git a/src/branding/samegame/star.png b/src/branding/samegame/star.png deleted file mode 100644 index defbde53ca489900adbd2eb6b6c83a97cab11e80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE52LDFw4%EPP-wEJi(`nz>AMp*@-aG!xSmf{=2|_i zLu{}72m9aMUh$4ogmk3>-(20}l#+gI+wVy$@7*a@Pfxg!TphW~SnJJep#`V5_&2oX zGKzb?-_Ix*$9&r&`Sx->kE??7n57fgP2yMYej9el^rgZfhVAn2L}oCaf5WX}%k+h* zPmsmpiH(Ztt$VlQS|``tm&i?D@b>DQ0;4BC86G^hUGg(P)l~h%?>R12o|1IarCw_dM zLpK47P*#yF6WZ3O>ykU~yn`=&`6&P{UAj2`;t!tv(7AJGZhYu(e&@Eju2(^@82Uf= z^S}O`_ull;v!_qr{+$yi-m|g2^$NfF8=v9nXP(Bn9DvXoc_DZwnC-t8+sE+yKR53^ zWjWySZ~gOq|M}EEe)7`#Q$Ml1w0+IJA3Jhpt z6`vmigSNRqfA@QwfAeY1Jo_w7+ZuU(2;kJ_PF|N^5fFnm7-ean7m>fb`>vU*e&sVKxaXda zGrMpv&c7F@M-VAG#c45XuvlSMVj&Qt!}&$7ySCtllLJPhdgaZx+Fu%tY{@zKr_5_q zy>i6e$?NkD=D;pMjA*|f{%m&EJ@B!+XXR7Bu*T`rx1sJ7>K0L*MKl9ZAcD0WTpSVO zfEf0Op-%{Vga}8LmG@jdpsoWK*4umf{diZeC;#A7n!^|na5r3^zx{mjz-~W$X@1WA z>W6Nd;irCbfm5fhM)Wu$Jw$RuGh`ahYRpPv7$mS=Lc2`}JH)U{Xlv$XyL~t`ws*p* z-QD=%|dJu;sADE3p zTXxFDJwm(F!L?h2u-yTMUCf3Qc}^h#5vUuxEd>7hx@&TG z^GyY(Z|bpf#G@`l#Dgdzf)Rm`088Q|wEd*oHlgj{I>0_L^l96QwuP!Psw%Rx8}4cY zXYx$`=U|!f(ap@VI z7h@a}CO+&F!yX}&RJGwftgU)ZT%9o-8gHF%{xBBu4N=Nz$jdyaBGk3rU*!70wbx`^ zbv$Er)iX1rI49&;MBP-1TLfz`t5SGJ#JJZbN8Ib6Vy9XReJu7VtCGRM7!HlPHkt-P zFb0FTQdV}U$n~jlBt@naOl~4XK6mV>V|mFlJENF&p%{(2dZ;?=eq<4I4KbFe<{%k@ zrl-V7x#^&XSm;wXCBtE4R7R>gV!+Idu)OS8Tl2hruKsL{_9vp$V->xmlogKSFBbk#Y5ADSv*iSDlx?*8L>GcGs5MmdKvWoaj@Xl~9ATmPL zfPh#H;!{?W6l}5Bm7Neu$|^7_ty8axG>s7>I4AUa%EG*3VcyBcX8Vg7(|~4xU>GWL z>-?ND(^IlcQ0-b!h|mUTTcc@=y6PbFtRiBFw1_w?DQFgf7K;thD(X5?*U&abXd#5I zjf#MCkY~cojIc1TY;AFSj5f*LNr=q^=k3(Yj86KaDtIqAH|Z>dV6>qFb=uP9OvJ>c z5L-&17PFSNjkHboaUmE6-E*A~qY5)wGMDFaW04D4 zg7RL-G9k~qqjPli&k}3|)zC>{HkBj>7KkwtgAvmtpxRj^%erTnb&w%|&*gBmmH{f10pI)mbIux zRJ&Wck5Vi~VuTok;0>3qtB8$1UI4!^uVV#=PGt*N)hPwXkVT>N3ZYjBS?*BDy4oi` z4GcOpX&Pn`No`Q2>HMl;>;^0fAwmd3+Y0I?EiKH?Y3W?|ncn-!h0=_dqH#(^@D4KH zg}4Lk;PTufS|Cy&l6CD(T=L%(AYoDu%{(eKnbc`!gcyYoplt=`1Wgk>a52wyeLN%j z>0vPhUTWKvX->#I6CdVzr<`aH)iiEND$wGRiqi@P%mQK!W}X-wszRO_F$UTov@K+< zpsrK3X$>=;caFVD9n3SG7`m?Q*{bf!fdFng%$cH^C*_I`RB}*{;4cF-B4Tl(9_CQG zj8zxOvy!$E8gG+i3&E%=!#SSJ^Zg0NJ3qBf$>r-+X}eWri_ub9NMUx)AyS}PbP8%O zg*y3=aatQ@mcrYqXQo61rBlzjmMm+!YM_EesA^+W#*k<7cRu;ATSe}h6IITKXpasC z;nPji6tJBMC!`UWVxJ` zsS(g;nOrukHVt3c+76!{3?gkiECkutjL#od>O{a!2{M7oxk`nKTH zGrL9EU>Moj3OL8_=DCLH#j&58(}N4Sr|a7OVsoqgY;6YCFSdg> z-)cTrR%UM-`Om&o9kwFAcGV|URhjF z)Xk$hkLoPyW>T1YDda^0_4^BJVyeEO^JA>A*r#c>Ie)(7l~-#X{o2m&KmA|B-#gHX z4h0-v)HKKz8=K+VN0wc+xZpm%xL`Uv>rtIU-0UR0or*c4<80m^`>_Cw*DOO~*des* ztgr9#;@OJ7e{|=M{^Rk%ZvolV|5`Q;>JCxQCBWWj6qhcnw=c}h=#S=R^{(ZmrdJfY zzi^ifl`NH@&Rg98oJx#U#4t?D&J9BQ2A4K2@ywag-dDc5_1lksd+0Ac%fVsWBc;t;Yn+tf{GWei^AEoJ{qkRdnFQ1V;V{T|QZP@Dv%_IrcxiABtzYKc>pzT-eeJE+|M<%r4?ptQ&O?_r!jF;|HPEE} zAmqV+;wB1?;bwq2U;$VHmQ`6XU_C5JoiHR(hpy4zBd}hbHG;Gw}Bm?59|SD0&b@v*3}ld8+WiU_N~k#sHx#EdGvd^x((juDv3H14hxzWH_pS(dFx+xLRX63+u~&<9%%_qrB!Fs4p=L^@a6m0P yti-$%;KA#12)G^sE>j8|1c`@$yiKu#+y4T!p Date: Fri, 9 Mar 2018 08:48:24 -0500 Subject: [PATCH 46/55] Branding: document preference for standalone branding --- src/branding/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/branding/README.md b/src/branding/README.md index acf245b11..5b74333cc 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -7,6 +7,11 @@ file, containing brand-specific strings in a key-value structure, plus brand-specific images or QML. Such a subdirectory, when placed here, is automatically picked up by CMake and made available to Calamares. +It is recommended to package branding separately, so as to avoid +forking Calamares just for adding some files. Calamares installs +CMake support macros to help create branding packages. See the +calamares-branding repository for examples of stand-alone branding. + ## Translations From 986c5f5a9a73777c219a45537598509fa5e884d6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 9 Mar 2018 09:29:53 -0500 Subject: [PATCH 47/55] CMake: improve branding component macros - document preferred component layout - simplify parameters to the branding macros - allow structured branding components with SUBDIRECTORIES --- .../CalamaresAddBrandingSubdirectory.cmake | 81 +++++++++++-------- src/branding/README.md | 66 +++++++++++---- 2 files changed, 99 insertions(+), 48 deletions(-) diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index 0c58a7257..60868192b 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -1,8 +1,24 @@ +# Support macros for creating Calamares branding components. +# +# Calamares branding components have two parts: +# - a branding.desc file that tells Calamares how to describe the product +# (e.g. strings like "Generic GNU/Linux") and the name of a QML file +# (the "slideshow") that is displayed during installation. +# - the QML files themselves, plus supporting images etc. +# +# Branding components can be created inside the Calamares source tree +# (there is one example the `default/` branding, which is also connected +# to the default configuration shipped with Calamares), but they can be +# built outside of, and largely independently of, Calamares by using +# these CMake macros. +# +# See the calamares-examples repository for more examples. +# include( CMakeParseArguments) include( CMakeColors ) -# Usage calamares_add_branding( NAME [SUBDIRECTORY ]) +# Usage calamares_add_branding( [DIRECTORY ] [SUBDIRECTORIES ...]) # # Adds a branding component to the build: # - the component's top-level files are copied into the build-dir; @@ -14,29 +30,30 @@ include( CMakeColors ) # with the given , which is usually the name of the # directory containing the component, and which must match the # *componentName* in `branding.desc`. -function( calamares_add_branding ) - set( _CABT_SUBDIRECTORY "." ) - cmake_parse_arguments( _CABT "" "NAME;SUBDIRECTORY" "" ${ARGN} ) - if ( NOT _CABT_NAME ) - message( FATAL_ERROR "Branding component must have a NAME" ) - endif() - - set( NAME ${_CABT_NAME} ) - set( SUBDIRECTORY ${_CABT_SUBDIRECTORY} ) +# +# If SUBDIRECTORIES are given, then those are copied (each one level deep) +# to the installation location as well, preserving the subdirectory name. +function( calamares_add_branding NAME ) + set( _CABT_DIRECTORY "." ) + cmake_parse_arguments( _CABT "" "DIRECTORY" "SUBDIRECTORIES" ${ARGN} ) + set( SUBDIRECTORY ${_CABT_DIRECTORY} ) + set( _brand_dir ${_CABT_DIRECTORY} ) set( BRANDING_DIR share/calamares/branding ) set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} ) - # We glob all the files inside the subdirectory, and we make sure they are - # synced with the bindir structure and installed. - file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" ) - foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} ) - if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ) - configure_file( ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} COPYONLY ) + foreach( _subdir "" ${_CABT_SUBDIRECTORIES} ) + file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${_brand_dir} "${_brand_dir}/${_subdir}/*" ) + message(STATUS "${BRANDING_COMPONENT_FILES}") + foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} ) + set( _subpath ${_brand_dir}/${BRANDING_COMPONENT_FILE} ) + if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_subpath} ) + configure_file( ${_subpath} ${_subpath} COPYONLY ) - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} - DESTINATION ${BRANDING_COMPONENT_DESTINATION} ) - endif() + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${_subpath} + DESTINATION ${BRANDING_COMPONENT_DESTINATION}/${_subdir}/ ) + endif() + endforeach() endforeach() message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${NAME}${ColorReset}" ) @@ -46,7 +63,7 @@ function( calamares_add_branding ) endif() endfunction() -# Usage calamares_add_branding_translations( NAME [SUBDIRECTORY ]) +# Usage calamares_add_branding_translations( [DIRECTORY ]) # # Adds the translations for a branding component to the build: # - the component's lang/ directory is scanned for .ts files @@ -55,15 +72,11 @@ endfunction() # Translation files must be called calamares-_.ts . Optionally # the lang/ dir is found in the given instead of the current source # directory. -function( calamares_add_branding_translations ) - set( _CABT_SUBDIRECTORY "." ) - cmake_parse_arguments( _CABT "" "NAME;SUBDIRECTORY" "" ${ARGN} ) - if ( NOT _CABT_NAME ) - message( FATAL_ERROR "Branding component must have a NAME" ) - endif() - - set( NAME ${_CABT_NAME} ) - set( SUBDIRECTORY ${_CABT_SUBDIRECTORY} ) +function( calamares_add_branding_translations NAME ) + set( _CABT_DIRECTORY "." ) + cmake_parse_arguments( _CABT "" "DIRECTORY" "" ${ARGN} ) + set( SUBDIRECTORY ${_CABT_DIRECTORY} ) + set( _brand_dir ${_CABT_DIRECTORY} ) set( BRANDING_DIR share/calamares/branding ) set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} ) @@ -78,19 +91,23 @@ function( calamares_add_branding_translations ) endif() endfunction() -# Usage calamares_add_branding_subdirectory( ) +# Usage calamares_add_branding_subdirectory( [SUBDIRECTORIES ...]) # # Adds a branding component from a subdirectory: # - if there is a CMakeLists.txt, use that # - otherwise assume a "standard" setup with top-level files and a lang/ dir for translations # +# If SUBDIRECTORIES are given, they are relative to , and are +# copied (one level deep) to the install location as well. function( calamares_add_branding_subdirectory SUBDIRECTORY ) + cmake_parse_arguments( _CABS "" "" "SUBDIRECTORIES" ${ARGN} ) + if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" ) add_subdirectory( ${SUBDIRECTORY} ) elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" ) - calamares_add_branding( NAME ${SUBDIRECTORY} SUBDIRECTORY ${SUBDIRECTORY} ) + calamares_add_branding( ${SUBDIRECTORY} DIRECTORY ${SUBDIRECTORY} SUBDIRECTORIES ${_CABS_SUBDIRECTORIES} ) if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" ) - calamares_add_branding_translations( NAME ${SUBDIRECTORY} SUBDIRECTORY ${SUBDIRECTORY} ) + calamares_add_branding_translations( ${SUBDIRECTORY} DIRECTORY ${SUBDIRECTORY} ) endif() else() message( "-- ${BoldYellow}Warning:${ColorReset} tried to add branding component subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no branding.desc." ) diff --git a/src/branding/README.md b/src/branding/README.md index 5b74333cc..6503bef49 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -12,6 +12,20 @@ forking Calamares just for adding some files. Calamares installs CMake support macros to help create branding packages. See the calamares-branding repository for examples of stand-alone branding. +## Examples + +There is one example of a branding component included with Calamares, +so that it can be run directly from the build directory for testing purposes: + + - `default/` is a sample brand for the Generic Linux distribution. It uses + the default Calamares icons and a as start-page splash it provides a + tag-cloud view of languages. The slideshow is a basic one with a few + slides of text and a single image. No translations are provided. + +Since the slideshow can be **any** QML, it is limited only by your designers +imagination and your QML experience. For straightforward presentations, +see the documentation below. There are more examples in the *calamares-branding* +repository. ## Translations @@ -28,22 +42,6 @@ file) should be enclosed in this form for translations text: qsTr("This is an example text.") ``` -## Examples - -There are two examples of branding content: - - - `default/` is a sample brand for the Generic Linux distribution. It uses - the default Calamares icons and a as start-page splash it provides a - tag-cloud view of languages. The slideshow is a basic one with a few - slides of text and a single image. No translations are provided. - - `fancy/` uses translations and offers navigation arrows. These are - provided by the standard Calamares QML classes. - -Since the slideshow can be **any** QML, it is limited only by your designers -imagination and your QML experience. For straightforward presentations, -see the documentation below. There are more examples in the *calamares-branding* -repository. - ## Presentation The default QML classes provided by Calamares can be used for a simple @@ -97,3 +95,39 @@ standard properties for a boring "static text" slideshow, though: The presentation classes can be used to produce a fairly dry slideshow for the installation process; it is recommended to experiment with the visual effects and classes available in QtQuick. + +## Project Layout + +A branding component that is created and installed outside of Calamares +will have a top-level `CMakeLists.txt` that includes some boilerplate +to find Calamares, and then adds a subdirectory which contains the +actual branding component. + +Adding the subdirectory can be done as follows: + + - If the directory contains files only, and optionally has a single + subdirectory lang/ which contains the translation files for the + component, then `calamares_add_branding_subdirectory()` can be + used, which takes only the name of the subdirectory. + +The file layout in a typical branding component repository is: + +``` + / + - CMakeLists.txt + - componentname/ + - show.qml + - image1.png + ... + - lang/ + - calamares-componentname_en.ts + - calamares-componentname_de.ts + ... +``` + + - If the branding component has many files which are organized into + subdirectories, use the SUBDIRECTORIES argument to the CMake function + to additionally install files from those subdirectories. For example, + if the component places all of its images in an `img/` subdirectory, + then call `calamares_add_branding_subdirectory( ... SUBDIRECTORIES img)`. + It is a bad idea to include `lang/` in the SUBDIRECTORIES list. From 42ba505ceb6ae323afb12b07dcec11255ba8f4b7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 9 Mar 2018 11:13:42 -0500 Subject: [PATCH 48/55] CMake: add license headers, copyright Since we install the CMake files now, also put license headers in them. These files are intended to help plugin and branding component authors write them in a simple Calamares-idiomatic way. --- .../CalamaresAddBrandingSubdirectory.cmake | 20 ++++++++++++++++ CMakeModules/CalamaresAddLibrary.cmake | 24 ++++++++++++++++++- .../CalamaresAddModuleSubdirectory.cmake | 23 ++++++++++++++++++ CMakeModules/CalamaresAddPlugin.cmake | 20 ++++++++++++++++ CMakeModules/CalamaresAddTranslations.cmake | 22 +++++++++++++++++ 5 files changed, 108 insertions(+), 1 deletion(-) diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index 60868192b..40c153ef7 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -1,3 +1,23 @@ +# === This file is part of Calamares - === +# +# 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 . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# # Support macros for creating Calamares branding components. # # Calamares branding components have two parts: diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index f183277c8..f6e96d12a 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -1,3 +1,25 @@ +# === This file is part of Calamares - === +# +# 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 . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# +# Support functions for building plugins. + include( CMakeParseArguments ) function(calamares_add_library) @@ -64,7 +86,7 @@ function(calamares_add_library) endif() # add link targets - target_link_libraries(${target} + target_link_libraries(${target} LINK_PUBLIC ${CALAMARES_LIBRARIES} Qt5::Core Qt5::Gui diff --git a/CMakeModules/CalamaresAddModuleSubdirectory.cmake b/CMakeModules/CalamaresAddModuleSubdirectory.cmake index 32d9ea952..af26f5a74 100644 --- a/CMakeModules/CalamaresAddModuleSubdirectory.cmake +++ b/CMakeModules/CalamaresAddModuleSubdirectory.cmake @@ -1,3 +1,26 @@ +# === This file is part of Calamares - === +# +# 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 . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# +# Function and support code for adding a Calamares module (either a Qt / C++ plugin, +# or a Python module, or whatever) to the build. +# include( CalamaresAddTranslations ) set( MODULE_DATA_DESTINATION share/calamares/modules ) diff --git a/CMakeModules/CalamaresAddPlugin.cmake b/CMakeModules/CalamaresAddPlugin.cmake index 658fd364a..e02102829 100644 --- a/CMakeModules/CalamaresAddPlugin.cmake +++ b/CMakeModules/CalamaresAddPlugin.cmake @@ -1,3 +1,23 @@ +# === This file is part of Calamares - === +# +# 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 . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# # Convenience function for creating a C++ (qtplugin) module for Calamares. # This function provides cmake-time feedback about the plugin, adds # targets for compilation and boilerplate information, and creates diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index b0a623908..63bf63189 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -1,3 +1,25 @@ +# === This file is part of Calamares - === +# +# 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 . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# +# This file has not yet been documented for use outside of Calamares itself. + include( CMakeParseArguments ) # Internal macro for adding the C++ / Qt translations to the From 2f66aa9b07986a721124c9e738d6daf28446a7e7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 9 Mar 2018 11:24:41 -0500 Subject: [PATCH 49/55] [plasmalnf] Change to IgnoreAspectRatio It is the distro's responsibility to produce screenshots that look good; previously I chose to preserve the aspect ratio on the grounds that this would keep the look of the screenshot even if the distro had done one in a weird size. This makes the screenshot part of the LNF selection look weird, though, since then you get blank parts. Switch to ignoring the aspect ration; distro's should produce screenshots in a 12x8 (i.e. 3:2) aspect ratio, preferrably at least 120x80 pixels -- but keep in mind hiDPI and the default font sizes of the distro, which may make other sizes look better. (this follows discussion with BlueStar Linux) --- src/modules/plasmalnf/ThemeWidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/plasmalnf/ThemeWidget.cpp b/src/modules/plasmalnf/ThemeWidget.cpp index f2a038030..0dd73dbd3 100644 --- a/src/modules/plasmalnf/ThemeWidget.cpp +++ b/src/modules/plasmalnf/ThemeWidget.cpp @@ -58,7 +58,7 @@ ThemeWidget::ThemeWidget(const ThemeInfo& info, QWidget* parent) image.fill( QColor( QRgb( hash_color ) ) ); } - image = image.scaled( image_size, Qt::KeepAspectRatio, Qt::SmoothTransformation ); + image = image.scaled( image_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); QLabel* image_label = new QLabel( this ); image_label->setPixmap( image ); From 37e6f92c242ee4cd6aaf54dd795bdaa338daf740 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 9 Mar 2018 11:34:28 -0500 Subject: [PATCH 50/55] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_bg.ts | 68 +++++++++++------------ lang/calamares_ca.ts | 14 ++--- lang/calamares_da.ts | 12 ++-- lang/calamares_nb.ts | 118 ++++++++++++++++++++-------------------- lang/calamares_pt_BR.ts | 10 ++-- lang/calamares_tr_TR.ts | 95 ++++++++++++++++---------------- 6 files changed, 159 insertions(+), 158 deletions(-) diff --git a/lang/calamares_bg.ts b/lang/calamares_bg.ts index 18fe9de6c..f9aceecf9 100644 --- a/lang/calamares_bg.ts +++ b/lang/calamares_bg.ts @@ -178,7 +178,7 @@ Cancel installation without changing the system. - Отказ от инсталацията без промяна на системата + Отказ от инсталацията без промяна на системата. @@ -525,7 +525,7 @@ The installer will quit and all changes will be lost. LVM LV name - + LVM LV име @@ -565,7 +565,7 @@ The installer will quit and all changes will be lost. Mountpoint already in use. Please select another one. - Точкака на монтиране вече се използва. Моля изберете друга. + Точката за монтиране вече се използва. Моля изберете друга. @@ -692,7 +692,7 @@ The installer will quit and all changes will be lost. Cannot add user %1 to groups: %2. - Не може да бъе добавен потребител %1 към групи: %2. + Не може да се добави потребител %1 към групи: %2. @@ -789,7 +789,7 @@ The installer will quit and all changes will be lost. Failed to open %1 - + Неуспешно отваряне на %1 @@ -797,7 +797,7 @@ The installer will quit and all changes will be lost. Dummy C++ Job - + Фиктивна С++ задача @@ -855,7 +855,7 @@ The installer will quit and all changes will be lost. Mountpoint already in use. Please select another one. - Точкака на монтиране вече се използва. Моля изберете друга. + Точката за монтиране вече се използва. Моля изберете друга. @@ -883,7 +883,7 @@ The installer will quit and all changes will be lost. Please enter the same passphrase in both boxes. - + Моля, въведете еднаква парола в двете полета. @@ -1003,7 +1003,7 @@ The installer will quit and all changes will be lost. Please install KDE Konsole and try again! - + Моля, инсталирайте KDE Konsole и опитайте отново! @@ -1060,7 +1060,7 @@ The installer will quit and all changes will be lost. &OK - + &ОК @@ -1146,7 +1146,7 @@ The installer will quit and all changes will be lost. The system language will be set to %1. - + Системният език ще бъде %1. @@ -1204,7 +1204,7 @@ The installer will quit and all changes will be lost. Description - + Описание @@ -1222,7 +1222,7 @@ The installer will quit and all changes will be lost. Package selection - + Избор на пакети @@ -1230,17 +1230,17 @@ The installer will quit and all changes will be lost. Password is too short - + Паролата е твърде кратка Password is too long - + Паролата е твърде дълга Password is too weak - + Паролата е твърде слаба @@ -1255,12 +1255,12 @@ The installer will quit and all changes will be lost. The password is the same as the old one - + Паролата съвпада с предишната The password is a palindrome - + Паролата е палиндром @@ -1270,7 +1270,7 @@ The installer will quit and all changes will be lost. The password is too similar to the old one - + Паролата е твърде сходна с предишната @@ -1335,7 +1335,7 @@ The installer will quit and all changes will be lost. The password is too short - + Паролата е твърде кратка @@ -1385,7 +1385,7 @@ The installer will quit and all changes will be lost. No password supplied - + Липсва парола @@ -1465,7 +1465,7 @@ The installer will quit and all changes will be lost. Unknown error - + Неизвестна грешка @@ -2151,7 +2151,7 @@ Output: Failed to write keyboard configuration to existing /etc/default directory. - + Неуспешно записване на клавиатурна конфигурация в съществуващата директория /etc/default. @@ -2164,12 +2164,12 @@ Output: Set flags on %1MB %2 partition. - + Задай флагове на дял %1MB %2. Set flags on new partition. - + Задай флагове на нов дял. @@ -2179,12 +2179,12 @@ Output: Clear flags on %1MB <strong>%2</strong> partition. - + Изчисти флагове на дял %1MB <strong>%2</strong>. Clear flags on new partition. - + Изчисти флагове на нов дял. @@ -2194,12 +2194,12 @@ Output: Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - + Сложи флаг на дял %1MB <strong>%2</strong> като <strong>%3</strong>. Flag new partition as <strong>%1</strong>. - + Сложи флаг на новия дял като <strong>%1</strong>. @@ -2209,12 +2209,12 @@ Output: Clearing flags on %1MB <strong>%2</strong> partition. - + Изчистване флаговете на дял %1MB <strong>%2</strong>. Clearing flags on new partition. - + Изчистване на флаговете на новия дял. @@ -2224,12 +2224,12 @@ Output: Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - + Задаване на флагове <strong>%3</strong> на дял %1MB <strong>%2</strong>. Setting flags <strong>%1</strong> on new partition. - + Задаване на флагове <strong>%1</strong> на новия дял. @@ -2423,7 +2423,7 @@ Output: ... - + ... diff --git a/lang/calamares_ca.ts b/lang/calamares_ca.ts index c9f76e58e..84243b5ec 100644 --- a/lang/calamares_ca.ts +++ b/lang/calamares_ca.ts @@ -9,12 +9,12 @@ 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. - Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>EFI</strong>. <br><br> Per configurar una arrencada des d'un entorn EFI, aquest instal·lador ha de desplegar una aplicació de càrrega d'arrencada, com ara el <strong>GRUB</strong> o el <strong>systemd-boot</strong> en una <strong>partició EFI del sistema</strong>. Això és automàtic, llevat que trieu un partiment manual, en què caldrà que ho configureu vosaltres mateixos. + Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>EFI</strong>. <br><br> Per configurar una arrencada des d'un entorn EFI, aquest instal·lador ha de desplegar una aplicació de càrrega d'arrencada, com ara el <strong>GRUB</strong> o el <strong>systemd-boot</strong> en una <strong>partició EFI del sistema</strong>. Això és automàtic, llevat que trieu fer les particions manualment, en què caldrà que ho configureu vosaltres mateixos. 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. - Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>BIOS </strong>. Per configurar una arrencada des d'un entorn BIOS, aquest instal·lador ha d'instal·lar un carregador d'arrencada, com ara el <strong>GRUB</strong>, ja sigui al començament d'una partició o al <strong>Registre d'Arrencada Mestre</strong>, a prop del començament de la taula de particions (millor). Això és automàtic, llevat que trieu un partiment manual, en què caldrà que ho configureu pel vostre compte. + Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>BIOS </strong>. Per configurar una arrencada des d'un entorn BIOS, aquest instal·lador ha d'instal·lar un carregador d'arrencada, com ara el <strong>GRUB</strong>, ja sigui al començament d'una partició o al <strong>Registre d'Arrencada Mestre</strong>, a prop del començament de la taula de particions (millor). Això és automàtic, llevat que trieu fer les particions manualment, en què caldrà que ho configureu pel vostre compte. @@ -327,7 +327,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - <strong>Partiment manual</strong><br/>Podeu crear o redimensionar les particions vosaltres mateixos. + <strong>Particions manuals</strong><br/>Podeu crear o redimensionar les particions vosaltres mateixos. @@ -370,7 +370,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - No s'ha pogut trobar enlloc una partició EFI en aquest sistema. Si us plau, torneu enrere i useu el partiment manual per configurar %1. + No s'ha pogut trobar enlloc una partició EFI en aquest sistema. Si us plau, torneu enrere i use les particions manuals per configurar %1. @@ -1711,7 +1711,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. <strong>Manual</strong> partitioning. - Partiment <strong>manual</strong>. + Particions <strong>manuals</strong>. @@ -1731,7 +1731,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - Partiment <strong>manual</strong> del disc <strong>%1</strong> (%2). + Particions <strong>manuals</strong> del disc <strong>%1</strong> (%2). @@ -1982,7 +1982,7 @@ Sortida: <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - <strong>%2</strong><br/><br/>No es pot trobar cap partició EFI enlloc del sistema. Si us plau, torneu enrere i useu el partiment manual per establir %1. + <strong>%2</strong><br/><br/>No es pot trobar cap partició EFI enlloc del sistema. Si us plau, torneu enrere i useu les particions manuals per establir %1. diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index c1122d135..38eed0dd4 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -1274,7 +1274,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The password contains the user name in some form - Adgangskoden indeholde i nogen form brugernavnet + Adgangskoden indeholder i nogen form brugernavnet @@ -1289,12 +1289,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. The password contains less than %1 digits - Adgangskoden indeholder færre end %1 tal + Adgangskoden indeholder færre end %1 cifre The password contains too few digits - Adgangskoden indeholder for få tal + Adgangskoden indeholder for få cifre @@ -1419,7 +1419,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. Bad integer value of setting - %1 - Dårlig heltalsværdi til indstilling - %1 + Ugyldig heltalsværdi til indstilling - %1 @@ -1845,7 +1845,7 @@ Output: Command <i>%1</i> crashed. - Kommandoen <i>%1</i> holdet op med at virke. + Kommandoen <i>%1</i> holdte op med at virke. @@ -1860,7 +1860,7 @@ Output: Internal error when starting command. - Intern kommando ved start af kommando. + Intern fejl ved start af kommando. diff --git a/lang/calamares_nb.ts b/lang/calamares_nb.ts index 1f4c25f0d..ec19dfe68 100644 --- a/lang/calamares_nb.ts +++ b/lang/calamares_nb.ts @@ -42,7 +42,7 @@ %1 (%2) - + %1 (%2) @@ -120,7 +120,7 @@ Running command %1 %2 - + Kjører kommando %1 %2 @@ -195,17 +195,17 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &Yes - + &Ja &No - + &Nei &Close - + &Lukk @@ -230,12 +230,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &Done - + &Ferdig The installation is complete. Close the installer. - + Installasjonen er fullført. Lukk installeringsprogrammet. @@ -289,7 +289,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + Denne datamaskinen oppfyller ikke minimumskravene for installering %1.<br/> Installeringen kan ikke fortsette. <a href="#details">Detaljer..</a> @@ -309,7 +309,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. System requirements - + Systemkrav @@ -327,7 +327,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - + <strong>Manuell partisjonering</strong><br/>Du kan opprette eller endre størrelse på partisjoner selv. @@ -460,7 +460,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Cannot get list of temporary mounts. - Klarer ikke å få tak i listen over midlertidige monterte disker. + Klarte ikke å få tak i listen over midlertidige monterte disker. @@ -656,7 +656,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Creating user %1. - + Oppretter bruker %1. @@ -681,7 +681,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Cannot create user %1. - Klarte ikke å opprette bruker %1 + Klarte ikke opprette bruker %1 @@ -938,7 +938,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &Restart now - + &Start på nytt nå @@ -948,7 +948,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Innnstallasjonen mislyktes</h1><br/>%1 har ikke blitt installert på datamaskinen din.<br/>Feilmeldingen var: %2. @@ -961,12 +961,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Installation Complete - + Installasjon fullført The installation of %1 is complete. - + Installasjonen av %1 er fullført. @@ -984,7 +984,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Formatting partition %1 with file system %2. - + Formaterer partisjon %1 med filsystem %2. @@ -1023,12 +1023,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Set keyboard model to %1.<br/> - + Sett tastaturmodell til %1.<br/> Set keyboard layout to %1/%2. - + Sett tastaturoppsett til %1/%2. @@ -1059,7 +1059,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &OK - + &OK @@ -1098,18 +1098,18 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 driver</strong><br/>fra %2 <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 grafikkdriver</strong><br/><font color="Grey">fra %2</font> <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 nettlesertillegg</strong><br/><font color="Grey">fra %2</font> @@ -1124,7 +1124,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. <strong>%1</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">fra %2</font> @@ -1137,7 +1137,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. License - + Lisens @@ -1166,7 +1166,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &Change... - + &Endre... @@ -1177,7 +1177,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. %1 (%2) Language (Country) - + %1 (%2) @@ -1229,17 +1229,17 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Password is too short - + Passordet er for kort Password is too long - + Passordet er for langt Password is too weak - + Passordet er for svakt @@ -1254,7 +1254,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. The password is the same as the old one - + Passordet er det samme som det gamle @@ -1269,7 +1269,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. The password is too similar to the old one - + Passordet likner for mye på det gamle @@ -1299,22 +1299,22 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. The password contains less than %1 uppercase letters - + Passordet inneholder mindre enn %1 store bokstaver The password contains too few uppercase letters - + Passordet inneholder for få store bokstaver The password contains less than %1 lowercase letters - + Passordet inneholder mindre enn %1 små bokstaver The password contains too few lowercase letters - + Passordet inneholder for få små bokstaver @@ -1334,7 +1334,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. The password is too short - + Passordet er for kort @@ -1359,7 +1359,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. The password contains too many same characters consecutively - + Passordet inneholder for mange like tegn etter hverandre @@ -1444,7 +1444,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Setting is not of string type - + Innstillingen er ikke av type streng @@ -1464,7 +1464,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Unknown error - + Ukjent feil @@ -1477,12 +1477,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Keyboard Model: - + Tastaturmodell: Type here to test your keyboard - + Skriv her for å teste tastaturet ditt @@ -1495,12 +1495,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. What is your name? - + Hva heter du? What name do you want to use to log in? - + Hvilket navn vil du bruke for å logge inn? @@ -1890,13 +1890,13 @@ Output: Default Keyboard Model - + Standard tastaturmodell Default - + Standard @@ -1954,7 +1954,7 @@ Output: %1 cannot be installed on this partition. - + %1 kan ikke bli installert på denne partisjonen. @@ -2029,22 +2029,22 @@ Output: is plugged in to a power source - + er koblet til en strømkilde The system is not plugged in to a power source. - + Systemet er ikke koblet til en strømkilde. is connected to the Internet - + er tilkoblet Internett The system is not connected to the Internet. - + Systemet er ikke tilkoblet Internett. @@ -2114,7 +2114,7 @@ Output: Internal Error - + Intern feil @@ -2314,7 +2314,7 @@ Output: Cannot open /etc/timezone for writing - + Klarte ikke åpne /etc/timezone for skriving @@ -2463,7 +2463,7 @@ Output: Your username is too long. - + Brukernavnet ditt er for langt. @@ -2497,7 +2497,7 @@ Output: Users - + Brukere @@ -2510,7 +2510,7 @@ Output: &Language: - + &Språk: @@ -2530,7 +2530,7 @@ Output: &About - + &Om @@ -2563,7 +2563,7 @@ Output: Welcome - + Velkommen \ No newline at end of file diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index 1caabe62b..ea326e6a6 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -9,12 +9,12 @@ 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. - Este sistema foi iniciado com um ambiente de inicialização <strong>EFI</strong>.<br><br>Para configurar o início a partir de um ambiente EFI, este instalador deverá instalar um gerenciador de inicialização, como o <strong>GRUB</strong> ou <strong>systemd-boot</strong> em uma <strong>Partição de Sistema EFI</strong>. Este processo é automático, a não ser que escolha o particionamento manual, que no caso permite-lhe escolher ou criá-lo manualmente. + Este sistema foi iniciado com um ambiente de inicialização <strong>EFI</strong>.<br><br>Para configurar o início a partir de um ambiente EFI, este instalador deverá instalar um gerenciador de inicialização, como o <strong>GRUB</strong> ou <strong>systemd-boot</strong> em uma <strong>Partição de Sistema EFI</strong>. Esse processo é automático, a não ser que escolha o particionamento manual, que no caso fará você escolher ou criar o gerenciador de inicialização por conta própria. 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. - Este sistema foi iniciado utilizando o <strong>BIOS</strong> como ambiente de inicialização.<br><br>Para configurar a inicialização em um ambiente BIOS, este instalador deve instalar um gerenciador de boot, como o <strong>GRUB</strong>, no começo de uma partição ou no <strong>Master Boot Record</strong>, perto do começo da tabela de partições (recomendado). Este processo é automático, a não ser que você escolha o particionamento manual, onde você deverá configurá-lo manualmente. + Este sistema foi iniciado utilizando o <strong>BIOS</strong> como ambiente de inicialização.<br><br>Para configurar a inicialização em um ambiente BIOS, este instalador deve instalar um gerenciador de boot, como o <strong>GRUB</strong>, no começo de uma partição ou no <strong>Master Boot Record</strong>, perto do começo da tabela de partições (recomendado). Esse processo é automático, a não ser que você escolha o particionamento manual, onde você deverá configurá-lo manualmente. @@ -387,7 +387,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - Parece que não há um sistema operacional neste dispositivo. O que você gostaria de fazer?<br/>Você poderá revisar e confirmar suas opções antes que as alterações sejam feitas no dispositivo de armazenamento. + Parece que não há um sistema operacional neste dispositivo de armazenamento. O que você gostaria de fazer?<br/>Você poderá revisar e confirmar suas opções antes que as alterações sejam feitas no dispositivo de armazenamento. @@ -1514,7 +1514,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - <small>Se mais de uma pessoa usará este computador, você pode definir múltiplas contas após a instalação.</small> + <small>Se mais de uma pessoa utilizará este computador, você pode definir múltiplas contas após a instalação.</small> @@ -1534,7 +1534,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. <small>This name will be used if you make the computer visible to others on a network.</small> - <small>Este nome será usado caso você deixe o computador visível a outros na rede.</small> + <small>Esse nome será usado caso você deixe o computador visível a outros na rede.</small> diff --git a/lang/calamares_tr_TR.ts b/lang/calamares_tr_TR.ts index 5c4afeb74..1e028db31 100644 --- a/lang/calamares_tr_TR.ts +++ b/lang/calamares_tr_TR.ts @@ -1242,232 +1242,232 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. Password is too weak - + Şifre çok zayıf Memory allocation error when setting '%1' - + '%1' ayarlanırken bellek ayırma hatası Memory allocation error - + Bellek ayırma hatası The password is the same as the old one - + Şifre eski şifreyle aynı The password is a palindrome - + Parola eskilerden birinin ters okunuşu olabilir The password differs with case changes only - + Parola sadece vaka değişiklikleri ile farklılık gösterir The password is too similar to the old one - + Parola eski parolaya çok benzer The password contains the user name in some form - + Parola kullanıcı adını bir biçimde içeriyor The password contains words from the real name of the user in some form - + Şifre, kullanıcının gerçek adına ait kelimeleri bazı biçimde içerir The password contains forbidden words in some form - + Şifre, bazı biçimde yasak kelimeler içeriyor The password contains less than %1 digits - + Şifre %1 den az hane içeriyor The password contains too few digits - + Parola çok az basamak içeriyor The password contains less than %1 uppercase letters - + Parola %1 den az büyük harf içeriyor The password contains too few uppercase letters - + Parola çok az harf içermektedir The password contains less than %1 lowercase letters - + Parola %1 den daha küçük harf içermektedir The password contains too few lowercase letters - + Parola çok az küçük harf içeriyor The password contains less than %1 non-alphanumeric characters - + Şifre %1 den az alfasayısal olmayan karakter içeriyor The password contains too few non-alphanumeric characters - + Parola çok az sayıda alfasayısal olmayan karakter içeriyor The password is shorter than %1 characters - + Parola %1 karakterden kısa The password is too short - + Parola çok kısa The password is just rotated old one - + Şifre önceden kullanıldı The password contains less than %1 character classes - + Parola %1 den az karakter sınıfı içeriyor The password does not contain enough character classes - + Parola yeterli sayıda karakter sınıfı içermiyor The password contains more than %1 same characters consecutively - + Şifre, %1 den fazla aynı karakteri ardışık olarak içeriyor The password contains too many same characters consecutively - + Parola ardışık olarak aynı sayıda çok karakter içeriyor The password contains more than %1 characters of the same class consecutively - + Parola, aynı sınıftan %1 den fazla karakter ardışık olarak içeriyor The password contains too many characters of the same class consecutively - + Parola aynı sınıfta çok fazla karakter içeriyor The password contains monotonic sequence longer than %1 characters - + Şifre, %1 karakterden daha uzun monoton dizilim içeriyor The password contains too long of a monotonic character sequence - + Parola çok uzun monoton karakter dizisi içeriyor No password supplied - + Parola sağlanmadı Cannot obtain random numbers from the RNG device - + RNG cihazından rastgele sayılar elde edemiyor Password generation failed - required entropy too low for settings - + Şifre üretimi başarısız oldu - ayarlar için entropi çok düşük gerekli The password fails the dictionary check - %1 - + Parola, sözlüğü kontrolü başarısız - %1 The password fails the dictionary check - + Parola, sözlük onayı başarısız Unknown setting - %1 - + Bilinmeyen ayar - %1 Unknown setting - + Bilinmeyen ayar Bad integer value of setting - %1 - + Ayarın bozuk tam sayı değeri - %1 Bad integer value - + Yanlış tamsayı değeri Setting %1 is not of integer type - + %1 ayarı tamsayı tipi değil Setting is not of integer type - + Ayar tamsayı tipi değil Setting %1 is not of string type - + Ayar %1, dize tipi değil Setting is not of string type - + Ayar, dize tipi değil Opening the configuration file failed - + Yapılandırma dosyasını açma başarısız oldu The configuration file is malformed - + Yapılandırma dosyası hatalı biçimlendirildi Fatal failure - + Ölümcül arıza Unknown error - + Bilinmeyen hata @@ -1829,7 +1829,8 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. There was no output from the command. - + +Komut çıktısı yok. From 7e2f7dc4146148cc0732a786d294f8c5ff8800c2 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 9 Mar 2018 11:34:28 -0500 Subject: [PATCH 51/55] i18n: [desktop] Automatic merge of Transifex translations --- calamares.desktop | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/calamares.desktop b/calamares.desktop index fb7647a47..1bb0c0168 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -23,6 +23,10 @@ Categories=Qt;System; +Name[bg]=Calamares +Icon[bg]=calamares +GenericName[bg]=Системен Инсталатор +Comment[bg]=Calamares — Системен Инсталатор Name[ca]=Calamares Icon[ca]=calamares GenericName[ca]=Instal·lador de sistema From 1791ac2d43a18c1c61689dcbec3c0532367f8289 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 9 Mar 2018 11:34:30 -0500 Subject: [PATCH 52/55] i18n: [dummypythonqt] Automatic merge of Transifex translations --- .../lang/bg/LC_MESSAGES/dummypythonqt.mo | Bin 423 -> 585 bytes .../lang/bg/LC_MESSAGES/dummypythonqt.po | 7 ++++--- .../lang/tr_TR/LC_MESSAGES/dummypythonqt.mo | Bin 991 -> 997 bytes .../lang/tr_TR/LC_MESSAGES/dummypythonqt.po | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo index 470525ae3c03bfc99adf9ede7a19efd849d2daf4..348cc26294c8cb7f4ad5b1d04b0a3c36757650f5 100644 GIT binary patch delta 255 zcmZ3^e3GU9o)F7a1|VPtVi_Pd0b*7l_5orLNC0A9AWj5gP9V+);?;}{43$8d4~SKn z7#Ku=v`2C0F8i4{Qt=DG%!x&|f+ T1{PL^W, 2018\n" "Language-Team: Bulgarian (https://www.transifex.com/calamares/teams/20061/bg/)\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 "Натисни ме!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "Нов QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" diff --git a/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo index 12c4645f65f7e37608731a4b5759232956ab5261..57e8ac336a81599713f72037dedeced41d905e6a 100644 GIT binary patch delta 105 zcmcc5{*-+}i0NTQ28IM67GPjtP+?|ZFa^@4K$;IoX9H, 2016\n" "Language-Team: Turkish (Turkey) (https://www.transifex.com/calamares/teams/20061/tr_TR/)\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr_TR\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" From a519be130cf68f97054553d276440dd19e9e0971 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 9 Mar 2018 11:34:31 -0500 Subject: [PATCH 53/55] i18n: [python] Automatic merge of Transifex translations --- lang/python/bg/LC_MESSAGES/python.mo | Bin 423 -> 894 bytes lang/python/bg/LC_MESSAGES/python.po | 11 ++++++----- lang/python/ru/LC_MESSAGES/python.mo | Bin 559 -> 740 bytes lang/python/ru/LC_MESSAGES/python.po | 3 ++- lang/python/tr_TR/LC_MESSAGES/python.mo | Bin 1054 -> 1117 bytes lang/python/tr_TR/LC_MESSAGES/python.po | 4 +++- 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lang/python/bg/LC_MESSAGES/python.mo b/lang/python/bg/LC_MESSAGES/python.mo index 98846ddf8564d3191e4d3f2154d33fc173c9b0cc..20ac27ce5d77fcf2b1e8e992eded0b4371a652bc 100644 GIT binary patch literal 894 zcmaiy&2G~`5XTLai*MzO#Bu;7D(jD^KizY+ZxBYj!tDx$z+$ zp%OP9fJ=pl6rd5Wuz3OQyakicv_&nj(ocVTX8tql_5Qdpw`;(f11tfwzDI41tel4C5#0Rbcn5VFaN2pie+Aoihwb8z9r(AO@riqsF8nNrEyGJ|_{C z)+`dU2ysSdi9h03a;%%?JF^^^S~TUo6PCm1NkdccXEao}*1?-p$e1$^H7nJ-m31F& z`mOu5#)jFV85auIWfXVtN;i_Y%{^o`8*N+_lqfLaRidbe3XWUEP60bNkz4ex7Z)7Y zai9>lXfK{LKd5`?S6aBr{UFW3y&HbzIl&Gh1-HKnGnT=ht??oOGwO0DBLDO zQdNG?Uc<$sy2+?5DzMK&-hrRup<)oL!;N|=+AnnN5^dc gHq36!@iE}|0MiG0U+<0I=})kM{|xwR`RVO{0Ua(>umAu6 delta 68 zcmeyzww&4Go)F7a1|VPrVi_P-0b*t#)&XJ=umIv*prj>`2C0F8i7)ymZ)JP{02;ao A@c;k- diff --git a/lang/python/bg/LC_MESSAGES/python.po b/lang/python/bg/LC_MESSAGES/python.po index c64d4dc1c..a86edb07c 100644 --- a/lang/python/bg/LC_MESSAGES/python.po +++ b/lang/python/bg/LC_MESSAGES/python.po @@ -10,6 +10,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-07 18:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Georgi Georgiev , 2018\n" "Language-Team: Bulgarian (https://www.transifex.com/calamares/teams/20061/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -36,18 +37,18 @@ msgstr "" #: src/modules/packages/main.py:62 src/modules/packages/main.py:72 msgid "Install packages." -msgstr "" +msgstr "Инсталирай пакетите." #: src/modules/packages/main.py:65 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Инсталиране на един пакет." +msgstr[1] "Инсталиране на %(num)d пакети." #: src/modules/packages/main.py:68 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Премахване на един пакет." +msgstr[1] "Премахване на %(num)d пакети." diff --git a/lang/python/ru/LC_MESSAGES/python.mo b/lang/python/ru/LC_MESSAGES/python.mo index ffbafcfcc5c0ca3553671755dc1dfce9afc7e5ab..493a6c00bf495f41b073ef65e234b30c4627d406 100644 GIT binary patch delta 251 zcmZ3_@`Sbio)F7a1|VPpVi_RT0b*7lwgF-g2moSjAPxj#9iXCGAZ-c6tAK1qAPoW_ zy>Jjvl%JehT%4Jgu27JeoSm4STCAX, 2018\n" "Language-Team: Russian (https://www.transifex.com/calamares/teams/20061/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,7 +33,7 @@ msgstr "" #: src/modules/packages/main.py:60 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Обработка пакетов (%(count)d / %(total)d)" #: src/modules/packages/main.py:62 src/modules/packages/main.py:72 msgid "Install packages." diff --git a/lang/python/tr_TR/LC_MESSAGES/python.mo b/lang/python/tr_TR/LC_MESSAGES/python.mo index a95ca03ad5a130c3ac4757fc58e146758ca95e1a..fa297fff9263b5f1bc9a597c23248f58551c3120 100644 GIT binary patch delta 108 zcmbQoahGF4jNM^I28NYDEXcsXkju=#AOfW8fwUx$o&ux=fb=>bZ49LM18Hp_{TWEx w0%>`cjkESM2^(1}6y%f^CFa;_ delta 93 zcmcc1F^^+HjNM*F28NYDEXcsXkj~7&AOfT-fwUx$?gP>SKzap~zY|Dn1NoPMv>cHB f&%ANgekN{1YlVWG(xSv1TZ742%=wc)GkXI7)Eg3K diff --git a/lang/python/tr_TR/LC_MESSAGES/python.po b/lang/python/tr_TR/LC_MESSAGES/python.po index 9c7d98b8f..2acfdf7f9 100644 --- a/lang/python/tr_TR/LC_MESSAGES/python.po +++ b/lang/python/tr_TR/LC_MESSAGES/python.po @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr_TR\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -44,9 +44,11 @@ msgstr "Paketleri yükle" msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "%(num)d paket yükleniyor" +msgstr[1] "%(num)d paket yükleniyor" #: src/modules/packages/main.py:68 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "%(num)d paket kaldırılıyor." +msgstr[1] "%(num)d paket kaldırılıyor." From d4f0be02d3f01ca5574a2bc50298a38183f4bfbf Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 12 Mar 2018 09:09:29 -0400 Subject: [PATCH 54/55] i18n: make build reproducible The RCC output files in version 2 contain a timestamp of the source file, which changes per build. Drop down to version 1, which just removes the timestamp. See reproducible builds note 'timestamps in source generated by rcc'. FIXES #917 --- CMakeModules/CalamaresAddTranslations.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index 63bf63189..f5dd8c50c 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -61,7 +61,7 @@ macro(add_calamares_translations language) add_custom_command( OUTPUT ${trans_outfile} COMMAND "${Qt5Core_RCC_EXECUTABLE}" - ARGS ${rcc_options} -name ${trans_file} -o ${trans_outfile} ${trans_infile} + ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile} MAIN_DEPENDENCY ${trans_infile} DEPENDS ${QM_FILES} ) From 902e392b6d422118e4de59ec0d4ccf38629cf119 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 12 Mar 2018 10:13:33 -0400 Subject: [PATCH 55/55] CMake: bump version for -rc4 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f8c96777..f3c5baca8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -198,7 +198,7 @@ set( CALAMARES_TRANSLATION_LANGUAGES ar ast bg ca cs_CZ da de el en en_GB es_MX set( CALAMARES_VERSION_MAJOR 3 ) set( CALAMARES_VERSION_MINOR 2 ) set( CALAMARES_VERSION_PATCH 0 ) -set( CALAMARES_VERSION_RC 3 ) +set( CALAMARES_VERSION_RC 4 ) set( CALAMARES_VERSION ${CALAMARES_VERSION_MAJOR}.${CALAMARES_VERSION_MINOR}.${CALAMARES_VERSION_PATCH} ) set( CALAMARES_VERSION_SHORT "${CALAMARES_VERSION}" )