Commit Graph

1115 Commits

Author SHA1 Message Date
Adriaan de Groot
b0149c2712 [libcalamares] Log the Python language-search process just once
- log the list of search paths once
- log the found-language as if from Python
- warn always if none are found
2021-09-22 11:29:52 +02:00
Adriaan de Groot
db26df311d [libcalamares] Reduce log-spam in emergencies
- when an emergency strikes, log the modules that are skipped
  with a Once, but if an emergency module runs, refresh that
  Once so that the function header is printed again -- to
  distinguish JobQueue debugging from the logging from the
  emergency module.
2021-09-22 01:44:00 +02:00
Adriaan de Groot
9be9431970 [libcalamares] Give Logger::Once more flexibility 2021-09-22 01:41:28 +02:00
Adriaan de Groot
049bccbdd8 [libcalamares] Cut down log-spam from KPMManager 2021-09-22 01:28:40 +02:00
Adriaan de Groot
39915db988 [libcalamares] Reduce log spam when running commands 2021-09-22 00:58:31 +02:00
Adriaan de Groot
54385b7606 [libcalamares] Cut down config-file-loading log spam 2021-09-21 16:53:09 +02:00
Adriaan de Groot
ada13c19fd [libcalamares] Simplify filling the entropy buffer 2021-09-21 12:02:26 +02:00
Adriaan de Groot
8d71e67a75 Add Q_OBJECT macro where it's missing
- Transifex tools complain about missing Q_OBJECT (which makes
  some sense -- you end up with a different context for calls
  to tr(), of the base class).
2021-09-08 13:23:20 +02:00
Adriaan de Groot
24162cb162 i18n: repair language names for Chinese
Prompted by Linlinger, I've reconsidered the names of languages
in the drop-down in the welcome page. We already have the
infrastructure for assigning specific names / locales to
"Calamares locale names" (which match Transifex names, not
necessarily Qt names). Use that to put exactly two Chinese-
language translations in the drop-down:
- Simplified Chinese (code zh_CN)
- Traditional Chinese (code zh_TW)
Drop zh (which is a peculiar locale name anyway) and zh_HK
(which is Traditional Chinese, but using the geographic
boundary is a bit weird; we're going to ignore the
minor orthographic differences with Traditional Chinese
written elsewhere for now).

Note that this makes the drop-down show "Chinese"
in the English column, twice; the difference is visible
only in the native-language representation.

SEE #1741
2021-09-07 15:47:30 +02:00
Adriaan de Groot
4e60f8af13 [libcalamares] Use strong types for locale Ids
Change the API to force strong type for more methods.
This cascades to a couple of consumers.
2021-09-07 12:51:57 +02:00
Adriaan de Groot
3ff5896dc6 [libcalamares] Remove unused method 2021-09-07 12:35:47 +02:00
Adriaan de Groot
5f4e65bc77 [libcalamares] Code-format Retranslator, hide internal symbols 2021-09-07 12:35:37 +02:00
Adriaan de Groot
ad1a4b6479 [libcalamares] APIdox on Translation 2021-09-07 11:42:32 +02:00
Adriaan de Groot
73bfc6ca32 [libcalamares] Use structured bindings to unpack a std::pair 2021-09-07 11:38:54 +02:00
Adriaan de Groot
5e7746668e Merge branch 'calamares' into refactor-translation 2021-09-06 15:38:42 +02:00
Adriaan de Groot
0aa2603a23 [libcalamares] Fix network-connectivity check on old Qt
With old Qt, Calamares could only run one check on a thread,
because the NAM would be switched to NotAccessible --
subsequent checks would fail because the NAM is already
hard-set to NotAccessible, so it could never be turned back
on by Calamares code.

Reset the accessible flag for the NAM while checking if
the internet is there.
2021-09-06 14:44:52 +02:00
Adriaan de Groot
3519697d0e [libcalamares] Slightly more memory-safe
Use unique_ptr to ensure Private is always deleted.

SEE #1758
2021-08-31 12:54:51 +02:00
Adriaan de Groot
0538881447 [libcalamares] Handle multiple invalid URLs at once
- expand tests with example where more than one URL is invalid
- fix the call to the wrong overload of QVector::erase()
2021-08-26 14:32:57 +02:00
Adriaan de Groot
653359d815 [libcalamares] Fix up multiple URLs for checkinternet
- was filtering out the wrong URLs
- was not actually removing the invalid URLs
- extend API to make it possible to count / confirm the settings
- extend tests to demonstrate that API and the issues
2021-08-26 12:57:40 +02:00
Adriaan de Groot
1e05e7996b [libcalamares] Avoid cError + SubEntry
The combination of Error and SubEntry loses the indentation.
2021-08-24 12:32:48 +02:00
Adriaan de Groot
14c26d01af [libcalamares] Warnings for nullptr Settings 2021-08-24 12:30:44 +02:00
Adriaan de Groot
c79fc2e6d9 [libcalamares] Add urls only if valid, add tests to check that 2021-08-24 10:00:42 +02:00
Adriaan de Groot
2f3062f4c2 [libcalamares] Fix typo in comment 2021-08-01 23:49:33 +02:00
Adriaan de Groot
81fe8b1488 [libcalamares] Expand API for setting URLs to check 2021-08-01 22:37:13 +02:00
Adriaan de Groot
b8583a1e59 [libcalamares] Expand the number of URLs to check for connectivity
- introduce a list of URLs instead of just one
- ping each of them, in turn, until one responds
2021-08-01 22:07:51 +02:00
Adriaan de Groot
559c53b09c [libcalamares]: stronger type for translation name
QString -> Id for translations in the external API, to avoid
accidentally converting a QLocale name (e.g. ca_ES) into a
Calamares translation name. This preserves special-cases
like ca@valencia and sr@latin.
2021-07-28 14:22:28 +02:00
Adriaan de Groot
bc9d8fb13a [libcalamares] Rename files Label -> Translation 2021-07-28 14:22:28 +02:00
Adriaan de Groot
bf9f1c95bc [libcalamares] Rename classes describing Translations
- the name 'Label' was a relic of the class being UI-centered
2021-07-28 14:22:28 +02:00
Adriaan de Groot
d6825c4986 [libcalamares] Fix linking with renamed targets 2021-07-28 13:20:35 +02:00
Adriaan de Groot
3596b48c7a [libcalamares] Factor out common string in Python logging
- enforce consistent [PYTHON JOB]
- use CDebug() constructor, because the convenience macro's
  introduce the function name -- that's the C++ function, so
  it isn't useful for logging.
2021-07-28 13:13:39 +02:00
Adriaan de Groot
a65723d4da [libcalamares] Extend cPointerSetter with initial-value
This is a convenience for "set <some variable> to <some value>
at end of scope".
2021-07-31 00:20:27 +02:00
Adriaan de Groot
954e8ee3f8 [libcalamares] warnings-- with a deduction guide 2021-07-26 15:18:21 +02:00
Adriaan de Groot
4114a2bbe8 CMake: chase renamed YAMLCPP 2021-07-26 15:08:29 +02:00
Adriaan de Groot
cbb1a5ef36 CMake: within Calamares repo, use the (eventual) imported names of libraries 2021-07-26 14:22:28 +02:00
Adriaan de Groot
a1fb83bdc4 i18n: fix typo and code-style 2021-07-26 11:16:26 +02:00
Adriaan de Groot
53fb16437f i18n: factor out special cases
- allow special Locale or special Name for a translation (or both)
2021-07-25 23:38:09 +02:00
Adriaan de Groot
0e977a7e42 i18n: introduce special case for ca@valencia 2021-07-25 23:18:05 +02:00
Adriaan de Groot
740f1e7fe5 i18n: simplify Label handling of sr@latin 2021-07-25 23:13:44 +02:00
Adriaan de Groot
59f11e9b67 i18n: make retranslator more consistent
- Improve naming.
- Both lambda and slot versions call the code immediately.
2021-07-24 23:26:02 +02:00
Adriaan de Groot
613d076a60 i18n: re-do the whole Retranslator infrastructure
Just have **one** Retranslator object, and install it as event-filter
(this needs to be done manually on a top-level widget) and use
signals / slots to do the actual work, rather than filtering
in multiple places and doing our own mediocre version of binding-
signal-to-lambda.
2021-07-24 23:18:03 +02:00
Adriaan de Groot
f32671ebab libcalamares: remove declaration that was never implemented 2021-07-23 22:51:08 +02:00
Adriaan de Groot
56ecf01dea Merge branch 'pr-1667' into calamares
Allow user-selection of FS type

FIXES #1667
2021-07-05 12:31:58 +02:00
Adriaan de Groot
88be947f6c [libcalamares] Expand tests for Variant access
- document that getStringList() also handles strings as 1-element lists
2021-06-29 12:13:37 +02:00
Adriaan de Groot
432154e50a [libcalamares] Improve Once-logging
Sending a Once to a logger that isn't enabled should not "consume"
that Once; it's still available for a subsequent logger that **is**
enabled (useful if you're using more than one log-level in a function).
2021-06-18 16:10:13 +02:00
Adriaan de Groot
66f96e339c [libcalamares] Introduce cVerbose() convenience macro (like cDebug()) 2021-06-18 16:01:04 +02:00
Adriaan de Groot
ef436ac4d7 [libcalamares] add a convenience optional-setter for use with pointers 2021-06-18 13:49:08 +02:00
Adriaan de Groot
629fc83f21 [libcalamares] Add a pre-script for PythonJobs
This allows injecting arbitrary Python code before
the script of a module is even run. For testing
purposes, that gives us a chance to modify existing
(internal) modules before the script (e.g. to test
subprocess calls).
2021-06-15 21:50:59 +02:00
Adriaan de Groot
6ee0da41c8 [libcalamares] Avoid deprecation warning in network attributes 2021-06-15 11:45:29 +02:00
Adriaan de Groot
f0a25bd397 [libcalamares] Avoid warnings from deprecated country codes.
The Qt documentation does not mention @since for these values,
so we're going to let CI catch them.
2021-06-15 11:41:17 +02:00
Adriaan de Groot
cf341c53fa Merge branch 'calamares' into improve-partition 2021-05-25 17:37:15 +02:00
Adriaan de Groot
b68e535131 [libcalamares] Log to file and stdout consistently
- The log **file** got every QDebug object, while stdout only
  got the ones of sufficient logging level. A CDebug object checks the
  logging level before writing anything -- so those already were
  consistent, but any qDebug() in the program (not cDebug()!) would
  reach the writing-function anyway, and so log to the file.
  Fix this weird inconsistency by checking log-level just once,
  for both writes.
2021-05-31 11:39:13 +02:00
Adriaan de Groot
716328cafb [libcalamares] Un-clog Logging
- Map QtMsgType -- used by qDebug() and qWarning() -- to levels used
  by Calamares in a consistent fashion.
- Drop unused log levels (INFO, EXTRA unused in any Calamares code).
2021-05-31 11:26:49 +02:00
Adriaan de Groot
d731e12456 [libcalamares] Add an extra job-failure enum value 2021-05-15 07:46:03 +02:00
Adriaan de Groot
df20aa9ddb Merge branch 'calamares' into improve-partition 2021-04-23 23:33:49 +02:00
Adriaan de Groot
bac1108781 Merge branch 'issue-1550' into calamares
FIXES #1550
2021-04-23 22:37:12 +02:00
Adriaan de Groot
7521be3c5f [libcalamares] Add find() to namedenumtable that takes a default value 2021-04-23 18:03:24 +02:00
Adriaan de Groot
049b9f9c74 [libcalamares] Test the packages service API
- check that the variant and the string-list version of
  the API do the same thing, check independence of
  settings for different instance keys.
2021-04-23 11:49:06 +02:00
Adriaan de Groot
e400f79673 [libcalamares] Extend packages service API
- convenience method to install a (string) list of packages
  (doesn't do the installation, but adds to GS the list, so
  that the packages module can handle it).
2021-04-23 10:25:29 +02:00
Adriaan de Groot
1af8796b2b [libcalamares] Refactor translations-for-a-test CMake code
- turn the translations-QRC phase into a function, just in
  case other tests need translations as well.
- This CMake code might work as the base of translation-wrangling for
  plugins (externally).
2021-04-18 13:35:18 +02:00
Adriaan de Groot
cfbe722350 [libcalamares] Test the translated string with real translations
- introduce a bogus translation context, load translations,
  and check that the context-enabled translator does its job.
2021-04-18 13:19:55 +02:00
Adriaan de Groot
0143aa5515 [libcalamares] Make the branding-loading messages follow same format as the others 2021-04-17 22:13:16 +02:00
Adriaan de Groot
d72e42f7ba [libcalamares] Extend (configuration) translated string with context
Make it possible to pass in a context for strings not-from-config
maps, to allow programmatically set, but translatable, strings.
2021-04-17 14:41:08 +02:00
Adriaan de Groot
ed14c49a03 [libcalamares] Extend (configuration) translated string with context
Make it possible to pass in a context for strings not-from-config
maps, to allow programmatically set, but translatable, strings.
2021-04-16 14:38:39 +02:00
Adriaan de Groot
35f4a81768 [libcalamares] Extend packages service API
- convenience method to install a (string) list of packages
  (doesn't do the installation, but adds to GS the list, so
  that the packages module can handle it).
2021-04-16 14:29:39 +02:00
Adriaan de Groot
bf7b41f548 [libcalamares] Document the Once class for logging 2021-03-29 15:31:41 +02:00
Adriaan de Groot
d4f28e863f [libcalamares] Allow rvalue Once to be used in logging 2021-03-29 15:23:55 +02:00
Adriaan de Groot
0ccd55e33f [libcalamares] Warn (python only) about unknown GS keys
This makes it easier to spot problems where key-names are mis-spelled
in Python (or other modules change a name and it's not applied
to consumers)
2021-03-29 10:50:32 +02:00
Adriaan de Groot
b04d59ba2e [libcalamares] More variant->python translations
- There's still 49 enumeration values not handled, leading to
  an annoying Clang warning, but there's just no **point**
  in listing them all: that's what 'default' is for.
2021-03-29 10:46:28 +02:00
Adriaan de Groot
9c2a26bed5 [libcalamares] Apply coding style 2021-03-27 15:41:58 +01:00
Adriaan de Groot
ac8f99a206 [libcalamares] Don't double-include FileSystem
The partitioning header 'FileSystem.h' is for KPMCore support;
it is already included by Global.h and guarded by ifdefs for
KPMCore. Do not unconditionally include it from the implementation.
2021-03-27 02:38:45 +01:00
Adriaan de Groot
559b79f920 [partition] Use (better documented) filesystem-use API 2021-03-23 12:09:06 +01:00
Adriaan de Groot
10bec1d970 [libcalamares] Expand API to allow clearing out the filesystem use 2021-03-23 12:09:01 +01:00
Adriaan de Groot
9665af0e5a [libcalamares] Make keys case-insensitive (as documented) 2021-03-23 12:09:01 +01:00
Adriaan de Groot
48541629f9 [libcalamares] Extend tests to handle case-insensitive 2021-03-23 12:09:01 +01:00
Adriaan de Groot
f3681a533e [libcalamares] Rearrange filesystem-use API
- make the functies that take a GS* first-class
- use the convenience functions from JobQueue for the others
- inline so only the explicit-GS* functions are in the library
2021-03-23 12:09:01 +01:00
Adriaan de Groot
488631824d [libcalamares] Make the KPMCore global storage filesystem handlers inline 2021-03-23 12:09:01 +01:00
Adriaan de Groot
75eb2c3cd4 [libcalamares] Add tests for filesystem_use service 2021-03-23 12:08:52 +01:00
Adriaan de Groot
afdf431b77 [libcalamares] Add partition service for managing global storage
- the global storage key filesystem_use has a structured meaning,
  so give it a (trivial-ish) API for reading and writing.
2021-03-23 12:08:52 +01:00
Adriaan de Groot
1e1b7b7ece [libcalamares] Introduce a convenience getter for GlobalStorage 2021-03-23 12:07:11 +01:00
Adriaan de Groot
dc0164d508 [libcalamares] Also install the version header 2021-03-22 13:36:52 +01:00
Adriaan de Groot
5ed1dff655 Merge branch 'issue-1579' into calamares
FIXES #1579
2021-03-19 13:13:27 +01:00
Adriaan de Groot
9341a84820 [libcalamares] Make the RETRANSLATE macros more statement-line
Require a ; after RETRANSLATE macros. They are statement-like;
this makes it easier for some of them to be recognized by
clang-format and resolves some existing weird formatting.
2021-03-16 14:55:26 +01:00
Adriaan de Groot
f1446736f8 [libcalamares] Expand tests a little
- do some additions and check they work
- drop the ";add" annotation on the source, this is not
  needed in the current situation with only adds available.
2021-03-16 14:37:13 +01:00
Adriaan de Groot
5b609565e2 [libcalamares] Make Packages API more flexible
- pass in the GS object; this makes mostly **testing** much easier
2021-03-16 14:14:02 +01:00
Adriaan de Groot
b868894371 [libcalamares] Start a packages service for netinstall and others 2021-03-16 13:50:15 +01:00
Adriaan de Groot
a90f510b85 [libcalamares] Convenience for logging subentries
For methods that log a bunch of things, and which want to
consistently use SubEntry, but don't know when the **first**
log entry is within the method, Logger::Once can be used
to log one regular message (with function info) and the
rest are subentries.
2021-03-15 22:45:29 +01:00
Adriaan de Groot
72f67286a4 [libcalamares] Preserve type CDebug() if possible. 2021-03-15 21:41:27 +01:00
Adriaan de Groot
a3a1350dc7 [libcalamares] Don't complain if there isn't a preset
- If the module knows about a preset, then it should be registered
  even if there is not a value set for it specifically; this avoids
  complaints from isEditable() for fields that are known, but
  do not have a preset. (Reported by Anke)
2021-03-15 21:18:10 +01:00
Adriaan de Groot
a4c1f07521 [libcalamares] Reduce indentation-depth in apply() through early-return 2021-03-15 21:11:01 +01:00
Adriaan de Groot
33fec86ef6 [welcome] Improve logging of requirements-checking
- less chatty when 0-results come in
- compress the welcome debug to one output chunk
2021-03-15 20:53:59 +01:00
Adriaan de Groot
b4a21d7aca [libcalamares] Add macro CONFIG_PREVENT_EDITING to handle uneditable fields
Boilerplate code for avoiding accidental setting of an internal
field when the UI is editable and the underlying data isn't.
2021-03-14 13:30:26 +01:00
Adriaan de Groot
2e90a8d829 [libcalamares] Report preset mis-configurations
- warn about fields applied twice (program error)
- warn about fields not used (configuration error)
- add operator<< for "clean" looking preset application
2021-03-14 12:14:33 +01:00
Adriaan de Groot
d8dff3dc65 [libcalamares] Replace loadPresets() with an applicative style
Build up the list of known presets by what the Config-object
expects, not by what the Config file provides. This allows
early detection of mis-matched configurations.

Presets can only apply to Q_PROPERTY properties, and the
preset must match the property name.
2021-03-14 12:14:33 +01:00
Adriaan de Groot
8b10a9cfc2 [libcalamares] Add isEditable() check
This adds support for checking whether a field is editable;
Config objects should reject changes if the field is not
editable. There is an "unlock" setting to override the
check, although this is currently always locked.
2021-03-14 12:14:33 +01:00
Adriaan de Groot
0be5e04c2e [libcalamares] Add a base class for Config-objects
This is an optional (until 3.3) base class, which can handle
Presets consistently for configurations.
2021-03-12 13:49:37 +01:00
Adriaan de Groot
d9f2f5e988 [libcalamares] Start a 'presets' configuration datastructure 2021-03-12 13:16:36 +01:00
Adriaan de Groot
ea63f48c31 [libcalamares] Put the units in a nested namespace
- this makes it much easier to use the literal suffixes
  by using the namespace rather than individual operators.
2021-03-09 18:21:58 +01:00
Adriaan de Groot
24e129a413 Merge branch 'issue-1634' into calamares
FIXES #1634
2021-02-23 16:17:57 +01:00
Adriaan de Groot
e49f0cf3ba [libcalamares] Document NamedEnum in much more detail 2021-02-09 17:03:19 +01:00
Adriaan de Groot
f045e4f00e [libcalamares] Switch default language in Belarus
*If* the distro has GeoIP enabled and auto-selects the language for
Calamares, then Belarus now selects Russian, rather the Belarusian.
This is based on some personal input, mostly, and Wikipedia census data.

FIXES #1634
2021-02-07 22:35:32 +01:00