31 Commits (52d1c8f88a077170f7f7e11d0f5b61b82e68e0b6)

Author SHA1 Message Date
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
5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
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)
5 years ago
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
5 years ago
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.
5 years ago
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.
5 years ago
Adriaan de Groot e78cde7ccb [locale] Update GS when the LC value changes (not just location) 5 years ago
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)
5 years ago
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.
5 years ago
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.
5 years ago
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
5 years ago
Adriaan de Groot 781d76c9e5 [locale] Avoid nullptr if there is no location 5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
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)
5 years ago
Adriaan de Groot 726f882185 [locale] Move current-location to Config 5 years ago
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.
5 years ago
Adriaan de Groot f0cac7d669 [locale] Hook tz widget up to the Config's data 5 years ago
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.
5 years ago
Adriaan de Groot b6b5c44996 [locale] Load supported locales in Config 5 years ago
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.
5 years ago
Adriaan de Groot 27d4fa675b [locale] remove unneeded this-> 5 years ago
Adriaan de Groot b890345b1f [locale] Tidy includes 5 years ago
Adriaan de Groot 4b65600c08 [locale] Remove useless localeglobal
- Although ::init() was called, none of the actual functionality
   from localeglobal was still in use.
5 years ago
Adriaan de Groot 08b5012946 [locale] Apply coding style to Config
- ci/calamaresstyle
- sort includes by kind (local module, Calamares, Qt, STL)
- add copyright line
5 years ago
Camilo Higuita 8ff1996e12 add the localq module and config to locale 5 years ago