Commit Graph

28 Commits

Author SHA1 Message Date
Adriaan de Groot
ea61ac4386 [locale] Set *locale* GS key when needed
The code path for setting the locale / language automatically
emits currentLanguageStatusChanged(), but the code that updates
GS connects to currentLanguageCodeChaged(). This was altered in
the 3.2.28 release cycle. Since then, automcatic locale selection
wasn't setting *locale* in GS, so that a click-through kind of
locale selection would not set it; then the packages module
has no *locale* setting for localization packages.

The combination of status and code signals (machine- and human-
readable) is ok. Introduce a setter to the language that does
the necessary signalling, so that setting the language automatically
also DTRT.

FIXES #1671
2021-04-12 17:21:33 +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
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
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
32c8338a9c [locale] QML doesn't like const 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
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
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
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
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
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
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
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
Adriaan de Groot
66eacce654 [locale] Move localeconfiguration to Config object
- the language and LC settings migrate from page to config
- add API for explicitly setting language (which is then preserved
  when clicking new locations)
2020-07-21 13:16:52 +02:00
Adriaan de Groot
726f882185 [locale] Move current-location to Config 2020-07-20 23:06:12 +02:00
Adriaan de Groot
5a6a9a0d45 [locale] Move job-creation to Config
- since Config knows what settings there are, it should create the
  jobs to run later -- not the Page.
- this doesn't work yet, because the Config does **not** know what
  the selected timezone is yet.
2020-07-20 22:21:29 +02:00
Adriaan de Groot
f0cac7d669 [locale] Hook tz widget up to the Config's data 2020-07-20 16:54:44 +02:00
Adriaan de Groot
88d1d255f6 [locale] Add regions & zones models to Config
- The models are constant pointers, even if their contents aren't.
- Make the top-level (region) model point to the global TZ list.
2020-07-20 16:16:53 +02:00
Adriaan de Groot
25ba1bb767 [locale] Remove localeGenLines from page
- the Config object took over loading of the string list
- expose the list as a property
- drop loading code from the page.
2020-07-20 13:24:31 +02:00
Adriaan de Groot
b6b5c44996 [locale] Load supported locales in Config 2020-07-20 12:55:07 +02:00
Adriaan de Groot
8119c7e72a [locale] Reset Config object
The Config object wasn't being used at all in the locale module;
reset it to empty and start using it in locale, so that
configuration functionality can be added to it as-needed,
and with the necessary refactoring built-in.
2020-07-20 12:37:27 +02:00
Adriaan de Groot
4b65600c08 [locale] Remove useless localeglobal
- Although ::init() was called, none of the actual functionality
   from localeglobal was still in use.
2020-04-14 12:37:22 +02:00
Adriaan de Groot
08b5012946 [locale] Apply coding style to Config
- ci/calamaresstyle
- sort includes by kind (local module, Calamares, Qt, STL)
- add copyright line
2020-03-24 22:48:14 +01:00
Camilo Higuita
8ff1996e12 add the localq module and config to locale 2020-03-24 09:47:53 -05:00