Commit Graph

5153 Commits

Author SHA1 Message Date
Adriaan de Groot
57907ca992 [plasmalnf] Move model to ThemeInfo files 2020-11-16 18:14:23 +01:00
Calamares CI
9bf0a3414f i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-11-16 12:15:52 +01:00
Chrysostomus
ff9f47ec83 Fix syntax errors 2020-11-15 01:42:16 +02:00
Chrysostomus
567b01eab0 call function at different scope to avoid name collision 2020-11-13 23:39:25 +02:00
Chrysostomus
09798a2a12 Use free functions (I wish I had known I can do this) 2020-11-13 00:02:12 +02:00
Chrysostomus
8676ce9a20 Simplify the generators 2020-11-12 23:57:02 +02:00
Gaël PORTAY
feab8bebba [partition] Remove unused attribute m_defaultFsType
This attribute is used since the commit fcd0e8d36 [partition] Apply
partition layout when replacing free space
2020-11-12 15:15:51 -05:00
Adriaan de Groot
dda2e1f29f Merge commit 'a8359696caf07b81b85db8acad2d3f44720d07fa' into calamares
This is the bugfix part (rather than the "clean up this widgets mess")
of issue-1573, ensuring that the LookAndFeelPackage setting is
saved to the target system config file.
2020-11-12 15:59:56 +01:00
Adriaan de Groot
27f1e82a8f [plasmalnf] Remove unused path-setting from the widget
- Only Config needs to know the path, since it is responsible for
  doing the actual lnf changes.
2020-11-12 15:59:03 +01:00
Adriaan de Groot
a19109ed0b [plasmalnf] Prepare a new model
- start a model for available themes, to replace the list held
  by the widget which just duplicates information.
- move preselected theme to Config.
2020-11-12 15:36:29 +01:00
Adriaan de Groot
03e09cb7e6 [keyboard] When changing layouts, reset variant
- Need to update the variant that is in use, **and**
  explicitly update it in the widget, in order to re-load
  the keyboard image for the newly-selected layout+variant.
2020-11-12 15:29:15 +01:00
Adriaan de Groot
fdfe3937e9 [keyboard] Tell the keyboard preview to update on config changes
These calls to setLayout() and setVariant() got lost in
the transition to Config object, in 5afe5413.

Reported by Harald Sitter.
2020-11-12 14:50:21 +01:00
Gaël PORTAY
2e6d632c7c [partition] Fix typo 2020-11-11 12:49:44 -05:00
Adriaan de Groot
cba2733471 [plasmalnf] Move job creation to config 2020-11-11 14:45:31 +01:00
Adriaan de Groot
0af12546ef [plasmalnf] Migrate more settings to Config 2020-11-11 14:41:45 +01:00
Adriaan de Groot
00293d1111 [plasmalnf] Move the lookandfeeltool path setting to Config 2020-11-11 13:21:16 +01:00
Adriaan de Groot
0f07550006 [plasmalnf] Introduce (empty) Config object 2020-11-11 13:08:42 +01:00
Adriaan de Groot
a8359696ca [plasmalnf] Remove unnecessary includes 2020-11-11 13:06:09 +01:00
Adriaan de Groot
76b0981918 [plasmalnf] Apply workaround for lookandfeeltool
The lookandfeeltool does not (always?) write the LookAndFeelPackage
key that the KCM does -- and which this module reads on startup
to find the default LnF. This seems to be a regression in recent
lookandfeeltool versions (or in the KCM code that backs it).

Workaround supplied by jghodd.

Fixes #1573
2020-11-11 12:57:40 +01:00
Adriaan de Groot
8f590848bd [plasmalnf] Simplify code
- Look-and-Feel job has no status to speak of
- Coding style
2020-11-11 12:45:19 +01:00
Chrysostomus
543a9e1afc Remove extra static keyword 2020-11-10 22:11:49 +02:00
Adriaan de Groot
b503aa645b
Merge pull request #1563 from LordTermor/calamares
[users] Full name transliteration support for user creation
2020-11-10 01:19:44 +01:00
Artem Grinev
16eca3c1be [users] Apply code format 2020-11-10 01:54:21 +03:00
Artem Grinev
ca033583a4 Simplified logic a bit, made punctuation handling more correct 2020-11-10 01:47:07 +03:00
Artem Grinev
da5fb2d3e1 Improved comment 2020-11-10 01:40:08 +03:00
Artem Grinev
d5e678157d Changed TRANSLITERATOR_ID type to array 2020-11-10 01:23:10 +03:00
Gaël PORTAY
7859d98a32 [unpackfs] Skip overlay extended attributes
The module preserves the extended attributes at rsync and the overlay
filesystem stores extended attributes by inodes.

The overlay filesystem keeps traces of the lower directory by encoding
and storing its UUID to the attribute trusted.overlay.origin. If the
index feature is on, that attribute is compared to the UUID of the lower
directory at every subsequent mounts and causes mount to fail with
ESTATE if it does not match.

This filters the namespace trusted.overlay.* by using the rsync option
--filter='-x trusted.overlay.*' to make sure the overlays extended
attributes are not preserved.

Fixes:
        # mount -t overlay -o lowerdir=...,upperdir,...,workdir= overlay /mnt/etc
        mount: /var/mnt/etc: mount(2) system call failed: Stale file handle.

        # dmesg
        (...)
        overlayfs: "xino" feature enabled using 32 upper inode bits.
        overlayfs: failed to verify origin (/etc, ino=524292, err=-116)
        overlayfs: failed to verify upper root origin
2020-11-09 17:13:12 -05:00
Chrysostomus
e3ee3c623d Add some relevant looking stuff to header file 2020-11-09 23:24:09 +02:00
Adriaan de Groot
b4c3236e4a [users] Consume error information from libpwquality
Previously, the auxerror information was never stored, and
the messages were all un-numbered or un-explained.
Now, consume that information and store it when check()
is called, ready to be used when (possibly much later,
or after a translation change) explanation() is called.
2020-11-09 16:08:19 +01:00
Adriaan de Groot
43565027f5 [users] m_auxerror never set, always nullptr 2020-11-09 15:42:22 +01:00
Adriaan de Groot
f3e37f3cee [users] Remove unused PWQuality method 2020-11-09 15:40:23 +01:00
Adriaan de Groot
a5dfe7cd68 i18n: update english translations 2020-11-09 15:14:54 +01:00
Adriaan de Groot
4e9c18a565 [users] Translate PWQuality error messages with numbers 2020-11-09 15:14:41 +01:00
Adriaan de Groot
2a9bbf1dd5 [users] Add test for jobs-creation
- This tries to avoid the now-fixed situation where a sudoersGroup job
  is not created at all (because of a logic error).
- While here, coding style
2020-11-09 11:39:11 +01:00
Chrysostomus
adc8d7e624 Fix typo 2020-11-07 12:55:54 +02:00
Adriaan de Groot
3b152ba455 Merge branch 'fix-sudo-settings' into calamares 2020-11-06 22:28:37 +01:00
Adriaan de Groot
43e271dfec [users] Missing negation 2020-11-06 22:27:46 +01:00
Adriaan de Groot
8e53b83f9f [users] Test for setting / resetting sudo settings 2020-11-06 22:27:34 +01:00
Chrysostomus
b7cc4860e0 Put the condition on a single line for prettiness sake 2020-11-06 21:45:01 +02:00
Chrysostomus
3731dfb146 Try not to create the keyfile if not necessary 2020-11-06 21:32:10 +02:00
Adriaan de Groot
6f41949bba [users] Log when sudo is skipped 2020-11-06 14:38:12 +01:00
Gaël PORTAY
6e9ce7194f [mount] Ignore unformatted filesystems only
Mount guesses the filesystem if it is unset or if it is set to auto,
thanks to blkid. That is the case for the bind mountpoints like /dev or
/run/udev in mount.conf. See `mount(8)` for more details.
2020-11-06 07:38:48 -05:00
Matti Hyttinen
73b5c62ab8
Update main.py
typo in a comment
2020-11-06 08:49:22 +02:00
Adriaan de Groot
afb4e00f92 [keyboard] Pre-select pc105 2020-11-06 01:10:27 +01:00
Adriaan de Groot
e5b7e66ee9 [locale] Filter zones combo always
The drop-down of zones was initially unfiltered, so you could start
in Europe/Amsterdam and the zones drop-down would also show Australian
zones; picking Perth would have weird effects, since Europe/Perth
doesn't exist and so you'd end up in New York instead.

- set the filtering region immediately, rather than only when the
  region changes.
2020-11-05 00:33:45 +01:00
Chrysostomus
741c1c5d1e Use constructor instead of a loop 2020-11-05 01:01:26 +02:00
Adriaan de Groot
59255c7a57 Changes: apply coding style 2020-11-05 00:00:29 +01:00
Adriaan de Groot
be7b63051e Enable keyboard-model and layout-name translations.
SEE #1515
2020-11-04 23:36:33 +01:00
Chrysostomus
26b1c349d3 Set default value inside the relevant function 2020-11-04 19:27:59 +02:00
Adriaan de Groot
c4de62cb9a Merge branch 'fix-keyboardq' into calamares
Various file writes were not being checked, and the code
was a bit tangled; specifically keyboardq did **not**
configure properly on KaOS and now seems ok.
2020-11-04 17:09:56 +01:00
Adriaan de Groot
83d2c06f68 [keyboard] Apply coding style 2020-11-04 16:36:52 +01:00
Adriaan de Groot
705e6dd8d6 [keyboard] Improve debug-logging for writing etc/default 2020-11-04 16:32:22 +01:00
Adriaan de Groot
cbc376a206 [keyboard] Improve debug-logging for writing X11 config 2020-11-04 16:32:22 +01:00
Philip Müller
5191df2bde
Merge pull request #1568 from gportay/partition-fix-typo
[partition] Fix typo
2020-11-04 16:18:00 +01:00
Adriaan de Groot
57da222c72 [keyboard] Improve debug-logging for vconsole-config 2020-11-04 16:16:28 +01:00
Gaël PORTAY
e2b00bc517 [partition] Fix typo 2020-11-04 09:58:07 -05:00
Gaël PORTAY
e9e4be1c60 [umount] Fix list of mount-points to unmount
The root mount-point can end with a / while the mount-point read from
the file /etc/mtab does not end with a /.

This leads to skip the unmounting of the root mount-point and causes the
removal of the root mountpoint directory to fail with EBUSY because it
is still mounted.

This uses the python functions os.path.normpath() to normalize the root
mount-point (i.e. to drop the trailing /) and os.path.commonprefix() to
determine the longest common prefix between the two mount-points. If the
returned prefix is identical to the normalized root mount-point then the
mount-point must be added to the list of the mount-points to unmount.

More generally, the python modules should rely on the os.path functions
to compare for paths instead of using strings. It covers this way lots
of corner cases (path with "//", "/../", "/./", ...).
2020-11-04 08:37:22 -05:00
Adriaan de Groot
845fb3f6da [keyboard] Refactor writing-various-files
- put the writing of each kind of file in its own block -- this should
  become separate functions -- so that variables become more local
  and debugging can be improved.
- while here, fix the error message for /etc/default/keyboard:
  it would complain and name the vconsole file path if it ever failed.
2020-11-04 14:03:14 +01:00
Adriaan de Groot
3e51d77782 [keyboard] Check for successful file-write 2020-11-04 13:39:23 +01:00
Adriaan de Groot
2c297a068f [partition] Log when an EFI problem has been solved 2020-11-04 12:32:51 +01:00
Adriaan de Groot
0f38ee624e [partition] static-assert that our shortcut makes sense 2020-11-04 09:59:35 +01:00
Artem Grinev
94f7efb89f [users] Remove ' from transliterated string 2020-11-04 03:37:25 +03:00
Artem Grinev
f20d0a7593 [users] Name cleanup after transliteration 2020-11-04 03:24:58 +03:00
Artem Grinev
aa5ef7a6b8 [users] New transliterator ID 2020-11-04 03:21:31 +03:00
Adriaan de Groot
15ace5202d [partition] Simplify EFI-flags checking with KPMCore 4 2020-11-04 01:16:36 +01:00
Adriaan de Groot
85bb8c27b3 [partition] Simplify flags calculations
- factor out the flags-we-want from the flags-we-already-have
 - the use of ->activeFlags() meant that the state on *disk* was
   being compared with the flags-we-want; if a partition was re-edited,
   then you couldn't change the flags back to the state-on-disk
   (eg. enable a flag, then change your mind and disable it).
 - set the flags before refreshing the partition, because the
   refresh checks for EFI bootability and that needs the new flags,
   not the old ones.
2020-11-04 00:58:11 +01:00
Adriaan de Groot
949e33f1e8 [partition] Massage logging while checking for EFI boot 2020-11-04 00:43:32 +01:00
Adriaan de Groot
63964de4bd [partition] Explain underlying type for flags variant 2020-11-04 00:32:21 +01:00
Adriaan de Groot
87c77d9807 [partition] When flags are explicitly invalid, return early 2020-11-04 00:14:05 +01:00
Adriaan de Groot
356e13ae93 [partition] Improve logging readability 2020-11-03 23:46:07 +01:00
Chrysostomus
fe291bc51a Write the crypttab entry still 2020-11-03 23:33:24 +02:00
Chrysostomus
9f52282e4c Don't use keyfile if there /boot is unencrypted 2020-11-03 23:23:56 +02:00
Chrysostomus
3eae98eac3 Don't enable grub password query if /boot is on unencrypted partition 2020-11-03 23:15:35 +02:00
Adriaan de Groot
72c9df67d2
Merge pull request #1565 from Chrysostomus/calamares
[initcpiocfg] Use graphical decryption prompt with plymouth
2020-11-03 14:29:22 +01:00
Adriaan de Groot
f898840e16 [users] Expand schema to cover new possibilities 2020-11-03 13:02:49 +01:00
Chrysostomus
84558333bf Regular plymouth hook is also still needed 2020-11-03 13:57:19 +02:00
Chrysostomus
3bf57c7785 Use graphical decryption prompt with plymouth as adviced here: https://wiki.archlinux.org/index.php/plymouth#The_plymouth_hook 2020-11-03 13:55:24 +02:00
Adriaan de Groot
36f9fd56a3 [users] Expand the example config with new possibilities 2020-11-03 12:54:19 +01:00
Adriaan de Groot
7c268b2e4d [users] Correct terminology in configuration documentation 2020-11-03 12:48:12 +01:00
Adriaan de Groot
2516f18d1b
Merge pull request #1560 from gportay/partition-mount-make-mountPoint-and-filesystem-optionals
[partition,mount] Make mountPoint and filesystem optionals
2020-11-02 23:25:53 +01:00
Adriaan de Groot
ffce79e30e [partition] Initialize the filesystem type, not the partition type
- Passing FileSystem::Type to the QString constructor for
  partition type is not what I intended.
2020-11-02 22:32:44 +01:00
Adriaan de Groot
73b5a0898d [partition] Migrate the defaultFS type
- remove the m_defaultFSType from PartitionLayout, because it is
  set on construction -- which is too early, before the configuration
  has been read.
- make the default FS explicit in the init() calls which pass in
  a configuration; this needs support in the intermediate
  PartitionCoreModule.
2020-11-02 21:35:43 +01:00
Adriaan de Groot
23eabd74c6 [partition] Set FS type explicitly if no layout is given
- the "simple" constructor for PartitionEntry left the FS type
  set as the constructor left it -- which is Unknown by default.
  This leads to install failures in systems that don't set a
  special layout but just want a single / -- because the FS is
  set to Unknown.
- massage the constructor and consumer of the code, push
  Ext4 FS in the tests and use the configured default in production.
2020-11-02 16:01:10 +01:00
Artem Grinev
c85d1ae1fe Explanation why ICU is needed for usersq module 2020-11-02 17:53:05 +03:00
Adriaan de Groot
f78752303b [partition] Improve constructors for layout
- initialize flags by default
- the copy constructor was just doing the default thing,
  so make that explicit
2020-11-02 15:40:32 +01:00
Gaël PORTAY
6013ed52f8 [partition] Ignore unformatted filesystem 2020-11-02 09:01:23 -05:00
Gaël PORTAY
db08d2db8b [partition] Make filesystem optional and default to unformatted 2020-11-02 08:36:41 -05:00
Gaël PORTAY
163351a803 [mount] Ignore empty or unformatted filesystems 2020-11-02 08:36:41 -05:00
Gaël PORTAY
c6feedf923 [mount] Ignore empty mountpoints 2020-11-02 08:36:41 -05:00
Gaël PORTAY
54fd1f4b26 [mount] Print a warning if mount failure
The return of the call to libcalamares.utils.mount is never tested and
it may fail silently; this causes some mounpoints to be missing.

This adds a warning if mountpoint cannot be mounted.

	chcon: failed to get security context of '/tmp/verity': Operation not supported
	06:44:23 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
	    Running "env" ("mount", "-t", "unformatted", "/dev/sdb2", "/tmp/calamares-root-kv8dqgb5/tmp/verity")
	    ..  Finished. Exit code: 32
	    ..  Target cmd: ("mount", "-t", "unformatted", "/dev/sdb7", "/tmp/calamares-root-kv8dqgb5/tmp/verity") output:
	 mount: /tmp/calamares-root-kv8dqgb5/tmp/verity: unknown filesystem type 'unformatted'.
2020-11-02 08:36:41 -05:00
Gaël PORTAY
1f9f506a16 [partition] Make mountPoint optional
Some devices cannot be mounted (as DM_verity_hash), therefore, it is
nosense to set a mountPoint for them.
2020-11-02 08:36:41 -05:00
Adriaan de Groot
486cdaeeb6 [users] Shuffle library order to satisfy CI build 2020-11-02 14:10:35 +01:00
Adriaan de Groot
2bd3f1d8c1 Merge branch 'issue-1523' into calamares 2020-11-02 13:08:30 +01:00
Adriaan de Groot
b61b5f8650 [users] Run an expected-to-fail test in creating groups 2020-11-02 12:27:50 +01:00
Adriaan de Groot
8127ae704c [users] Expand tests for groups a little 2020-11-02 12:13:59 +01:00
Adriaan de Groot
e66f81f6ee CMake: comment on BUILD_AS_TEST 2020-11-02 12:01:02 +01:00
Adriaan de Groot
10991346b7
Merge pull request #1561 from gportay/partition-set-swap-partition-name
[partition] Allow a configurable swap Partition name
2020-11-02 11:43:07 +01:00
Adriaan de Groot
7578768c46
Merge pull request #1562 from gportay/partition-group-efi-things-together
[partition] Group EFI things together
2020-11-02 11:39:44 +01:00
Artem Grinev
4e54a2aefe [users] Cleaned error handling a bit 2020-11-02 04:01:01 +03:00
Artem Grinev
8e07bb00f9 [users] Construct icu::UnicodeString from QString's utf16 chars directly 2020-11-02 03:52:37 +03:00
Artem Grinev
48eae463cc [users] Full name transliteration support for user creation 2020-11-01 19:45:12 -05:00
Adriaan de Groot
0bad5469fc [libcalamares] Fix tests failures from JobQueue asserts
Some compile flags changed recently, triggering assert()
in the jobqueue when there is more than one. There's no
real reason for JobQueue to be a singleton, but it wants
to be. So clean up pointers a little more enthusiastically.
2020-11-01 17:59:41 +01:00
Adriaan de Groot
4746754344 [keyboard] Translate layouts as well 2020-11-01 14:28:12 +01:00
Adriaan de Groot
6863db0dc1 [keyboard] Use the translations if they were loaded 2020-11-01 14:19:06 +01:00
Adriaan de Groot
f088efdf84 [keyboard] Re-jig translation extraction
- Use classes to prompt lupdate to extract with a better
  context (e.g. the class name, rather than plain "QObject")
  so that the translation-lookup can use the named context.
- Add hard-coded "default" variant
- Add totally bogus Tajik translations, for testing purposes
2020-11-01 13:50:12 +01:00
Adriaan de Groot
4a08fdbb92 [partition] Reduce warnings from KPMCore
- make KPMHelper.h an "everything include" and suppress warnings
  from it, then use it in the tests.
2020-11-01 00:20:17 +01:00
Adriaan de Groot
d26fde6647 [partition] Reduce warnings
- Add a helper header that munges the warnings-settings so that
  KPMcore headers can be included.
2020-11-01 00:05:05 +01:00
Adriaan de Groot
c41ff94f8a [locale] Reduce warnings (C++17)
Now that Calamares is compiled as C++17, we get this:

src/modules/locale/timezonewidget/TimeZoneImage.cpp:28:55: warning: out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated [-Wdeprecated]
/* static constexpr */ const QSize TimeZoneImageList::imageSize;
2020-10-31 23:48:20 +01:00
Adriaan de Groot
4d444cbfbb [partition] Reduce warnings (Clang, FreeBSD)
The code doesn't match the comment: there are no by-ref captures
in the code, and the shadowing of parameters and local variables
is confusing. Remove one variable that is passed in as an argument
(and just pass the value as argument) and copy-capture the other
rather than doing weird argument passing.
2020-10-31 23:37:06 +01:00
Adriaan de Groot
0a44ce381e [partition] Reduce warnings (Clang, FreeBSD)
- remove unused this captures from lambda
- rename variables that are short, cryptic, and shadowed
- remove documentation for parameters that don't exist
2020-10-31 23:16:48 +01:00
Gaël PORTAY
3967cfe0eb [partition] Group EFI things together 2020-10-31 18:09:44 -04:00
Gaël PORTAY
a1d45122eb [partition] Update partition.conf 2020-10-31 17:59:08 -04:00
Gaël PORTAY
dad9587c3e [partition] Allow a configurable swap Partition name
This commit adds the new configuration `swapPartitionName` to the file
partition.conf.

This option sets the partition name to the swap partition that is
created. If this option is unset, the partition is left unnamed.
2020-10-31 17:39:50 -04:00
Adriaan de Groot
4387b8061e [keyboard] Move responsibility for retranslation to Config
- only widgets get language change events, so we need to
  hook that up to the ViewSteps and inform the Config
  object so that it can (re)load translations for the
  keyboard data.
2020-10-31 20:02:21 +01:00
Adriaan de Groot
71e0081fce [keyboard] SPDX-tagging 2020-10-30 22:31:42 +01:00
Adriaan de Groot
89a180ee58 [keyboard] Initial support for translated keyboard names 2020-10-30 16:24:56 +01:00
Gaël PORTAY
f03ae06deb [partition] Rename execute to createPartitions 2020-10-30 10:20:18 -04:00
Gaël PORTAY
f2bfe2bd6a [partition] Fix coding style 2020-10-30 10:14:40 -04:00
Gaël PORTAY
cd725fbb4b Fix missing SPDX-FileCopyrightText in header 2020-10-30 10:12:28 -04:00
Gaël PORTAY
2007335865 [partition] Rename the KPMCore Partition local to part 2020-10-30 10:12:28 -04:00
Gaël PORTAY
32c1f81fbf [partition] Rename iterator in for loop to entry 2020-10-30 10:12:28 -04:00
Gaël PORTAY
3016b93c8f [partition] Simplify the method execute
- Rename the "size" locals using "sectors" in their name. Size may be
  confusing or not enough specific as it can be interpreted a size in
  Byte.
    partSizeMap -> partSectorsMap,
    totalSize -> totalSectors,
    availablesize -> availableSectors,
    size -> sectors,
    minSize -> minSectors
    maxSize -> maxSectors
- Create a the new local currentSector to iterate over the sectors;
  instead of using the parameter firstSector.
- Remove the variable end that does not help much; too many variable
  already. Expand its expression instead.
2020-10-30 10:12:28 -04:00
Gaël PORTAY
81bec68b3d [partition] Introduce new constructors for PartitionEntry
- Introduces new constructors for PartitionEntry: copy constructory and
  constructor with all attributes.
- Use the new constructor in method addEntry().
2020-10-30 10:12:27 -04:00
Gaël PORTAY
3f2dd516d3 [partition] Simplify the retrieval of the size attributes
- The variant helper toString() takes a default value since commit
  c9f942ad6 ([libcalamares] Add default value to variant helpers).
- Set the default value to 0 and simplify the retreival of size values
  by calling the helper toString() and removing the temporary variables.
2020-10-30 10:11:56 -04:00
Gaël PORTAY
db7cf74034 [partition] Remove the call the method contains
- The variant helper getString() calls contains() already.
2020-10-30 09:17:12 -04:00
Gaël PORTAY
d6ea30b23e [partition] Move initLayout logic to object PartitionLayout
- The logic of the method initLayout belongs to the object
  PartitionLayout. Move logic to that object.
- Use a single method initLayout in object PartitionCoreModule.
- Member m_partLayout in object PartitionCoreModule is no longer
  allocated.
2020-10-30 09:17:12 -04:00
Gaël PORTAY
eae1e90dce [partition] Remove unused PartitionLayout constructor
- The constructor PartitionLayout with PartitionEntry appears to be
  unused since its always. Drop it!
2020-10-30 09:17:12 -04:00
Gaël PORTAY
f2960366c8 [partition] Remove unused addEntry method
- The method addEntry with PartitionEntry appears to be unused since its
  always. Drop it!
2020-10-30 09:17:12 -04:00
Adriaan de Groot
2e9a44269c [keyboard] Extracted strings from keyboard list 2020-10-30 12:39:47 +01:00
Adriaan de Groot
5a378090c2 [keyboard] Do not munge keyboard model name
The translation happens whenever this code is run, which may
not match the language the user subsequently selects.
It also causes general problems with the translation,
since we end up with a possibly-partly-translated name.
2020-10-30 12:16:14 +01:00
Adriaan de Groot
7ec8c454bd [keyboard] Ukranian needs a switcher, too 2020-10-30 11:21:57 +01:00
Adriaan de Groot
8457a00ad0 [keyboard] Fix group-switcher multiplying
FIXES #1556
2020-10-30 11:05:15 +01:00
Adriaan de Groot
daaf16d331 Merge branch 'calamares' into issue-1523 2020-10-29 16:33:27 +01:00
Adriaan de Groot
cd9c0ea781 [keyboard] Reduce debugging output 2020-10-28 17:00:12 +01:00
Adriaan de Groot
2e5301c5c9 [keyboard] Simplify back down to lambdas
- With debugging and untangling done, the lambdas are simple
  and short, so return to using them. One point of improvement
  might be to give the models suitable slots themselves,
  to avoid even this indirection.
2020-10-28 16:54:08 +01:00
Adriaan de Groot
0bf28b0b94 [keyboard] Sanity in setCurrentIndex() parameters 2020-10-28 16:47:52 +01:00
Adriaan de Groot
9e141636c5 [keyboard] Tidy up the debugging output, add docs 2020-10-28 16:40:43 +01:00
Adriaan de Groot
14a76a386a [keyboard] Replace broken-ish variants model with k-v list
- Use the just-refactored XKBListModel to store the xkb key-value
  pairs for variants, drop most of the complicated implementation,
  store just a single list of values.
2020-10-28 16:29:52 +01:00
Adriaan de Groot
d536173d66 [keyboard] Factor out a 2-column k-v list 2020-10-28 16:29:52 +01:00
Adriaan de Groot
5afe54132b [keyboard] Use the models from Config
- Remove code that is duplicated in Config.
- Hook up UI for physical keyboard model, and back.
- For now, introduce some named slots with debugging output.
  This makes debugging a lot easier since we have function names
  to work with rather than anonymous lambdas
2020-10-28 16:01:38 +01:00
Adriaan de Groot
168be02c96 [keyboard] Hook up the model-selection again 2020-10-28 14:03:46 +01:00
Adriaan de Groot
87aafb2442 [keyboard] Tear up connections between widgets and model 2020-10-28 13:57:57 +01:00
Adriaan de Groot
193efe1710 [keyboard] Restore the notion of PC105 default index 2020-10-28 13:57:57 +01:00
Adriaan de Groot
6aedf4401f [keyboard] Apply coding style 2020-10-28 13:41:34 +01:00
Adriaan de Groot
365a2ad6fd [keyboard] Re-do the keyboard physical models model from scratch 2020-10-28 13:41:21 +01:00
Adriaan de Groot
a1c70b46a1 [keyboard] Typo in comment 2020-10-28 13:06:43 +01:00
Adriaan de Groot
5f1d7b2e8d [keyboard] Rename UI widgets to make code clearer 2020-10-28 10:38:51 +01:00
Adriaan de Groot
d464e98e89 [keyboard] Move remaining variables to Config
- Config already *has* everythind, but drop the useless copies
  and duplicated code from the Page
- Plug the models model into the Page
- While here, document the model / layout / variant distinctions

The code doesn't fill the UI properly, and the drop-down
for the models combobox is not right, but at least the data
is shared.
2020-10-28 01:25:42 +01:00
Adriaan de Groot
fe5757c7d1 [keyboard] Matching of layouts is very suspect 2020-10-28 01:07:49 +01:00
Adriaan de Groot
4f0d6a8f25 Merge branch 'calamares' into fix-keyboardq 2020-10-28 00:04:40 +01:00
Adriaan de Groot
dca9ae0c93
Merge pull request #1553 from LordTermor/calamares
Initial additional layout support for non-ASCII layouts
2020-10-27 22:11:23 +01:00
Artem Grinev
4434e85d4d [keyboard] Simplified variable name 2020-10-27 20:53:20 +03:00
Artem Grinev
3552233bf1 [keyboard] Minor logic rework 2020-10-27 20:48:18 +03:00
Artem Grinev
6667ea834f [keyboard] Adjusted indents 2020-10-27 20:42:49 +03:00
Artem Grinev
996c82160e [keyboard] fixed typo 2020-10-27 20:38:04 +03:00
Adriaan de Groot
4a3273d634 [keyboard] Remove superfluous variable (set to true, never changed) 2020-10-27 16:59:22 +01:00
Artem Grinev
bfc60ad2cf [keyboard] Implemented X11 config writing for additional layout 2020-10-27 18:59:10 +03:00
Artem Grinev
0dd027af90 [keyboard] Fixed condition bug 2020-10-27 18:59:10 +03:00
Artem Grinev
19b1fb3358 [keyboard] Added explanatory comment for xkbmap_query_grp_option 2020-10-27 18:59:10 +03:00
Artem Grinev
384b1ba8c6 [keyboard] Swapped primary and additional layouts in selection 2020-10-27 18:59:10 +03:00
Artem Grinev
354dc1613a [keyboard] Removed unnecessary repacking in xkbmap_layout_args 2020-10-27 18:59:10 +03:00
Artem Grinev
09b5e42734 [keyboard] Minor additional layout info rework 2020-10-27 18:59:10 +03:00
Artem Grinev
17b9647016 [keyboard] Support for additional layout if current layout is not ASCII-
capable in live system
2020-10-27 18:59:10 +03:00
Adriaan de Groot
8cf3bd23b9 [keyboardq] Remove superfluous variable (set to true, never changed) 2020-10-27 16:55:02 +01:00
Adriaan de Groot
734dbece8a [keyboardq] Fix include style, remove unnecessary declarations 2020-10-27 16:47:47 +01:00
Adriaan de Groot
0947cd8354 [keyboard] Migrate to Config::onActivate() which is badly-named 2020-10-27 16:12:36 +01:00
Adriaan de Groot
0ffa500432 [keyboard] Remove unused code
- this has already migrated to Config but had not been removed locally
2020-10-27 15:56:50 +01:00
Adriaan de Groot
35a2bd3f0f [keyboard] Use Config's own finalize() 2020-10-27 15:55:29 +01:00
Adriaan de Groot
14c079d1d6 [keyboard] Replace own copy of status by the one from Config 2020-10-27 15:53:59 +01:00
Adriaan de Groot
acb5190217 [keyboard] Use Config methods rather than own copy
- this continues the port of the keyboard module to use the Config
  object, which was horribly botched earlier.
2020-10-27 15:51:48 +01:00
Adriaan de Groot
679f613955 [keyboard] Rename mysterious Config::init() to descriptive name 2020-10-27 15:48:51 +01:00
Adriaan de Groot
a940be2bb4 [keyboardq] Load configuration into Config object 2020-10-27 15:46:18 +01:00
Adriaan de Groot
8142d6f86c [keyboardq] Drop unnecessary variable -- just use the Config status 2020-10-27 15:42:27 +01:00
Adriaan de Groot
98c7cec732 CMake: restore NOTREACHED, without the macro-mess
- gcc (up to at least version 10) is worse at recognizing that all
  cases have been handled, so it complains about all the switches
  that cover enum values.
2020-10-25 18:52:38 +01:00
demmm
f6e6774f92 [keyboardq] fix build 2020-10-25 18:35:03 +01:00
Adriaan de Groot
478c394d99 [partition] Don't needlessly expose a test symbol 2020-10-25 17:49:26 +01:00
Adriaan de Groot
2b9fa0f982 CMake: drop the NOTREACHED macro
- both clang and g++ support __builtin_unreachable(); (as Kevin
   Kofler pointed out) so we don't need the macro to do different things;
 - the compilers have gotten better at detecting unreachable code,
   so instead of inserting macros or fiddly bits, just drop them
   and the unreachable code they comment.
2020-10-25 12:49:49 +01:00
Adriaan de Groot
9a2fca7f5b CMake: prefer normal C++17 [[fallthrough]] annotation 2020-10-25 12:49:49 +01:00
Adriaan de Groot
84936a95fc [libcalamaresui] Warnings-- for Qt 5.15 deprecations
Introduce a GUI-oriented compatibility header that introduces aliases
for some enum values that are deprecated in Qt 5.15
2020-10-24 13:00:48 +02:00
Adriaan de Groot
27f6eaaf75 [partition] Remove unused variables 2020-10-24 02:24:37 +02:00
Adriaan de Groot
89b1f8d96b [partition] Warnings-- in tests related to virtual destructors 2020-10-24 02:21:32 +02:00
Adriaan de Groot
01b75ef4b5 [partition] Use C++-style cast 2020-10-24 02:19:05 +02:00
Adriaan de Groot
6605e11394 [partition] Warnings-- in test: don't expose internal variable 2020-10-24 02:05:14 +02:00
Adriaan de Groot
cb2b53ebf3 Merge remote-tracking branch 'origin/issue-1515' into calamares 2020-10-23 23:51:25 +02:00
Adriaan de Groot
d7e64de24a [partition] Adjust docs to function
- @params referring to things that don't exist
- @brief that is 3 lines long
2020-10-23 23:14:00 +02:00
Adriaan de Groot
eb8e95bb87 [partition] Warnings--, explain why we're using a void* 2020-10-23 22:39:05 +02:00
Adriaan de Groot
9910b23152 [partition] Avoid uninitialized variable
- if the partition size is invalid, then warn about it but do
  not print the (uninitialized) size of the partition.
- shuffle code to continue earlier, allowing the "good path"
  code to be out-dented.
2020-10-23 22:34:53 +02:00
Adriaan de Groot
687a795b71 [partition] Warnings-- by initialization order 2020-10-23 22:31:22 +02:00
Adriaan de Groot
44a11bd93b [partition] Initialize in the initializer list, if possible 2020-10-23 22:27:30 +02:00
Adriaan de Groot
51b47862cd [partition] Mark destructors override
This reduces compiler warnings related to virtual-overriding
functions: all the destructors are virtual.
2020-10-23 22:23:10 +02:00
Adriaan de Groot
aa6109d470 [machineid] Improve config-documentation 2020-10-23 17:16:24 +02:00
Adriaan de Groot
daeee09fdb [machineid] Simplify loading of the list of entropy-files 2020-10-23 17:15:55 +02:00
Adriaan de Groot
275e6b9342
Merge pull request #1542 from gportay/fix-message-if-no-option-available
[partition] Fix message user if no option available
2020-10-23 12:45:06 +02:00
Adriaan de Groot
9e624c7bd5 [unpackfs] Fix schema validation
- the *weight* key was introduced without a corresponding schema
  change, so the examples didn't validate anymore.
2020-10-23 12:40:03 +02:00
Adriaan de Groot
0d4d3e3c4d [users] Set up GS rootMountPoint for test 2020-10-23 12:27:44 +02:00
Adriaan de Groot
63196ab58f [users] Avoid crashes in tests due to nullptr GS 2020-10-23 12:19:28 +02:00
Adriaan de Groot
c412e285c2 [libcalamares] Link publicly to yaml-cpp
Needed on FreeBSD, where you otherwise might not get the
include paths for yaml-cpp added -- and utils/Yaml.h
expects them to be there.
2020-10-23 12:01:29 +02:00
Adriaan de Groot
cd8c3089cb [users] Fix build: renamed moc file 2020-10-23 11:14:59 +02:00
Gaël PORTAY
d91683eec6 [partition] Fix message user if no option available
The button m_eraseButton is not tested while the button
m_somethingElseButton is tested twice.
2020-10-22 13:23:36 -04:00
Adriaan de Groot
89d495d5fb [users] Rename file to match its purpose 2020-10-22 14:22:11 +02:00
Adriaan de Groot
5b4f9d0b98 [users] Adjust tests for changed API 2020-10-22 14:21:14 +02:00
Adriaan de Groot
f1772a7eae [users] Create groups in a separate job 2020-10-22 14:11:01 +02:00
Adriaan de Groot
03541470d5 [users] Handle system-group creating specially 2020-10-22 14:08:33 +02:00
Adriaan de Groot
fa1d314b13 [users] Refactor group-creation into separate Job 2020-10-22 13:49:45 +02:00
Adriaan de Groot
3d289f345a [users] Refactor users functionality to a static lib
- this makes it less fragile to share all the functionality
  with usersq, since it ends up in the library which is shared
  between the modules.
2020-10-21 15:02:33 +02:00
Adriaan de Groot
6560ef00a1 [usersq] Fix build of usersq after refactor elsewhere 2020-10-21 14:46:07 +02:00
Adriaan de Groot
29e6934672 [users] Factor out Sudo creation into separate job 2020-10-21 14:43:45 +02:00
Adriaan de Groot
0cb6c89876 [netinstall] Don't update selection state for items with no children
The special setup for nicely-named groups which have a single
hidden subgroup containing the actual packages, has the problem
that there is a non-empty subgroups item, but this results
in zero actual children: then the number of selected and partly
selected children is also zero in updateSelected() and therefore
the item ends up unselected.

Special-case this to avoid unnecessarily unselecting the item.
Reported by Vitor L.
2020-10-20 23:15:32 +02:00
Adriaan de Groot
328a5bbbfb [users] Don't allow continuing with an empty login name
The status for an empty login name is '' (empty), for ok -- this is
so that there is no complaint about it. But it's not ok to
continue with an empty name.
2020-10-19 11:46:08 +02:00
Adriaan de Groot
27dc81f8b9 [partition] Fix typo in debug message, reported by Kevin Kofler 2020-10-17 16:41:08 +02:00
Adriaan de Groot
4d3f20f4a7 [users] Don't allow continuing with an empty login name
The status for an empty login name is '' (empty), for ok -- this is
so that there is no complaint about it. But it's not ok to
continue with an empty name.
2020-10-17 15:48:12 +02:00
Adriaan de Groot
36396d0cfd [partition] Adjust message and fix debug message 2020-10-16 22:32:32 +02:00
Adriaan de Groot
ee302debdf
Merge pull request #1539 from yurchor/patch-3
[partition] Add missing space
2020-10-16 19:06:46 +02:00
Calamares CI
2be2e1808a i18n: [dummypythonqt] Automatic merge of Transifex translations 2020-10-16 15:03:48 +02:00
Yuri Chornoivan
1448a9b9a1
Add missing space 2020-10-15 20:55:37 +03:00
Adriaan de Groot
7734d84925 [shellprocess] Bump the default timeout to 30, emphasise tuning the timeout
FIXES #1536
2020-10-15 00:15:37 +02:00
Adriaan de Groot
0b61a02c31 [fstab] Avoid dd in creating a zeroed-file for swap
- Create a 16kiB buffer of zeroes
- write that out in a loop
2020-10-14 16:55:14 +02:00
Adriaan de Groot
c7c7e6a6c1 [keyboard] Move configuration to the Config object
- information from the configuration file -> Config object
- job creation -> Config object

Ignore keyboardq for now.
2020-10-14 15:50:21 +02:00
Adriaan de Groot
0f6602cad7 [keyboard] Improve xkb parsing 2020-10-14 15:50:21 +02:00
Adriaan de Groot
ec42e3294f [keyboard] Refactor argument-lists for setxkbmap
- separate functions for model, and layout+variant settings
2020-10-14 15:50:21 +02:00
Adriaan de Groot
b54273f904 [keyboard] Move all the keyboard (AbstractList)Models to the models file 2020-10-14 15:50:21 +02:00
Adriaan de Groot
2911c789f9 [users] Fix up tests for login status
- an empty login name is "ok" even if it isn't -- there's no
  warning message in that case
2020-10-14 15:21:41 +02:00
Adriaan de Groot
89e279c96a [users] Set auto- and sudo-groups correctly
- Was updating GS only, not internals
- restructure all to update internals, then GS, then emit change signals
2020-10-14 15:21:41 +02:00
Adriaan de Groot
f726634c2f [users] Fix tests for setting shell
- The EXPECT_FAIL value "Abort" stops the test (I wanted 'if this
  unexpectedly passes, raise an error' -- should have read the
  documentation more closely).
- Set the shell in the config object, not just in GS.
2020-10-14 15:21:41 +02:00
Adriaan de Groot
6b2d7f6a42 [users] Protect against JobQueue or GS being NULL
- Avoid SIGSEGV in tests, make sure JobQueue exists, GS optional
2020-10-14 15:21:19 +02:00
Adriaan de Groot
788a233319 [users] Introduce a test for Config getters and setters 2020-10-14 15:21:15 +02:00
Adriaan de Groot
58f10739e1 [users] Show progress during the module
- add a status member so the different steps can show progress
  as the user is created and configured. The progress values
  are hard-coded guesses as to how much work is done for each step.
- while here, reduce the scope of the global storage variable
2020-10-14 15:21:10 +02:00
Adriaan de Groot
ef70b2c32e [users] Run CreateUserJob off of the Config object
- don't pass in copies or bits of the Config, hand over the whole Config
- don't pluck some parts of the Config from Global Storage
2020-10-14 15:21:10 +02:00
Adriaan de Groot
02e9872a99 [users] Handle detailed groups list
Groups can be specified with must_exist and/or system set,
so they fill in the groups list more carefully.
2020-10-14 15:21:10 +02:00
Adriaan de Groot
a86374386b [users] Add test for new notation for groups-with-details 2020-10-14 15:21:10 +02:00
Adriaan de Groot
07027c2430 [users] Test distinguishes system groups from user groups 2020-10-14 15:21:10 +02:00
Adriaan de Groot
ff9abdfc08 [users] The fallback groups are all **system** groups 2020-10-14 15:21:10 +02:00
Adriaan de Groot
b20c80a28c [users] Introduce class-scoped aliases for true and false for the bools
This is somewhat experimental and weird; the idea is that bool
arguments are a lot easier to understand if there are proper
names attached, rather than "true" and "false".
2020-10-14 15:20:26 +02:00
Adriaan de Groot
1d696253c3 [displaymanager] Missing space in user-visible string due to line-breaks 2020-10-14 15:18:51 +02:00
Adriaan de Groot
61100f1a73 [netinstall] Massage the documentation a little 2020-10-14 01:51:44 +02:00
Adriaan de Groot
958fb7e7b0 [netinstall] Complain about nonsensical hidden groups 2020-10-14 01:49:00 +02:00
Adriaan de Groot
f093789deb [netinstall] Complain about bad config
- it's easy to miss a  in hidden subgroups and other complex
  groups configurations, so complain loudly.
2020-10-14 01:41:16 +02:00
Adriaan de Groot
ceeab7087c [users] Fix implementation so existing tests pass 2020-10-13 22:12:26 +02:00
Adriaan de Groot
e46d9f735d [users] Adjust tests to changed groups-list 2020-10-13 17:36:24 +02:00
Adriaan de Groot
d3135898fd [users] More fine-grained group descriptions
Describe groups with more detail:
 - groups can be system groups (low GID) or not
 - groups may be pre-configured (e.g. come from the unpackfs stage)
2020-10-13 17:35:07 +02:00
Adriaan de Groot
6221c6497a [shellprocess] Allow customizing the name of the job 2020-10-13 00:59:47 +02:00
Adriaan de Groot
9c457f9449 [shellprocess] Improve documentation and examples 2020-10-12 23:11:00 +02:00
Adriaan de Groot
a955791766 Apply coding style globally again 2020-10-12 14:27:01 +02:00
Adriaan de Groot
1df4239c02
Merge pull request #1436 from gportay/osprober-strip-extra-file-after-at-sign
[partition] Strip extra file after the at sign
2020-10-12 13:33:10 +02:00
Gaël PORTAY
2b1e516ec1 [partition] Strip extra file after the at sign
- os-proper may return an extra file after the device:
  /dev/sda1:Ubuntu 19.10 (19.10):Ubuntu:linux
  /dev/sdb1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
2020-10-07 09:57:18 -04:00
Gaël PORTAY
2bbbb68838 [partition] Add setting for requiredPartitionTableType 2020-10-07 08:10:24 -04:00
Gaël PORTAY
70f8beb931 [partition] Add setting for defaultPartitionTableType 2020-10-06 20:46:17 -04:00
Adriaan de Groot
9486ee6fbf
Merge pull request #1524 from gportay/partition-message-user-if-no-option-available
[partition] Message user if no option available
2020-10-07 01:32:13 +02:00
Adriaan de Groot
40aa0fcaba CMake: add a helper module for finding KPMcore
I think we had this (kind of) module a long time ago and it was
removed for over-complicating things; re-introduce one now that
KPMcore is used in 3 different places and all would benefit
from consistent API handling / defines.
2020-10-07 00:11:18 +02:00
Adriaan de Groot
db537535ee [partition] Support KPMCore 3.3 in tests 2020-10-06 23:51:30 +02:00
Adriaan de Groot
f28d28a455 [partition] Ignore KPMCore 4 beta versions 2020-10-06 23:49:11 +02:00
Adriaan de Groot
88b1d36009 Merge branch 'issues-1166' into calamares
FIXES #1166
2020-10-06 22:25:33 +02:00
Adriaan de Groot
faa496be4a
Merge pull request #1522 from kadler15/issue-1521
[preservefiles] Fix global storage JSON dump
2020-10-06 21:53:32 +02:00
Corentin Noël
a7bd1040c5 [partition] Add tests for Layout-constrained partionning 2020-10-06 17:48:12 +02:00
Adriaan de Groot
77e2701365 [partition] Coding style
- various clang-format versions battle for supremacy
2020-10-06 17:21:54 +02:00
Adriaan de Groot
b4cbf73e2d Merge branch 'calamares' into issues-1166 2020-10-06 17:19:14 +02:00
Adriaan de Groot
0b3a6baeea [fstab] If swap is "file" then create it here
- handle swapfiles when writing /etc/fstab in the target system
  - special-case mountpoint
  - since swapfiles are not a partition, take the setting out
    of partitionChoices
- create the physical swapfile as well (there's no other place
  where it would make sense)
2020-10-06 17:05:22 +02:00
Adriaan de Groot
029c3f1c74 [partition] Write the install choices to Global Storage 2020-10-06 15:54:26 +02:00
Adriaan de Groot
92a874dae7 [partition] move the swap-choice to Config 2020-10-06 15:44:14 +02:00
Corentin Noël
08138f5a41 [partition] Reduce direct dependency of PartUtils on PartitionCoreModule 2020-10-06 14:28:20 +02:00
Adriaan de Groot
672e27564e [unpackfs] Also report progress every half-second, if possible
This still won't help if there's one really huge file that takes
several seconds to write, but if there's a bunch of files together
that is less than a file_chunk_count but take more than a half-
second to write, update anyway
2020-10-06 13:39:22 +02:00
Adriaan de Groot
57fa51ecd9 [unpackfs] Simplify progress reporting more
If there's thousands of files in a squashfs (e.g. 400000 like on
some ArcoLinux ISOs) then progress would be reported every
4000 files, which can take quite some time to write. Reduce
file_chunk_count to at most 500, so that progress is reported
more often even if that wouldn't lead to a visible change
in the percentage progress: instead we **do** get a change
in files-transferred numbers.

- The total weight is only needed by the UnpackOperation,
  not by each entry.
- Use a chunk size of 107 so that the number-complete seems busy:
  the whole larger-or-smaller chunk size doesn't really matter.
- The progress-report was missing the weight of the current
  module, so would report way too low if weight > 1. This affects
  ArcoLinux configurations where one entry is huge and one is a
  single file, so weights 50 and 1 are appropriate.
2020-10-06 13:38:28 +02:00
Adriaan de Groot
bc591f9bc1 [unpackfs] Re-vamp progress reporting
- simplify calculation of progress
2020-10-06 13:36:35 +02:00
Adriaan de Groot
8173b68a71 [unpackfs] Debug-log the weights of the modules 2020-10-06 11:54:39 +02:00
Adriaan de Groot
632445a431 [unpackfs] Give entries a weight
When there are multiple entries, the overall weight of the
module is divided between the entries: currently each entry
takes an equal amount of space in the overall progress.

When there are multiple entries which take wildly different
amounts of time (e.g. a squash-fs and a single file) then
the progress overall looks weird: the squash-fs gets half
of this module's weight, and the single file does too.
With the new *weight* key for entries, that division can
be tweaked so that progress looks more "even".
2020-10-06 11:44:00 +02:00
Gaël PORTAY
79740c77a3 [partition] Message user if no option available 2020-10-06 04:10:27 -04:00
Kris Adler
e92927cff9 [preservefiles] Fix global storage JSON dump
fixes calamares/calamares#1521
2020-10-03 17:38:20 -05:00
Adriaan de Groot
6e30a7b8f6 [partition] Move is-manual-partitioning-allowed to the Config object 2020-10-02 13:04:12 +02:00
Adriaan de Groot
f79fbd4105 [partition] Add swap choice to config object 2020-10-02 12:40:13 +02:00
Adriaan de Groot
0f4fe6294c [partition] Migrate type for SwapChoice to Config object 2020-10-02 12:22:53 +02:00
Adriaan de Groot
881661e94b [partition] Migrate InstallChoice to the Config object 2020-10-02 12:08:42 +02:00
Corentin Noël
0293015b09 [partition] Fix regression in partition size assignment
In some cases, the partition size was set to zero as the maxSize isn't always defined.
2020-10-01 15:38:18 +02:00
Adriaan de Groot
010526ee2a [partition] Coding style 2020-09-29 14:04:12 +02:00
Adriaan de Groot
b41e4624c9 [partition] Move 'selected installation option' to Config 2020-09-29 14:00:49 +02:00
Adriaan de Groot
10d194d693 [partition] Simplify button-selection 2020-09-29 12:22:50 +02:00
Adriaan de Groot
a92cb32cef [partition] set the right buttons if an action is pre-selected 2020-09-28 17:46:42 +02:00
Adriaan de Groot
b518ef7dfe [partition] Select initial swap choice 2020-09-28 15:37:12 +02:00
Adriaan de Groot
9f0f600aa4 [partition] Remove the 'swapfile-unsupported' message 2020-09-28 14:53:38 +02:00
Adriaan de Groot
3bb5adcfca [partition] Simplify *efiSystemPartition* settings 2020-09-28 14:52:18 +02:00
Adriaan de Groot
f155c8351b [partition] Only one setting for partitionLayout is supported 2020-09-28 14:48:55 +02:00
Adriaan de Groot
b6dd23a384 Merge branch 'calamares' into issues-1166 2020-09-28 14:34:39 +02:00
Adriaan de Groot
ffed7b6d71 [partition] Warnings-- over QButtonGroup
- this was deprecated in 5.15 and an alternative introduced also
  in 5.15, so it's a pain in the butt for backwards-compatibility.
2020-09-23 11:16:23 +02:00
Adriaan de Groot
6b07bdf6ed [keyboard] Do not use deprecated Qt4-era indexChanged for text 2020-09-22 23:51:35 +02:00
Adriaan de Groot
2878c474c5 Warnings-- (~T() override)
Change all the places that had
	virtual ~T() override
to the less redundant form without override.
2020-09-22 22:49:30 +02:00
Adriaan de Groot
2126be6d6d Warnings-- (~T() override)
Consistently use
	~T() override;
in class declarations (so no virtual in front, and avoid
warnings due to the missing override in back).
2020-09-22 22:40:52 +02:00
Adriaan de Groot
7d5a209dd0 [modules] Warnings-- in tests (~Test() override) 2020-09-22 22:37:55 +02:00
Adriaan de Groot
ac0b2092f2 [partition] Remove superfluous logging 2020-09-21 17:47:25 +02:00
Adriaan de Groot
cadd9765db [usersq] Remove trailing . 2020-09-21 17:01:50 +02:00
Adriaan de Groot
e37c7da60d [partition] Introduce dummy argument to LVM jobs
- Give LVM jobs a dummy argument Device* so that they
  fit the functionality of makeJob for partitioning.
  For those jobs that already take an LVMDevice*, this should
  be the self-same device, but that isn't checked.
2020-09-21 16:46:24 +02:00
Adriaan de Groot
1f77441333 [partition] add job-removal to the support classes 2020-09-21 16:36:43 +02:00
Corentin Noël
75fd1dd114 [partition] Correctly handle percentage-define partitions
* Use the minSize when the target storage is smaller than the sum of sizes
 * Percentage-defined partitions should be computed after setting hard-defined ones

This fixes issues when 0 byte partitions were created when the disk is too small.
Also fixes an issue with percent-defined partitions being forced to be defined at the end of the disk.
2020-09-21 11:35:09 +02:00
Adriaan de Groot
e94c17e331 Merge branch 'calamares' into issues-1166 2020-09-21 11:15:27 +02:00
Adriaan de Groot
c159ffe491 [machineid] Polish up the tests
- create dirs as needed (this will normally be done by
  unsquash, but for tests with paths it needs to be done
  by hand)
- log what file is being checked
- filePath() doesn't like the absolute paths we have
  (they're absolute in the chroot, and existing code
  just sticks rootMountPoint in front)
2020-09-15 16:49:45 +02:00
Adriaan de Groot
5f7c9a00a0 [machineid] Test that random-files are created 2020-09-15 13:36:10 +02:00
Adriaan de Groot
a5887e6dda [machineid] Test config-settings for entropy files 2020-09-15 13:11:39 +02:00
Adriaan de Groot
8be5c2ed10 [machineid] Support multiple entropy files 2020-09-15 12:57:09 +02:00
Adriaan de Groot
8b22786bd2 Merge branch 'issue-1397' into calamares
Document keyboard change for Turkish F layout, and document
the keyboard configuration value better, with alternate
path used in e.g. openSUSE

FIXES #1397
2020-09-09 12:21:48 +02:00
Adriaan de Groot
633186778b [keyboard] Add test for Turkish F variant
- test keyboard lookup for "tr" - "f" variations
- add data mapping "tr" - "f" to legacy keymap "trf"

FIXES #1397
2020-09-09 12:11:50 +02:00
Adriaan de Groot
aeffbac9cd CMake: add resources to tests
Some tests -- notably the keyboard module -- need to have the
QRC for the module loaded as well (e.g. because of data in the
QRC). Add a RESOURCES parameter to calamares_add_test()
like calamares_add_plugin() already has, to build the
resources into the test.

Keyboard test now passes, since it was missing the data for
lookups before.
2020-09-09 11:58:56 +02:00
Adriaan de Groot
2aece7ff1b [keyboard] Warn if QRC is not available 2020-09-09 11:47:50 +02:00
Adriaan de Groot
0d8e0d9b96 [keyboard] Add a stub for unit tests 2020-09-08 17:27:21 +02:00
Adriaan de Groot
af3261b16f [keyboard] Refactor findLegacyKeymap into something testable 2020-09-08 17:27:21 +02:00
Adriaan de Groot
466e08a8ba [welcome] Set some localeConf values from the welcome page 2020-09-03 20:44:23 +02:00
Adriaan de Groot
634a53d27a [locale] Use new convenience function for updating localeConf 2020-09-03 20:21:37 +02:00
Adriaan de Groot
ec0b68084f [users] Refactor setting GS
- both changing the autologin and changing the user (login) name
  affect global storage, and both may need to change the autologin
  username; split it into a free function.
- the fullname change was bypassing the login in changing the
  login name, **but** then it needs a back-workaround to keep
  the "custom" setting off (when custom is off, auto-fill username
  and hostname is active).
- after loading the config, fill GS already.
- when finalizing GS, get the autologin settings again.
2020-08-28 23:48:47 +02:00
Adriaan de Groot
d7dc48d201 [users] Add now-obvious missed initialization
- start the checkbox off in the state from config
2020-08-28 23:48:47 +02:00
Adriaan de Groot
15b5ef467e [users] Hook up strong- and reuse- password checkboxes
- setup the visibility and initial checked-state of the reuse-user-
  password-for-root near where it gets connected; do similar
  for the require-strong-password
- squash the lambda slot into the regular slot: no sense in
  connecting twice to the same signal with the same receiver.
- only connect config->ui once
- only connect at all if the setting is visible (e.g. when weak
  passwords are allowed for the require-strong checkbox, or
  when root's password will be written for the reuse-password)
2020-08-28 23:47:11 +02:00
Adriaan de Groot
d584a96335 [users] Improve naming of widget 2020-08-28 23:47:11 +02:00
Adriaan de Groot
242d5c6499 i18n: install Python translations from a sensible place
- put the installation code in lang/ rather than among the modules
- remove useless indirection through CMake macro
2020-08-27 13:59:23 +02:00
Adriaan de Groot
23bfcb755e i18n: pick up the translations CMake module just once 2020-08-27 13:54:08 +02:00
Adriaan de Groot
e02c21285a i18n: remove the compiled .mo files from 'sources' 2020-08-27 13:37:45 +02:00
demmm
9bdb05d4ea [localeq] rewrite Offline.qml
once completed, this can be a fully functional (offline) locale selection option
worldmap.png no longer needed/in use
working is the stackview of the region & zones models
Timezone text bar shows correct timezone
currentIndex see comments on lines 65 & 139, not working
update of timezone text bar can't be tested if working as long no index is connected (see lines 93 & 168)
Still, already committing, since it does more then old Offline.qml, which had no function for timezone
2020-08-26 18:19:42 +02:00
Adriaan de Groot
ae14059e8b [webview] Config header was still misplaced
- use #error to produce slightly more comprehensible build failers
2020-08-26 14:48:46 +02:00
demmm
7c08f9a033 [keyboardq] rewrite keyboard.qml
no longer use extra qml files
better highlighting, updated text, fewer buttons
2020-08-26 13:32:56 +02:00
Adriaan de Groot
a2180936ef CI: apply coding style across the entire codebase again 2020-08-26 02:28:43 +02:00
Adriaan de Groot
1cd9b93a22 REUSE: Giant boilerplate cleanup
- point to main Calamares site in the 'part of' headers instead
  of to github (this is the "this file is part of Calamares"
  opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
  this is the 3-paragraph summary of the GPL-3.0-or-later, which has
  a meaning entirely covered by the SPDX tag.
2020-08-26 02:28:38 +02:00
Adriaan de Groot
30a85668b7 REUSE: (GPL-3.0-or-later) C++ modules 2020-08-26 02:22:49 +02:00
Adriaan de Groot
863a4cc2a4 REUSE: (GPL-3.0-or-later) Python modules 2020-08-26 02:22:49 +02:00
Adriaan de Groot
1b23520f20 REUSE: (CC0-1.0) module descriptors and configuration files
In spite of there being considerable documentation sometimes in the
config file, we go with CC0 because we don't want the notion of
'derived work' of a config file.

The example `settings.conf` is also CC0. Add some docs to
it while we're at it.
2020-08-26 02:22:49 +02:00
Adriaan de Groot
7e9576d3d1 REUSE: fix credits for 3rd party sources
Some Calamares source files incorporate material from
3rd parties (unlike the 3rdparty/ dir, which is basically-
unchanged 3rd party source). Tidy up the FileCopyrightText
lines for those sources.

This is not an exhaustive effort.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
2eecd431fe REUSE: (CC0-1.0) test data
There's lots of (YAML) test data that is just trivial configurations
for modules. Since the configurations themselves are **also** CC0-1.0,
and the tests are less interesting, license them equally liberally.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
95ceb1e8c7 REUSE: (BSD-2-Clause) all CMakeLists
The build instructions are not that interesting, it's a toss-up
between CC0 and BSD-2, but because other CMake bits are BSD-2-Clause,
apply that to more CMakeLists. The copyright date isn't all that
accurate, but these are just inconsequential files.

While here, tidy up and get rid of some useless intermediates.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
965bc3b0b4 REUSE: use <author> tag in .ui for license info
The .ui files are all GPL-3.0-or-later style, but it's
slightly difficult to keep licensing information in them:
it's XML, so an XML comment might work, but there's no
guarantee that safe/load will preserve them.

Put the SPDX tags in the <author> tag, so that it's visible
in Qt Designer.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
86f66e8f16 REUSE: (GPL-3.0-or-later) all the schema files
- these are vaguely derived from the schema's written by
  artoo@manjaro.org, but totally re-done for JSON-Schema
2020-08-26 02:01:58 +02:00
Adriaan de Groot
d6d3b41484 [webview] Missing Config include
This was causing CI builds to fail, since WEBVIEW_WITH_WEBKIT
is defined only in the Config file, not on the command-line.
This crept in accidentally while trying to get rid of that
config file entirely.
2020-08-26 01:06:55 +02:00
Adriaan de Groot
b65b5228e1 [welcome] Don't apply code-style to other C-code 2020-08-26 00:31:16 +02:00
Adriaan de Groot
31aa8be620 [locale] Remove unused original images
- These haven't been used in the module, and just take up space and
  now add licensing annoyance as well
2020-08-26 00:31:16 +02:00
Adriaan de Groot
41769c8794 [packages] Alphabetize package manager implementations 2020-08-19 21:12:40 +02:00
Adriaan de Groot
cf1ee2cffe Docs: explain how module weights work 2020-08-19 16:50:40 +02:00
Adriaan de Groot
ade7a22314 Merge branch 'module-weight' into calamares
Re-jig the module-weight calculations.

- modules can have a weight
- module instances can have a weight
- jobs, from the module, can have a weight

This is now configurable on a case-by-case basis, rather than having
C++ only as an option and a weird hack for unpackfs.
2020-08-19 16:20:28 +02:00
Adriaan de Groot
08ea51a344 [partition] Fix tests after removal of single-job-enqueue 2020-08-19 11:28:53 +02:00
demmm
8ad7184024 [usersq] users.qml update some config vars
reflect changes from users/Config.cpp
corrected id missing capital
mirror UsersQmlViewStep.cpp/h with the users versions
connections are still not made
2020-08-18 20:06:30 +02:00
Adriaan de Groot
ecaf97aa60 [users] Tests of config-loading of groups lists 2020-08-18 17:20:37 +02:00
Adriaan de Groot
ab3e393d45 [users] Protect against a nullptr deref
- there is typically no GS during tests
2020-08-18 17:20:08 +02:00
Adriaan de Groot
626ac572d9 Merge branch 'hotfix-3.2.28.2' into calamares 2020-08-18 15:19:06 +02:00
Adriaan de Groot
c92e12ef74 [users] Consistent styling of status badges on input fields
- Use Status* icons rather than the yes/no
2020-08-18 12:48:51 +02:00
Adriaan de Groot
fd2399f702 [users] Re-check password validity on change of conditions
- if the user password is reused (or not) then check the
  status of the passwords against the new reuse-setting
- if the allow-weak-passwords setting is changed, then
  check the status of passwords (both of them) against
  the new weakness setting
2020-08-18 12:46:27 +02:00
Adriaan de Groot
5d016baee9 [hostinfo] Fix up ARM "detection"
As explained by Kevin Kofler and abucodonosor, the
implementer line can carry a bunch of different values,
but none of them are actually interesting. Simplify
the code.
2020-08-18 12:33:42 +02:00
Adriaan de Groot
3ecab4bedb [users] Fix test building
- now Config can create jobs, tests that consume Config need
  to build the jobs as well; re-jig CMakeLists to make
  those a little easier.
2020-08-18 11:41:43 +02:00
Adriaan de Groot
2c72524f29 [users] Move job-creation to Config
- this makes Config entirely stand-alone: it has all the business
  logic and can be hooked up to alternate UIs or used from
  other view steps or jobs
2020-08-18 11:31:32 +02:00
Adriaan de Groot
abae942e55 [users] Complete isReady move to Config
- give Config slots and signals for ready-status
- disconnect the page from the viewstep and use the Config object
  ready-status instead
2020-08-18 11:21:53 +02:00
Adriaan de Groot
36cefe3be1 [users] Remove calculation of 'ready' from Page
- simplify UI update methods
- drop all the m_ready* members, that should live in Config
2020-08-17 16:18:02 +02:00
Adriaan de Groot
eb44d0c6be [users] Move GlobalStorage wrangling to config
- the whole fill-GS method is a bit weird, since you might want
  to reflect that "live" in GS instead.
2020-08-17 15:30:09 +02:00
Adriaan de Groot
24efce0c1d [locale] Make sanity checks in tests more explicit
SEE #1490
2020-08-17 15:09:20 +02:00
Adriaan de Groot
5db4195b7e [users] Remove most remaining business logic from the Page
- report password status from config
- tie config-value of fields to the text-boxes
2020-08-17 15:01:35 +02:00
Adriaan de Groot
34946ecdee [users] Refactor validity-checking
- provide a structured datatype for password status
2020-08-17 14:20:54 +02:00
Adriaan de Groot
1a7b2668dc [users] Emit password status changes 2020-08-17 14:08:59 +02:00
Adriaan de Groot
d7b895b45d [users] Extend tests
- password requirements can disallow weak passwords
- start checking for signals on password changes
2020-08-17 14:05:03 +02:00
Adriaan de Groot
a16ecba2bd [users] Inline isPasswordAcceptable
- the way isPasswordAcceptable was being used was buggy, leading
  to test failures (now fixed)
- don't expose the function, anyway: it's an implementation
  detail for passwordStatus() which in itself is an implementation
  detail for status notifications.
2020-08-17 13:22:44 +02:00
Adriaan de Groot
5f2bbd179c [users] New test for password-setting
- check new config for accepting empty and bogus passwords
- check a config with minor pw checks for empty and bogus passwords
2020-08-17 13:16:41 +02:00
Adriaan de Groot
1dcf56761f [users] Apply validation to the passwords config knows about
- avoid update loops by checking values before emitting *Changed()
- check validity of user and root passwords when asked
- if root isn't going to be written, or re-uses the user password,
  defer to those status checks.
2020-08-17 12:48:43 +02:00
Adriaan de Groot
e145bf68f1 [users] Remove extra ; 2020-08-17 12:48:43 +02:00
Adriaan de Groot
f4eac6c86f [users] Create all the groups needed for the user
- 26b8c82630 added the list of all-the-groups-for-the-user,
  but didn't change the list passed to the method that
  creates groups.

FIXES #1488
2020-08-12 16:50:28 +02:00
Adriaan de Groot
73b8ecd622 [unpackfs] Drop special-case for unpackfs
- make the module weight 12, rather than special-casing internals
2020-08-12 16:03:25 +02:00
Adriaan de Groot
c19866f887 [libcalamares] Add a module-weight to the module descriptor 2020-08-12 16:00:27 +02:00
Adriaan de Groot
14875259c7 [users] Create all the groups needed for the user
- 26b8c82630 added the list of all-the-groups-for-the-user,
  but didn't change the list passed to the method that
  creates groups.

FIXES #1488
2020-08-12 11:20:24 +02:00
Adriaan de Groot
575bc03a5c
Merge pull request #1487 from PureTryOut/alpine-initramfs
[mkinitfs] New module
2020-08-12 10:50:44 +02:00
Adriaan de Groot
e18cc81757
Merge pull request #1486 from demmm/calamares
[usersq] adding QML module usersq
2020-08-12 10:35:41 +02:00
Adriaan de Groot
050d74b4be Fix YAML schemas for all the remaining config files 2020-08-12 10:29:24 +02:00
Adriaan de Groot
14afce538b [netinstall] Fix schema -- the groups file still needs attention 2020-08-12 10:29:24 +02:00
Adriaan de Groot
fcbd6e38c5 [keyboard] Fix schema -- forgotten field *writeEtcDefaultKeyboard* 2020-08-12 10:29:19 +02:00
Adriaan de Groot
efab699479 [umount] Fix schema -- prefer *preservefiles* for keeping the log 2020-08-12 10:29:13 +02:00
Adriaan de Groot
2061024a03 [unpackfs] Fix schema -- new fields *exclude* and *excludeFile* 2020-08-12 10:28:27 +02:00
Adriaan de Groot
57f02464d9 [hostinfo] The hackish ARM-detection is only for Linux 2020-08-12 09:58:48 +02:00
Adriaan de Groot
c22e0a3451 [netinstall][users][tracking] Warnings--, extra ; 2020-08-12 09:58:39 +02:00
Adriaan de Groot
e2f6817536 Merge branch 'issue-1176' into calamares
This doesn't actually implement the job-weight work, but lays important
groundwork in module instances and descriptors.

SEE #1176
FIXES #1473
FIXES #1474
2020-08-12 09:43:35 +02:00
Adriaan de Groot
f73f94da27 Repait module.desc
- a handful of modules had an unused *requires* key in module.desc;
  this is probably from previous intentions around
  prerequisites-testing. Since the settings were empty anyway,
  they have been removed.
- [unpackfs] Compacted the way *requiredModules* list is written
2020-08-12 09:36:30 +02:00
Adriaan de Groot
215cd0d1c3 [users] Repair test on openSUSE 2020-08-11 22:16:03 +02:00
Bart Ribbers
b144f1dfc0
[mkinitfs] New module
This module allows the generation of the initramfs in Alpine Linux based
systems (excluding postmarketOS). Very bare bones, but then again it
doesn't need much. It uses the Alpine Linux tool "mkinitfs" to do the
job.
2020-08-11 18:18:52 +02:00
demmm
355a4f9b8d [usersq] adding QML module usersq
module builds, installs and runs, connections are not working yet.

UserQmlViewstep.cpp/h are from PR https://github.com/calamares/calamares/pull/1356
sections are commented out to make the module build, but help is needed to get those 2 files corrected.

config names used in usersq.qml are guessed from users/Config.cpp
debug window shows correct entries in GS, and under the module tab, usersq.conf is read
as should too. Running shows most config used in users.qml are not registered/wrong,
many entries like: qrc:/usersq.qml:228:13: Unable to assign [undefined] to bool

It is understood not all needed from the users module has moved to Config.cpp yet,
but doing the PR now, since it runs, doesn't crash cala and help is needed to further implement.
2020-08-11 13:46:05 +02:00
Adriaan de Groot
e96198e61c Merge branch 'calamares' into issue-1176 2020-08-10 23:22:14 +02:00
Adriaan de Groot
e9f2c57442 [users] Missing ! makes install always fail
FIXES #1483
2020-08-10 18:37:26 +02:00
Adriaan de Groot
c48ec6bf94
Merge pull request #1481 from demmm/calamares
[welcomeq] language bar icon configurable
2020-08-10 17:02:58 +02:00
Adriaan de Groot
03871db597 [users] **keep** the create users job
- need to add the job to the list rather than just leaking it
2020-08-10 16:52:19 +02:00
demmm
01f0367459 [localeq] use image instead of theme icon 2020-08-10 12:30:55 +02:00
Adriaan de Groot
d83543d904 Merge branch 'calamares' into issue-1176 2020-08-10 09:45:05 +02:00
Adriaan de Groot
f08b4e502a i18n: update English source translations 2020-08-09 20:58:16 +02:00
Adriaan de Groot
0948963d86 [locale] Port TZ widget lookup to new find() method
- The TZ widget uses a different coordinate system (mapping lat and lon
  to pixel locations, and then calculating Manhattan distance from
  that), so needs a different distance function.
- Simplify code: there's just one "closest TZ" function.
2020-08-09 00:21:30 +10:00
Adriaan de Groot
473daecdbf [grubcfg] expand config-testing for the new features
- create directories for new tests ahead of the tests themselves;
  this **can** still cause problems if a test is run standalone.
- if creating the grub-dir at runtime is necessary, be informative
  if it fails.
2020-08-07 13:58:28 +02:00
demmm
e2a5eb6840 [welcomeq] language bar icon configurable
similar functionality as in welcome module, set in welcomeq.conf
2020-08-07 12:44:07 +02:00
Adriaan de Groot
8bf95b6881 [grubcfg] Support prefer_grub_d settings 2020-08-07 12:13:51 +02:00
Adriaan de Groot
064fff0c12 [grubcfg] Drop default_dir
- the default_dir was only stored in modify_grub_default() to
  create the directory if needed; move that functionality to
  the get_grub_config_paths() function (and drop the "s",
  since it now returns just one).
2020-08-07 12:07:26 +02:00
Adriaan de Groot
aa50dfb8a1 [grubcfg] refactor finding-the-grub-paths into a function 2020-08-07 12:02:42 +02:00
Adriaan de Groot
f85c70d4d2 [grubcfg] Introduce prefer_grub_d
- new setting for using /etc/defaults/grub.d/ (SEE #1457), not implemented
- add missing fields to schema for config file
2020-08-07 11:55:16 +02:00
Adriaan de Groot
3fc23e3b07 [grubcfg] Fix config schema 2020-08-07 11:43:48 +02:00
Adriaan de Groot
43f9f2e2f4 Merge branch 'issue-1477' into calamares
FIXES #1477
2020-08-07 11:30:30 +02:00
Adriaan de Groot
463ea3c73f [displaymanager] Fix config schema 2020-08-07 10:50:33 +02:00
Adriaan de Groot
2ce12d5368 Merge branch 'issue-1476' into calamares
Go over the locale module again:
- new models that avoid weird casts and inconvenient iteration
- shared timezone data
- simple sorting and filtering
- simplify the map / QML version

FIXES #1476
FIXES #1426
2020-08-07 08:33:44 +02:00
Adriaan de Groot
0121e3755b [libcalamares] GS improve load/save
- save should be const
- rename save() to saveJson() for parity with saveYaml()
2020-08-07 00:02:14 +02:00
Adriaan de Groot
52d1c8f88a [locale] Explicitly update GS from the locale step
- refactor into some free functions (out of the lambda's for connecting)
- introduce new method to call from onLeave(), matching previous
  widget behavior
2020-08-06 18:32:51 +02:00
Adriaan de Groot
c69bd972e9 [localeq] Demonstrate "offline" lookups
- we can do GeoIP and GeoNames lookups, **or**
- use Calamares's internal GeoIP lookup and country / city hints.

The online version is much more accurate, but costs more lookups;
in these examples, set it all to "offline" and document what needs
to change (code edit) to use the online version.

It's probably a good beginner job to introduce a bool in localeq.qml
to switch the behaviors.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
71ca1e1544 [localeq] Pick up Config changes before showing the module 2020-08-06 16:09:41 +02:00
Adriaan de Groot
32c8338a9c [locale] QML doesn't like const 2020-08-06 16:09:41 +02:00
Adriaan de Groot
91cc5a2b42 [locale] Update the map-QML implementation
- Config has suitable strings for displaying TZ information.
  Use them and automatic bindings. Don't update the strings manually.
- Suggest online or offline TZ lookups based on what the distro wants.
  Edit the QML to pick online lookups (needs access to the geonames
  service, though).
- Drop the variables that point at config and geoip: the Config
  object has a currentLocation, which is filled in by both the
  configuration and any GeoIP lookup -- it doesn't have city
  or country information though.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
15a8d62986 [locale] Add a 'current timezone' strings to Config
- status is a longer phrase
- name is a short human-readable name
- code is the internal code

Code that writes its own "Timezone set to" messages can use
the name, rather than the status.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
eda14ce548 [locale] Avoid nullptr deref
- when no location has been set at all, there's no sensible TZ
  to report; just leave it blank. In *practice* you won't hit this
  code from the Calamares UI before a location has been set, because
  the Config object is instantiated and then immediately configured,
  but from tests or unusual UIs it could be.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
b36ad4c7f4 [locale] Add test for Config initialization
- needs some massaging because Config otherwise depends on
  ModuleManager which is a UI class (for the Reasons),
  but we already have a BUILD_AS_TEST define for that purpose.
- demonstrate a nullptr deref.
2020-08-06 16:09:41 +02:00
Adriaan de Groot
04e53be934 [locale] Repair test: don't re-init te occupied-pixels set each loop
- while here, merge Tests.h to the cpp file
- Fix build when debugging timezones (missed during earlier refactor)
2020-08-06 16:09:41 +02:00
Adriaan de Groot
626dd038da [locale] Re-do locale module with new TZ data
- The Config object now uses the re-done models and timezone data
- most of the properties of the locale Config are unchanged
- much less complication in extracting data from the zones model
2020-08-06 01:34:55 +02:00
Adriaan de Groot
082770032f [hostinfo] Massage test to handle ARM
- there **is** another source of information about the CPU,
  so in the test use that to cross-check what hostCPU() says.

NB: it's probably a good idea to fall back on the same file
    in hostCPU() for better accuracy.
2020-08-05 14:24:28 +02:00
Adriaan de Groot
272cf099be [hostinfo] Try to recognize ARM as well
- /proc/cpuinfo is a terrible information source; it contains very
  different information on x86 from arm (testen on rpi4 and rock64).
2020-08-05 14:07:39 +02:00
Adriaan de Groot
b49b9a66e6 [users] Drop data-access from the Page
- get username, password etc. from the config object, not the page
- jobs now depend entirely on config
- handle logic of "what's the root password" in Config
2020-08-05 13:42:18 +02:00
Adriaan de Groot
eb72d662d1 [users] Add password fields to Config
- no checking is done for validity, and there is no password-status
2020-08-05 13:29:12 +02:00
Adriaan de Groot
b2b9ae7799 [users] Add tests for moved password-check configuration
- link the PW checks to the test, and libpwquality if needed
- test only does very basic config-mungeing
2020-08-05 13:03:56 +02:00
Adriaan de Groot
900deb5dc8 [users] Move the configuration of password checks to Config
- the Widget (Page) does not need to know the password checks,
  that's business logic that belongs to Config.
2020-08-05 13:03:18 +02:00
Adriaan de Groot
7b87242107 [users] PW checking does not need widgets 2020-08-05 12:56:09 +02:00
Adriaan de Groot
0ecf1e1cc1 [users] Drop default parameter for badness 2020-08-05 12:24:39 +02:00
Adriaan de Groot
fcafe5db8f [users] Test the moved setHostname Config
- document that the default for writeHostsFile is *true*
2020-08-05 10:50:38 +02:00
Adriaan de Groot
2efce1ac7a [users] Move the hostname-setting config
- The configuration for writing the hostname (to /etc/hostname,
  to /etc/hosts and possibly to systemd-hostname) is read-only,
  because it comes from the config file and won't change after.
2020-08-05 10:29:13 +02:00
Adriaan de Groot
35dff4d12c [users] Migrate reuse-password and password-strength to Config
- add the "reuse user password for root" setting to Config,
  make the UI page follow that setting.
- add the require-strong-password default and toggle settings to
  Config; this is not well-checked yet.

On the widget / UI side, connect checkboxes only if they are
visible; refactor reuse-user-password-for-root settings.
2020-08-04 22:40:27 +02:00
Adriaan de Groot
44bc61d4be [users] set up Config object before widget 2020-08-04 22:37:27 +02:00
Adriaan de Groot
23b507ae8e [partition] Chase constness, makeJob() 2020-08-04 16:53:29 +02:00
Adriaan de Groot
20b477d063 [partition] Distinguish jobs with updatePreview() 2020-08-04 16:20:04 +02:00
Adriaan de Groot
05f3fbea05 [locale] Apply SPDX headers 2020-08-04 13:45:36 +02:00
Adriaan de Groot
320779ccbe [libcalamares] Document Job::prettyDescription
The TODO said it was unused: it **is** used, but only in
a very limited scope. Drop it from jobs where it wasn't
useful (e.g. those that just return prettyName(), outside
of the partition module).
2020-08-04 11:19:17 +02:00
Adriaan de Groot
6e31d9de4b [partition] Name deviceInfo consistently, auto*
- use auto* for pointer type where we already say "device info" twice
2020-08-03 13:41:34 +02:00
Adriaan de Groot
22ba3cc62d [partition] Make private struct type private
- no need for the definition to be in public header, move to implementation
- while here, sort the members and private methods
- add a makeJob() to add jobs to the queue
2020-08-03 13:38:12 +02:00
Adriaan de Groot
c2929e93b3 [partition] Start sanitizing the Jobs on a Device
- having a struct with an obtuse API for adding jobs-that-need-to-happen-
  to-this-device is just not good for maintainability.
- break the build by making things private.
2020-08-03 13:13:56 +02:00
Adriaan de Groot
c63d4ad2cc [partition] Enable 'file' swap choice
SEE #1166
2020-08-03 12:31:38 +02:00
Adriaan de Groot
0902c74809 [hostinfo] Editorialize on the tests
- the implementation understands Intel and AMD, but the test
  was written for my desktop machine (which fails elsewhere).

SEE #1471
2020-08-03 11:36:44 +02:00
Adriaan de Groot
b1b81f27cc Merge branch 'issue-1297' into calamares
This does **not** result issue-1297, but brings in some
prep-work and pleasant clean-ups.
2020-07-31 23:21:23 +02:00
Adriaan de Groot
41ce42cd4b [partition] Drop InstallChoice enum from Page
- The enum for install choice was copied into PartitionActions and
  used in the Config object; its definition does not belong in the UI.
- Chase the renamings required.
2020-07-31 23:20:51 +02:00
Adriaan de Groot
e21a2f0676 [partition] Add InitialInstallChoice to Config
- add an option to select what button should be selected when the
  partitioning module is started; TODO: the actual functionality is
  **not** implemented.
- drop the previously suggested name, which didn't get beyond the
  comments-in-the-config-file stage (but which intended to do the
  same things as this one)
- add option to schema already, even if it's not implemented.

See #1297

FIXUP conf
2020-07-31 23:20:10 +02:00
Adriaan de Groot
380e2b3613 [partition] Fix up schema file 2020-07-31 23:12:49 +02:00
Adriaan de Groot
42889b5d7f [users] Perhaps triggers the build failure
- This is the only use of STATICTEST together with , and is the only
  one failing to link.
2020-07-31 09:52:06 +02:00
Adriaan de Groot
fec8361ed5 [partition] Drop "convenience" functions
- the functions are used just once
- thin wrappers for named-enum methods that are just as convenient
2020-07-30 10:51:48 +02:00
Adriaan de Groot
824dac62d8 [partition] ChoicePage to use Config object 2020-07-30 10:44:10 +02:00
Adriaan de Groot
d103c42091 [partition] Fix build now swapChoices lives in config 2020-07-30 10:26:58 +02:00
Adriaan de Groot
baabcc5bb4 Merge branch 'calamares' into issue-1297 2020-07-29 22:35:23 +02:00
Adriaan de Groot
33fd5a1fad [partition] Report a valid choice if a partition is selected 2020-07-29 17:58:13 +02:00
Adriaan de Groot
ef4c2666e1 [partition] Update icons on all state changes
The encryption widget (passphrase for disk encryption) should show
ok / warning / error whenever the state changes; this avoids
it showing up first with **no** icon (it should show a warning
when both passphrases are empty).
2020-07-29 14:46:11 +02:00
Adriaan de Groot
0eb1f002db [partition] defuse is-next-enabled
Both the KPMCore and the ChoicePage -- asynchronously -- were connected
to the nextStatusChanged() signal. So if the core said next was true,
that could end up communicated to the ViewManager, enabling the *next*
button in the UI.

Changing to the *erase* page generally triggers a KPMCore reload,
which later emits a `hasRootMountPointChanged()` signal, once the
layout is applied and the disk gets a root mount point. So we'd
get a `true` from KPMCore, which -- because it was connected directly
to the signal to the VM -- would override any other considerations.

Hook up both signals to an intermediate slot that just recalculates
whether the next button should be enabled, based on the state
both of the Choice page and whatever else.
2020-07-29 14:21:19 +02:00
Adriaan de Groot
f1c4caba48 [partition] Refactor checking next-enabled
- move the calculations to an own method (so it can use
  early-return and log things to explain why next is disabled)
2020-07-29 14:21:19 +02:00
Adriaan de Groot
43cd415d9a [partition] Switch to 'modern' Error/ok icons 2020-07-29 14:21:19 +02:00
Adriaan de Groot
892e9798f4 [users] Sanitize tests
- move the testing of config-object methods to its own tests
- simplify file structure for the password job tests
2020-07-29 13:31:39 +02:00
Adriaan de Groot
cc1136fb0e [users] Untangle tests
- name sources for tests consistently Test<something>
- chase some required source changes with the renaming
- name test targets consistently too
2020-07-29 13:23:41 +02:00
Adriaan de Groot
f75839340a [users] Drop QRegExpValidator
- QREValidator is a GUI part, so to avoid a dependency on GUI for the
  (non-GUI) Config object, port to the simpler QRE (which we had
  available anyway)
2020-07-29 12:27:56 +02:00
Adriaan de Groot
b9372ba432 [users] Move default groups setting to Config
- drop groups from the viewstep
- note that the Config object should also be in charge of creating
  Jobs (but then the de-tangling needs to be completed)
- add tests of default groups loading

Doesn't compile because QRegExpValidator is a gui thing.
2020-07-29 12:18:25 +02:00
Adriaan de Groot
b06498194e [machineid] Fix up schema
- schema didn't allow recent (2019) configuration entries
- remove mention of deprecated key from example config
2020-07-28 14:46:56 +02:00
Adriaan de Groot
cc2e3f79ff [users] Move job creation from widget to viewstep
- This is a half-step: the ViewStep shouldn't do job creation either,
  eventually it needs to be the Config object, but this is better
  than asking the widget (UI) to create some jobs.
- When updating login- or host-name, or the autologin setting,
  set it in GS as well. This is a minor improvement over doing
  it only when leaving the page.
- Since the Config object isn't complete, there are leftovers in
  the widget, which has a fillGlobalStorage() for the not-jobs-related
  bits previously in createJobs().
2020-07-28 12:16:03 +02:00
Adriaan de Groot
6a03bcb25e [users] Move setRootPassword to Config
- this really controls whether a root password is written during installtion,
  so rename to writeRootPassword in the code.
2020-07-28 11:59:53 +02:00
Adriaan de Groot
45b71c24e7 [users] Move autologin setting to Config 2020-07-28 11:41:52 +02:00
Adriaan de Groot
6c930af5cb [users] Use convenience method for labeling Full Name 2020-07-28 11:18:07 +02:00
Adriaan de Groot
0813ec3327 [users] Misc cleanups
- unused includes
- avoid "my--pc" .. the dash is inserted by makeHostnameSuggestion()
2020-07-28 10:49:12 +02:00
Adriaan de Groot
9018913af5 [users] Move hostname validation to Config 2020-07-28 10:45:38 +02:00
Adriaan de Groot
40d7d1baac [users] Move login validation to Config object
- add a loginNameStatus which is a QString (empty if things are ok)
  stating what's wrong with the loginName, if anything.
2020-07-28 10:21:23 +02:00
Adriaan de Groot
a564d7a753 [users] Fix build on Linux 2020-07-28 09:42:32 +02:00
Adriaan de Groot
d4a784f521 [users] Hook up full name to Config 2020-07-27 17:52:46 +02:00
Adriaan de Groot
630a508049 [users] Hack - create the widget anyway
- since the configuration is in the UI parts, we need the widget still
  to load the whole configuration (until the config object is complete).
  Create the widget before doing configuration; this is wrong. But now
  we don't hit nullptr derefs all over.
2020-07-27 17:29:46 +02:00
Adriaan de Groot
8a14cc7ffc [users] Move some configuration from Page to Config object
- make the HostName textbox just a view on the Config's HostName
- make the username and login textboxes view onto Config
- query the Config rather than the UI for job data
2020-07-27 17:26:46 +02:00
Adriaan de Groot
5ffa09000a [users] Add hostname guessing to Config 2020-07-27 17:26:46 +02:00
Adriaan de Groot
411a202ba5 [users] Do some login-name guessing 2020-07-27 17:26:46 +02:00
Adriaan de Groot
66ae1823a5 [users] Give Config object a user and login name
- This is incomplete, because the business logic of guessing
  a login from the username is not here.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
35916eb20f [users] Move autologin and sudoers groups to Config 2020-07-27 17:26:46 +02:00
Adriaan de Groot
2f786079f3 [users] Move shell settings to the Config object
- this is a set-only property (as far as the current ViewStep is
  concerned) and is passed around in GS for non-obvious reasons.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
8497aad7a1 [users] Apply coding style 2020-07-27 17:26:46 +02:00
Adriaan de Groot
f9b114a67a [users] Pass the Config object to the Page
- delay construction of the Page (widget) until it's needed
- hand the Config object to the Page on construction

This is prep-work for putting the configuration information into the
Config object, rather than in the UI elements.
2020-07-27 17:26:46 +02:00
Adriaan de Groot
dab831b2ff [users] Introduce a (stub) Config object 2020-07-27 15:55:04 +02:00
Adriaan de Groot
1e08ee084f [users] Actually add the test file 2020-07-27 15:35:24 +02:00
Adriaan de Groot
92938f63f8 Merge branch 'move-permissions' into calamares 2020-07-27 15:05:46 +02:00
Adriaan de Groot
8ce7457023 [users] Add test for create-users code
- just one test for groups-file loading
- while here fix bug that blank and comment lines were being
  kept as valid group names
2020-07-27 15:00:14 +02:00
Adriaan de Groot
8a6e4af511 [users] FreeBSD support creating user
- call pw useradd and pw usermod as needed; the code paths are basically
  the same in invoking a program in the target system to do the work.
2020-07-27 13:45:00 +02:00
Adriaan de Groot
26b8c82630 [users] Refactor user-creation and user-group-setting into methods
- This is prep-work for handling other tools for user- and group-
  creation as well.
2020-07-27 13:29:51 +02:00
Adriaan de Groot
1fddf723fe [users] FreeBSD support creating groups 2020-07-27 13:18:09 +02:00
Adriaan de Groot
b99b87f787 [users] Explain some weird internals 2020-07-27 12:37:04 +02:00
Adriaan de Groot
90a0605f38 [preservefiles] [users] Use the Permissions methods
- don't call out to tools (executables) when we have an API for it
  (which might call out to those tools, but that's abstracted)
2020-07-27 12:27:45 +02:00
Adriaan de Groot
1babcd2aa4 [libcalamares] Put Permissions in CalamaresUtils namespace
- most of the things in utils/ are in the CalamaresUtils namespace,
  let Permissions follow suit. Chase the name change in the
  *preservefiles* module.
- add an `apply()` function for doing the most basic of chmod.
  Note that we don't use `QFile::setPermissions()` because the
  **values** used are different (0755 for chmod is 0x755 in the
  enum value passed to `setPermissions()`).
2020-07-27 10:57:15 +02:00
Adriaan de Groot
d6910b47b5
Merge pull request #1464 from apt-ghetto/fixManualPartitionMsg
Revert Manual Partition instructions
2020-07-26 11:19:30 +02:00
Adriaan de Groot
a01c428270
Merge pull request #1465 from apt-ghetto/fixRootUsername
[users] Do not allow 'root' as username
2020-07-25 17:22:34 +02:00
demmm
3a3507f2b2 [keyboardq] remove background image use
make the module more in line with the look of the rest of Calamares
2020-07-25 17:18:28 +02:00
apt-ghetto
01b22d27a8 Do not allow 'root' as username
On the "Users" tab, the user can choose a username. It was possible to
use 'root' as username, which led to an installation error, because
'root' exists already.

Added a new check to the username validation.

Fixes #1462.
2020-07-25 16:17:57 +02:00
apt-ghetto
2b3cc17782 Revert Manual Partition instructions
With PR calamares/calamares#1357 the label of the "Manual partitioning" option
was changed, which introduced several downsides:
  * The label is shown for UEFI and for BIOS installations.
  * The mountpoint of the ESP is and should be distro specific.
  * The label always mentioned GPT, which is irrelevant.
  * The label should explain, what the option does, and not, what
    problems can occur under certain circumstances.
2020-07-24 17:56:58 +02:00
demmm
d114c383fa [localeq] remove obsolete vars & comments
set index in i18n.qml to -1, old settings were just for reading from the bogus model
current model uses strings, so index fails to read from it.  This fixes cala crashing on loading i18n.qml
2020-07-24 17:34:14 +02:00
Adriaan de Groot
409ab6ee86 [users] Refactor writing sudoers file
- use existing convenience methods
2020-07-24 14:27:42 +02:00
Adriaan de Groot
bc484ae5da [users] Refactor /etc/group file handing 2020-07-24 14:27:42 +02:00
Adriaan de Groot
11482559ad [netinstall] There is no netinstall.qrc 2020-07-24 13:39:43 +02:00
Adriaan de Groot
2c110bfc66 Merge branch 'calamares' into move-permissions 2020-07-24 12:29:10 +02:00
Adriaan de Groot
a080e47f4b [locale] Add prettyStatus to Config
- this is present in the previous config, and helps make the modules
  consistent by returning prettyStatus in both ViewSteps.
2020-07-24 11:53:32 +02:00
Adriaan de Groot
07c096673d [localeq] Report summary before install 2020-07-24 11:10:56 +02:00
Adriaan de Groot
a4ed160060 [localeq] Offer a Config setting to set location from region/zone
- already had methods for various kinds of broken-up data, but
  not one for plain "region/zone" strings; having this makes
  it easier for QML to report a zone.
- use the region/zone method from QML, so that clicking on the
  world map updates the actual TZ in Config.
2020-07-24 11:07:58 +02:00
Adriaan de Groot
e78cde7ccb [locale] Update GS when the LC value changes (not just location) 2020-07-23 23:32:53 +02:00
Adriaan de Groot
00e9454344 [localeq] Hook up to Config object
- get network status from the global Network object; document that
- get the strings describing the language and LC settings from
  the config-object instead of roll-our-own
- use the model of supported locales from Config to populate listboxes
- connect selection of language or LC to the Config object
2020-07-23 23:32:53 +02:00
Adriaan de Groot
75da1bece4 [locale] Add properties for language and LC codes
- we already had the human-readable status strings, but also want the
  actual code (particularly for being able to **update** the code
  from QML)
2020-07-23 23:25:52 +02:00
Adriaan de Groot
fdbfbfe284 [localeq] Fix build, missed one case of removed member variable 2020-07-23 17:46:20 +02:00
Adriaan de Groot
fb927c9763 [localeq] Use network-connected property to direct map-loading 2020-07-23 12:57:26 +02:00
Adriaan de Groot
4b7403d115 [localeq] Re-do with new Config
- remove stray and useless TODOs
- remove unnecessary empty overrides
- clean up includes
- drop all the code that is now in Config

Since the business logic (setting locations, maintaining GS, ...)
is all in the Config object, the ViewStep is remarkably simple:
hook up a UI to the Config, which in the case of QML is done
automatically.
2020-07-23 11:11:18 +02:00
Adriaan de Groot
d90d451f42 [locale] Remove unnecessary includes 2020-07-23 10:43:31 +02:00
Adriaan de Groot
1f3cb32486 [locale] Apply coding style 2020-07-22 17:10:08 +02:00
Adriaan de Groot
824cb4d4b8 [locale] As the Page is constructed, it shouldn't change the location
- since the Page hooked up a model and changed the region-selection
  **after** connecting to signals, it would reset the location
  to Africa/Abijan (alphabetically the first timezone) during
  construction. Don't do that.
2020-07-22 17:06:14 +02:00
Adriaan de Groot
4f684be83d [locale] Avoid crashes in the map widget if there is no current location 2020-07-22 17:06:14 +02:00
Adriaan de Groot
42331f6e13 [locale] Move GeoIP lookup to config
- replace the weird synchronous-lookup-during-requirements-checking
  with a proper async lookup when the system is ready.
2020-07-22 17:06:14 +02:00
Adriaan de Groot
a25d61077f [locale] Add GeoIP settings to Config
- this doesn't do the lookup **yet**
- while here, refactor setConfigurationMap so it reads like a story,
  with chunks bitten out into a handful of static inline void methods.
2020-07-22 11:53:06 +02:00
Adriaan de Groot
b607cf3f98 [locale] Get starting TZ in Config
- read the *region* and *zone* settings; this duplicates what
  the ViewStep does and is currently unused, but ..
- add new support for using the system's TZ (rather than
  the fixed values from *region* and *zone*). This complements
  GeoIP lookup.

This is the actual feature that started the long rewrite of
the Config object (so that all the business logic would be in
one place, usable for both widgets and QML).

FIXES #1381
2020-07-22 01:28:10 +02:00
Adriaan de Groot
781d76c9e5 [locale] Avoid nullptr if there is no location 2020-07-22 00:32:29 +02:00
Adriaan de Groot
0c9480aa3f [locale] Move more business logic to Config
- writing *localeConf* settings to GS can be done always when the
  formats are set, rather than special-cased. The code
  that handles the "special case" of no widget existing for the ViewStep
  overlooks the other crashes that happen then.
- Since Config knows what jobs to create, just ask it rather than
  keeping a copy.
2020-07-22 00:23:50 +02:00
Adriaan de Groot
f6419d5de1 [locale] New setting *adjustLiveTimezone*
- allow finer-grained control over whether-or-not to adjust the
  timezone in the live system.
- handle some special cases at the point of loading-configuration.
- document the setting in locale.conf
- correct some documentation bugs
- adjust the YAML schema for locale.conf so it's legal YAML syntax
  **and** validates the current file.
2020-07-22 00:11:55 +02:00
Adriaan de Groot
995ebd5c83 [locale] Remove unused #includes 2020-07-21 17:44:44 +02:00
Adriaan de Groot
1de2210d29 [locale] Move the GS updating to the Config object
- since all locale changes need to be entered into GS anyway, this
  is something the Config object can do because it is the source
  of truth for locale settings.
- drop all the GS settings from the Page.
2020-07-21 17:38:22 +02:00
Adriaan de Groot
f7c2e4a3e7 [locale] Sanitize Config signals and slots
- remove the weirdly-structured prettyStatus and similar:
  the Config object has human-readable status strings (three,
  for location, language, and LC-formats) which can be
  normal properties with signals.
- Implement prettyStatus in the view step by querying the Config.
2020-07-21 17:38:22 +02:00
Adriaan de Groot
ef08ff6ac0 [locale] Move status strings from Page to Config
- the config knows the status and how to describe it,
  fetch the strings from there.
2020-07-21 15:51:49 +02:00