Commit Graph

148 Commits

Author SHA1 Message Date
Adriaan de Groot
34b1a250ba [libcalamares] Improve warnings when module descriptor files are bad 2019-06-18 12:06:13 +02:00
Adriaan de Groot
5fdaeaa899 [libcalamaresui] Improve wording when module is missing configuration 2019-06-18 11:58:03 +02:00
Adriaan de Groot
2e39f24bb0 [libcalamaresui] Make sure finished() is processed once
- Avoid races which might double-delete the timer, or enter
   the if twice (which would lead to duplicate emissions of
   requirementsComplete and the associated UI glitches).
2019-05-27 17:15:49 +02:00
Adriaan de Groot
2b91608b82 [libcalamaresui] Avoid requirements-results UI duplication
If the requirements checking is **really fast**, e.g. you don't
have a check for internet connectivity, then the checks
might be done as fast as the 0-timeout single-shot timer,
which means that finished() is called once by the QFutureWatcher,
and then after that by the QTimer .. leading to two messages
"All requirements have been checked", but also twice
requirementsComplete being emitted, so you end up with two
results lists being added by the CheckerContainer.

Stop that by using the results-progress timer as an additional
flag: the first time everything is complete, delete that timer
and set the pointer back to nullptr.
2019-05-27 17:10:21 +02:00
Adriaan de Groot
8fcdbd5bd5 [libcalamaresui] Improve warning message
- Tell the packager / deployer that certain modules are missing
2019-05-12 16:29:50 +02:00
Adriaan de Groot
9331a25905 [libcalamares] Remove Typedefs.h
- This small header file contained a few unrelated typedefs.
   Move those typedefs to the classes they relate to. This
   **does** mean that some consumers need to #include something
   else instead.
 - Use type names more consistently.

Editorial: why are **pages** responsible for creating the jobs?
2019-05-07 09:51:23 -04:00
Adriaan de Groot
a99eccf19d [libcalamaresui] Fix PythonQt code w/ moved enums 2019-05-07 08:47:33 -04:00
Adriaan de Groot
cdb613bf02 [libcalamares] Move module-related things into subdirectory
- Currently just moves a single enum, but this is prep-work for
   moving the non-GUI parts of the module system into libcalamares,
   to better support GUI-less operation.
2019-05-07 07:48:40 -04:00
Adriaan de Groot
169159f888 [libcalamaresui] Switch to enum classes for Type, Interface
- Somewhat gratuitous change, but brings more enums into modern style.
2019-05-07 06:33:31 -04:00
Adriaan de Groot
6b89ac8461 [libcalamaresui] Remove TODO
- I don't know what this would mean, so it's not a TODO any more.
2019-05-07 06:26:43 -04:00
Adriaan de Groot
ac095d9ed0 [libcalamares] [libcalamaresui] [calamares] Adjust to moved Dirs.h 2019-04-29 06:49:16 -04:00
Adriaan de Groot
f076dd76ad [libcalamares] Rename YamlUtils.h
- Since we have the utils/ filesystem namespace, and use CalamaresUtils::
   as C++ namespace, simplify naming.
2019-04-29 06:14:21 -04:00
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
d6cf0617f6 [libcalamaresui] Make logging more consistent 2019-04-15 09:02:21 -04:00
Adriaan de Groot
1008a91eba [libcalamaresui] Reduce warnings
- getting a (sensible) uint from an int is tougher than you might think
2019-04-11 15:14:31 +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
5a8ed8583f [libcalamaresui] Complain about missing config files
- When no config file is found, tell where it wasn't.
2019-03-19 05:42:28 -04:00
Adriaan de Groot
54ba0aaf13 [welcome] Use convenience function
- Introduce a hasDetails() for RequirementEntry, which is just
   a short-cut, but makes code more readable.
2019-02-26 06:20:20 -05:00
Adriaan de Groot
40a7082bfc [libcalamaresui] Handle no-requirements-to-check case
- If there's no requirements at all, none of the watchers
   will call finished(), so do it once extra.
2019-02-25 07:15:51 -05:00
Adriaan de Groot
0ad115732e [libcalamaresui] Report elapsed time as well.
- While waiting on modules, report the elapsed time in seconds
   based on the number of progress-ticks that have passed.
2019-02-25 06:39:50 -05:00
Adriaan de Groot
5ddf7b980b [libcalamaresui] Report progress also while waiting
- Ping the progress every 1.2 seconds, so the user sees more than
   just the throbber.
2019-02-25 06:33:46 -05:00
Adriaan de Groot
ac652a2bc1 [libcalamaresui] Report module-name in italics 2019-02-25 04:19:05 -05:00
Adriaan de Groot
41fecf341b [libcalamaresui] Avoid metatype warnings at runtime
- Register the types with the Qt type system. This is needed
   because we're passing them as signal and slot parameters
   across threads.
2019-02-24 15:57:36 -05:00
Adriaan de Groot
f1aa22d9e8 [libcalamaresui] Sort signals chronologically 2019-02-24 09:08:02 -05:00
Adriaan de Groot
b169281b69 [libcalamaresui] Use convenience type 2019-02-23 17:41:24 -05:00
Adriaan de Groot
6090a464f8 [libcalamaresui] Switch requirementschecking to threaded mode
- Use QFuture and QFutureWatcher to spawn threads that do the actual
   checking of the requirements; collect results and report on
   them as they come in.
2019-02-23 11:12:55 -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
ff10e1301d [libcalamaresui] Fix struct/class mismatch 2019-02-18 10:10:16 -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
43eae0bc47 Merge branch 'master' into requirements-checking 2019-02-15 00:32:45 +01:00
Adriaan de Groot
3b8d2835e0 [calamares] Use XDG_{DATA,CONFIG}_DIRS as appropriate
- Use DATA for the qml and branding directories (looks for qml/
   and branding/<name>/ in those directories).
 - Use CONFIG for the global settings and module settings (looks
   for settings.conf and module/<name>/ in those directories).

FIXES #941
2018-10-08 10:28:30 -04:00
Adriaan de Groot
39a0d2315b [calamares] Better config-loading diagnostics
- Be more verbose when things go wrong while loading module-
   configuration files.
 - Allow more forms of paths to be specified. In debug mode, this
   is mostyle helpful for the module test-loader.
2018-09-20 07:39:43 -04:00
Adriaan de Groot
4602b30264 [libcalamaresui] Use PYTHONQT_INCLUDE_DIRS
- document new variable from the CMake module
 - use it in libcalamaresui to simplify #include'ing the
   header for the "all" extension.

Suggested by Denis Proskurin.
2018-09-03 06:26:26 -04:00
Adriaan de Groot
bf40f3bd23 Merge branch 'master' into requirements-checking 2018-08-10 12:02:57 -04:00
Adriaan de Groot
ae7700f2d7 [libcalamares] Refactor searching for module configurations
- Similar to the refactorings in Calamares proper, just split out
   collecting the search paths into a static function. This makes
   it a little easier to find places that will need expansion for
   more-than-one-config-directory.
2018-07-10 04:12:24 -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
731594fb40 [libcalamaresui] Remove the requiredModules setting
- The value set in module.desc was never stored for use,
   but isn't an attribute of the instance, either. It belongs
   with the descriptor, in ModuleManager.
2018-06-26 08:18:00 -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
374a9bdca6 Merge branch 'emergency-modules'
Introduce the notion of emergency modules and emergency jobs.
Initial use will probably center around the preservefiles module,
and possibly umount.

FIXES #928
2018-06-15 12:04:55 -04:00
Adriaan de Groot
3ed6f13fa8 [libcalamaresui] Adjust the emergency-ness of modules
A potentially emergency module is one that has EMERGENCY
(in CMake) or emergency: true (in module.desc) set.
Any such module must also set emergency: true in the
configuration of the module. This is to allow for
instances of a module that **don't** run as emergency
modules, alongside actual emergency ones.
2018-06-15 09:32:19 -04:00
Adriaan de Groot
def459a29d [libcalamaresui] Read emergency setting from module.desc
- Read setting from the module descriptor
 - Document optional settings
 - Add EMERGENCY keyword to the CMake helper functions
2018-06-15 07:11:17 -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
2d7eea6d73 Merge branch 'master' into emergency-modules 2018-06-14 17:15:40 -04:00
Adriaan de Groot
290559f8c1
Merge pull request #986 from raurodse/configurationPythonQt
Add configuration values into pythonqt modules
2018-06-14 13:19:42 -04:00
Raul Rodrigo Segura
448c5eae16 style code 2018-06-14 16:33:58 +02:00