Commit Graph

52 Commits

Author SHA1 Message Date
Adriaan de Groot
c83395ff6d Reduce warnings for yaml-cpp
- Use only utils/YamlUtils.h to pull in yaml-cpp and supporting code.
 - When compiling with clang, turn off warnings that the system header
   for yaml-cpp would generate.
2019-04-18 12:06:09 +02:00
Adriaan de Groot
2b7832857c [libcalamaresui] Simplify checking dependencies
- Avoid crash due to invalid iterator, when modules
   are removed due to missing requirements.
 - Simplify code, factor out the determination of
   which required modules are missing.
2019-03-19 11:11:43 -04:00
Adriaan de Groot
f1aa22d9e8 [libcalamaresui] Sort signals chronologically 2019-02-24 09:08:02 -05:00
Adriaan de Groot
c678cd80b4 [libcalamaresui] Refactor Requirements-Checking
- Move the actual checking into a separate object with some lifecycle-
   management signals.
 - Right now this is still single-threaded and blocking, so no net gain.
2019-02-20 05:48:15 -05:00
Adriaan de Groot
bbb9ff0cbf [libcalamaresui] Remove useless #define 2019-02-18 10:19:06 -05:00
Adriaan de Groot
5aa4e52452 [libcalamaresui] Improve debug-logging 2019-02-18 09:09:37 -05:00
Adriaan de Groot
d33752c66c [libcalamaresui] Refactor Requirements classes
- improve naming of member variables
 - expand documentation
2019-02-15 20:53:55 +01:00
Adriaan de Groot
bf40f3bd23 Merge branch 'master' into requirements-checking 2018-08-10 12:02:57 -04:00
Adriaan de Groot
d66393f1ae [libcalamares] Fix early failure mode
- There is more to failing out of loadModules() than just
   emitting modulesFailed, so instead share the failure
   code with the code after loading modules -- but don't load any.
2018-06-26 08:43:23 -04:00
Adriaan de Groot
08966ff933 [libcalamaresui] Check module dependencies
- Module dependency-checking is done in two phases:
   first, catch any unknown modules that are listed
   in *requiredModules* and bail out before loading
   anything. Second, check that the modules required
   by X occur before X in the sequence.
2018-06-26 08:32:36 -04:00
Adriaan de Groot
1a097f8c49 Style: run modulesystem through the style guide 2018-06-18 10:56:10 -04:00
Adriaan de Groot
58121abf06 [libcalamaresui] Wasted spaces 2018-06-18 10:44:28 -04:00
Adriaan de Groot
a64de3dbfe [libcalamaresui] Assign the index to found
- Previous code assigns the result of the comparison to found,
   instead of the index, resulting in the wrong configuration
   map sent to each module.
2018-06-18 10:29:30 -04:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Adriaan de Groot
9918dfb95f [libcalamaresui] Reporting on failures
- Provide information on failed modules
 - Disallow further progress when configuration is borked
2018-06-13 13:41:38 -04:00
Adriaan de Groot
35124c149e [libcalamaresui] Drop the 'goodbye' message 2018-06-11 13:35:12 -04:00
Adriaan de Groot
a40c36ef49 [libcalamaresui] Report on failed module loading
- Collect the failed modules, instead of bailing out on the first one
   (this also prevents crashes caused by quit() called from a timer).
 - Introduce a slot to report on failed module loading (no UI yet).
2018-06-11 05:59:56 -04:00
Adriaan de Groot
1999e4e5c2 [libcalamaresui] Error out consistently when module loading fails
- Some module-loading failures were ignored and produce only a
   warning, instead of erroring out.
2018-06-08 18:14:51 -04:00
Adriaan de Groot
dccf6f16f5 [libcalamaresui] Lambdas are fun, but not always the solution 2018-06-08 17:56:23 -04:00
Adriaan de Groot
a626e52bf3 [libcalamares] Introduce more descriptive type name 2018-06-08 17:36:29 -04:00
Adriaan de Groot
e5ca8e091f [libcalamaresui] Use refactored loadYaml 2018-05-24 06:46:11 -04:00
bill auger
b6673f6324 move thisModule->isLoaded assert to after it's warning message 2018-05-22 03:39:16 -04:00
Adriaan de Groot
032b33f56f [libcalamaresui] Improve logging.
- Put the (constant) 'Calamares will now quit' on its own debug line.
 - Tell the user what the search paths are if a module is not found
   (prompted by a mis-configuration in a Neon live image).
2018-04-04 11:25:28 -04:00
Adriaan de Groot
c7629182e4 Merge branch 'master' into requirements-checking 2018-03-06 17:06:35 +01:00
Adriaan de Groot
a72bdfac52 Merge branch 'master' into requirements-checking 2018-03-06 14:57:17 +01:00
Adriaan de Groot
60f440f72b [libcalamaresui] Use new convenience logging methods
- Remove a few confusing Q_FUNCINFO
2018-02-12 11:58:34 -05:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
27b921bde1 [libcalamaresui] Move requirements information out of welcome module.
- Move type and rename it; put in Calamares namespace
 - Emit signals from the viewmanager as results come in
 - Remove state changing from welcome view step based on its internal
   requirements checking (for now this breaks progressing past the
   welcome page)
 - Log checking of the requirements
2017-12-02 10:59:33 -05:00
Adriaan de Groot
24e04645b6 [libcalamaresui] Stub requirements checking.
Introduce a method checkRequirements() into the module system so that
individual modules can do their own checking (as opposed to stuffing
it all into the welcome module).
2017-12-02 09:26:22 -05:00
Adriaan de Groot
8917d153da Drop the (inter-)module dependencies system.
- Was marked incomplete and unused; none of the existing modules
   set any requirements, and the descriptors are not set up to
   hold the requirements information anyway.
 - Dependencies are generally through globalStorage values, or if
   there are dependent jobs they should be created in-order by one
   source (e.g. though a View or a subclass of CppJob which overrides
   jobs() ).
 - It is the responsibility of deployers to formulate a settings.conf
   that includes all the required modules.
 - A 'real' dependency system is going to lead to the introduction
   of interface-definitions and a great deal of complexity, for a
   use case that can be handled with careful deployment instead.
2017-09-27 05:34:06 -04:00
Adriaan de Groot
463615a1c0 Clang: don't shadow local variable names 2017-09-10 13:22:54 -04:00
Adriaan de Groot
e26d5ab206 Don't leak memory for allocated modules 2017-08-31 04:13:52 -04:00
Teo Mrnjavac
de3c94fc97 Useless debug is useless. 2017-02-28 18:08:20 +01:00
Andrius Štikonas
9f0ca042fe Port away from most cases of Q_FOREACH to C++11 ranged for loop.
In order to avoid deep copies, Qt containers over which we iterate must be const
The remaining unported cases require qAsConst (Qt 5.7) or std::as_const (C++17)
2016-09-01 16:46:14 +01:00
Teo Mrnjavac
fb44fb97b6 Massive refactor of module loading, configuration, startup, management. 2015-09-15 16:48:42 +02:00
Teo Mrnjavac
3b56c5c9e8 Use safe QTimer::singleShot connection. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
506e51598d Do not dereference a nullptr. 2015-06-21 01:39:28 +02:00
Teo Mrnjavac
11f5b729a8 Avoid dereferencing nullptr. 2015-06-14 01:10:50 +02:00
Teo Mrnjavac
df9daf8fec Avoid accessing nullptr. 2015-06-14 01:02:50 +02:00
Teo Mrnjavac
dda7ea211d Make ModuleManager accessible from outside CalamaresApplication. 2015-03-10 19:51:08 +01:00
Teo Mrnjavac
20bc34029d Copyright. 2015-01-29 22:46:07 +01:00
Teo Mrnjavac
a670de3035 Add currentPhase to ModuleManager. 2015-01-29 22:46:07 +01:00
Teo Mrnjavac
fef448833e And some more debug output readability improvements. 2014-10-30 17:36:56 +01:00
Teo Mrnjavac
f2f73b2e87 More meaningful debug output. 2014-10-30 17:30:13 +01:00
Teo Mrnjavac
9ebc881223 Prevent segfault on exit when module not found. 2014-10-07 16:07:28 +02:00
Teo Mrnjavac
8f10c21e5b Big configuration overhaul.
Module descriptors are now module.desc, no configuration allowed inside.
Module config files are <modulename>.conf, installed in
share/calamares/modules.
settings.conf is read from /etc/calamares, then share/calamares, and if
running with --debug also in the current dir.
Module config files are read from /etc/calamares/modules, then
share/calamares/modules, and if running with --debug also in
src/modules/<modulename> relative to the current dir.
2014-08-06 11:54:45 +02:00
Aurélien Gâteau
551a6ff9ba Fix potential memleak 2014-07-30 22:37:05 +02:00
Teo Mrnjavac
8d28a2ea5d Generalized code path for Phase switching. Also load install modules. 2014-07-12 14:38:33 +02:00
Teo Mrnjavac
84bfb2aa95 Fixes for loading modules by phase. 2014-07-12 13:13:15 +02:00
Teo Mrnjavac
2e47c248ac Load modules by phase, in preparation for actually using new settings. 2014-07-11 14:40:15 +02:00