Commit Graph

347 Commits

Author SHA1 Message Date
Adriaan de Groot
a2a10d14b6 [locale] Improve logging in tests 2020-04-14 16:24:56 +02:00
Adriaan de Groot
29fd0e0319 [locale] Expand test to check zones-overlap
- Document index and find methods,
- Check that each location is claimed by only one image (e.g. by
  one zone). This is currently false.
2020-04-14 16:21:24 +02:00
Adriaan de Groot
1d5c4f13aa [locale] Move the find-a-zone-image-for position to the image list 2020-04-14 16:06:21 +02:00
Adriaan de Groot
6173f9337a [locale] Refactor long+lat -> x,y mapping
- Move this code to a static method since it only depends on the
  expected image size (which here, is managed by the image list).
2020-04-14 15:24:05 +02:00
Adriaan de Groot
3945008956 [locale] Test the TZ image loader
- QImage needs Qt5::Gui, so this isn't a guiless-test; it can use
  the offscreen QPA, though.
- Check that the images are all the same size
- Debugging / check code removed from timezonewidget
2020-04-14 15:10:04 +02:00
Adriaan de Groot
340c462062 [locale] Refactor loading of timezone images
- Move the image-loading to a separate class
2020-04-14 14:44:24 +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
36d9e7d8f4 [locale] Extend tests with tz-image-validation
- The idea is to check all the TZ images for consistency, like
  TimeZoneWidget::setCurrentLocation() does when DEBUG_TIMEZONES is
  on; a zone-pixel should be set in only **one** image.

The test so far is just a stub.
2020-04-14 11:59:45 +02:00
Adriaan de Groot
e84db033b0 [locale] Debug-message typo 2020-04-14 11:57:03 +02:00
Adriaan de Groot
f9d888ec24 [locale] Warnings--
- remove unused variables, tighten up code some
- while here, apply coding style
2020-04-14 11:32:15 +02:00
Adriaan de Groot
022e62b829 [licale] Fix build with DEBUG_TIMEZONES
- QLatin1String isn't a constexpr; the whole ZONE is a bit derpy,
  so let's just #define it.
2020-04-14 11:26:03 +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
Adriaan de Groot
ebb3f319cc [modules] Be more consistent in include punctuation
- Use <> for Qt, system, externals
 - Use double-quotes for Calamares headers
2020-03-09 21:05:15 -05:00
Adriaan de Groot
adf81c0ab5 [locale][packagechooser] Fix tests, QCOMPARE again 2020-02-21 18:24:39 +01:00
Adriaan de Groot
6f996d8eed CMake: give yamlcpp a proper imported target
- This makes linking easier,
 - Adds the right includes (needed on FreeBSD),
 - Lets us drop silly GUI setting for non-GUI tests (I think this was
   a side-effect of compiling on FreeBSD, where UI would pull in
   /usr/local/include).
2020-02-17 14:55:12 +01:00
Adriaan de Groot
4495a4c739 CMake: Allow extra libraries in calamares_add_test
- Extra libraries specified via LIBRARIES part of CMake function
 - Convert all the other module tests
2020-02-17 14:36:52 +01:00
Adriaan de Groot
b044549013 [libcalamares] Merge PluginDllMacro.h into DllMacro.h
- Let's just have one header definining export- and visibility-
   macros for Calamares. They are still selected based on the
   export flags (*_PRO), just defined in one header instead of two.
2020-02-17 11:37:35 +01:00
Adriaan de Groot
a09593e4a2 [locale] Tighten up language-matching
- Drop plain startsWith() matching, since we now have "as" and "ast"
   as supported languages, where one name is a prefix of the other.
2020-01-28 17:35:54 +01:00
Adriaan de Groot
49690fc681 [locale] Remove superfluous code
- the list is already filtered for UTF-8, so this is redundant
 - this *incidentally* fixes the problem with Assamese and Asturian,
   since Assamese (as_IN) was having its only entry removed,
   after which it would match Asturian (ast_ES)
2020-01-28 16:41:15 +01:00
Adriaan de Groot
97f622e094 [locale] Use standard algorithms 2020-01-28 15:50:08 +01:00
Adriaan de Groot
1a8926181e [locale] Warnings-- (initialization-order) 2020-01-07 10:46:26 +01:00
Adriaan de Groot
1625bb1dae [locale] Support Qt 5.9
FIXES #1296
2020-01-07 00:09:04 +01:00
Adriaan de Groot
7bea19a62c [locale] Fix build with debugging enabled (API changes) 2019-12-11 08:45:35 -05:00
Adriaan de Groot
242b79e2e1 [locale] Remove old Location information
- all the TZ location information now lives in the Calamares
   locale service and the TZ list
 - replace the Location class that was local to the timezone
   widget by the TZZone class
 - chase a bunch of small API changes that this needs
2019-12-11 08:45:35 -05:00
Adriaan de Groot
e164f8d63a [locale] Fix build with DEBUG_TIMEZONE
- all the API changes were not reflected in the debugging code
2019-12-10 16:19:06 -01:00
Adriaan de Groot
fb9d53909e [locale] Drop ZONES #define
- this was a "cheap" way to write a list, but going through
   QStringList::split() is just a long-way-around for static
   initialization
2019-12-10 16:09:48 -01:00
Adriaan de Groot
2dfbed40c5 [locale] Move defines
- Used in only one place, move to .cpp
 - Drop useless scaling all the images *are* that size already
 - Add debugging check that the images match expected size
2019-12-10 10:00:16 -07:00
Adriaan de Groot
9d9d9c361d [locale] Clean up constants
- move LOCALESDIR to the one place it's used
 - remove file with only unused #defines
2019-12-10 17:46:09 +01:00
Adriaan de Groot
7354d35faf [locale] Apply coding style to timezonewidget/ 2019-12-10 17:42:58 +01:00
Adriaan de Groot
1e04924224 [locale] Drop the TZ-widget's timezone database
- use the global TZ service instead
 - contains hacks to keep some of the API unchanged, which will be
   removed shortly
2019-12-10 17:29:35 +01:00
Adriaan de Groot
4089a01cb1 [locale] Create TZ model earlier 2019-12-11 01:31:56 +10:00
Adriaan de Groot
226530cf6f [locale] Use model functions from locale service
- drop the home-grown combo-box filling, use model
2019-12-11 01:04:09 +10:00
Adriaan de Groot
c75e870073 [libcalamares] CStringList::find() convenience function
- search for a key and return a type-cast pointer to the result
 - while here, simplify some other code
 - the find() function could be done with std::find_if but doesn't
   get any shorter or more elegant
2019-12-10 15:54:43 +01:00
Adriaan de Groot
6092172f8d [libcalamares] Regions and zones change to QList<Base*>
- By using QList< CStringPair* > consistently, we can save
   a bunch of model code at the cost of an occasional dynamic_cast;
   it's fairly rare for there to be a need for the derived pointer.
2019-12-10 15:32:15 +01:00
Adriaan de Groot
f4509f3380 [libcalamares] Move loading to TZRegion
- don't make the model load files, provide convenience functions
   for loading in the value classes
 - create model from lists of value pointers
2019-12-10 10:48:39 -01:00
Adriaan de Groot
9f06903115 [local] Chase API change in TZRegionModel 2019-12-09 23:36:32 -11:00
Adriaan de Groot
afb5430c42 [locale] Use TZRegionModel
- instead of populating combo box with texts, use the model
   read in from zone.tab
 - this **partly** deprecates the LocaleGlobal stuff
2019-12-10 11:30:48 +02:00
Adriaan de Groot
ddc2f60768 Merge branch 'master' into zone-data 2019-12-09 17:44:32 +01:00
Adriaan de Groot
ad868033f3 [locale] Chase deprecations in Qt 2019-11-26 16:56:12 +01:00
Adriaan de Groot
906aeec5d3 [locale] Replace #define with a static const
- TZ_DATA_FILE is only used in one place
2019-11-25 11:49:41 +01:00
Adriaan de Groot
1df6454cfe [locale] Tidy up types
- use JobList typedef where possible
 - remove unused forward type definitions
2019-11-25 10:52:22 +01:00
Adriaan de Groot
5d0a5c035d
Merge pull request #1243 from stikonas/master
QLatin1Literal->QLatin1String.
2019-09-30 10:30:02 +02:00
Adriaan de Groot
4799e821d3 [locale] Reduce warnings, missing override 2019-09-23 11:25:18 +02:00
Andrius Štikonas
490c14d93d QLatin1Literal->QLatin1String. 2019-09-21 20:44:33 +01:00
Adriaan de Groot
11d3f10e26 [locale] Dispose of waiting widget
- Do the async GeoIP checking in the async requirements-checking phase
 - Do not return any requirements results -- we just need the async bit
 - Drop the waiting widget, since it's not needed (done by the
   requirements phase)
2019-09-10 14:18:47 +02:00
Adriaan de Groot
41ece863de [locale] Create widgets when needed instead of at startup
- this blocks forever, since now the GeoIP lookup isn't done at all.
2019-09-10 06:19:20 -04:00
Adriaan de Groot
0a1dc77f9b [locale] Hang on to GeoIP::Handler just once
- replace configuration settings by putting them in an object
 - use unique_ptr to allow us to create one optionally.
2019-09-10 11:26:47 +02:00
Adriaan de Groot
d70d418d92 [locale] Refactor setting of LC entries 2019-09-07 17:02:59 +02:00
Adriaan de Groot
5cac3ac6ad [locale] Apply coding style 2019-09-07 16:58:37 +02:00
Adriaan de Groot
0ee8427d5a [locale] Remove old-style GeoIP configuration 2019-09-07 16:05:09 +02:00
Adriaan de Groot
5a24e45e3b [locale] Factor out a simple lambda
- If this was handed to an algorithm it would make more sense
   as a lambda
2019-09-07 15:58:56 +02:00
Adriaan de Groot
3093f635e2 [locale] Apply coding style 2019-09-07 15:48:22 +02:00
Adriaan de Groot
21dde80a65 [locale] Refactor button handling to plain methods 2019-09-07 15:47:12 +02:00
Adriaan de Groot
91f0509272 [locale] Refactor lambdas to plain methods
- Lengthy lambda's doing UI stuff -- that doesn't change --
   are easier to read as plain methods.
2019-09-07 15:18:58 +02:00
Adriaan de Groot
782b469974 [locale] Move all the translation work to a single slot 2019-09-07 12:38:49 +02:00
Adriaan de Groot
543e2d34fc [libcalamares] [locale] Remove unused includes 2019-09-02 12:02:43 +02:00
bill-auger
5642576cf3
cross-reference/clarify geoip documentation 2019-08-28 13:21:42 -04:00
Adriaan de Groot
18ed4c74ef [libcalamares] Move more into the locale service
- Use namespace CalamaresUtils::Locale consistently for this service.
 - Move locale-related non-GUI support code from the Welcome module
   to libcalamares; these are generally useful. Both Label (naming a locale)
   and LabelModel (managing a bunch of those Labels) have been moved.
2019-05-10 11:46:20 -04:00
Adriaan de Groot
69f05bd34a Merge branch 'master' into shuffle-geoip 2019-05-10 08:04:36 -04:00
Adriaan de Groot
9331a25905 [libcalamares] Remove Typedefs.h
- This small header file contained a few unrelated typedefs.
   Move those typedefs to the classes they relate to. This
   **does** mean that some consumers need to #include something
   else instead.
 - Use type names more consistently.

Editorial: why are **pages** responsible for creating the jobs?
2019-05-07 09:51:23 -04:00
Adriaan de Groot
8774b605fa [locale] Update to use newer configuration
- deprecate the old entries
 - use a geoip sub-map for GeoIP configuration
 - polish up documentation
 - drop mention of blank and "legacy" styles for GeoIP config,
   just update your URLs already.
2019-05-03 11:37:12 -04:00
Adriaan de Groot
25d97efe48 [locale] Use GeoIP Handler instead of own implementation 2019-05-02 13:48:19 -04:00
Adriaan de Groot
9bc8d28800 [libcalamares] Shuffle GeoIP into a namespace
- Use CalamaresUtils::GeoIP for GeoIP code
 - Name the public interface parts generically, while the
   implementation details retain GeoIP<foo> names.
2019-05-02 07:25:48 -04:00
Adriaan de Groot
73a5e7dd62 [libcalamares] Put GeoIP in namespace
- Use consistent include-guard style
 - Put things in namespace CalamaresUtils
2019-05-02 05:58:52 -04:00
Adriaan de Groot
ce909f00cc [libcalamares] Drop unnecessary HAVE_XML
- Linking to QtXml gives us a -DQT_XML_LIB already, so use that.
2019-05-01 06:39:20 -04:00
Adriaan de Groot
a1b1ebcd29 [locale] Compile with moved GeoIP handling 2019-05-01 06:31:31 -04:00
Adriaan de Groot
9ed46fc275 [libcalamares] [locale] Adjust CMakeLists to moved code 2019-04-30 17:01:10 -04:00
Adriaan de Groot
7ec7278fd3 [libcalamares] [locale] Move GeoIP code to the library 2019-04-30 16:52:31 -04:00
Adriaan de Groot
f076dd76ad [libcalamares] Rename YamlUtils.h
- Since we have the utils/ filesystem namespace, and use CalamaresUtils::
   as C++ namespace, simplify naming.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
090aee9196 Modules: adjust to split-out utils/Variant.h
- Most modules only needed the variant support, not the "whole"
   CalamaresUtils header.
 - While here improve ordering of headers as well.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
c44e221fb6 Merge branch 'issue-1107'
FIXES #1107
2019-04-19 16:27:19 +02:00
Adriaan de Groot
57452b8c38 [locale] [welcome] Adjust to moved LocaleLabel
- Adjust #includes
 - In [welcome], use find() on the model rather than querying
   the combo-box.
2019-04-19 10:10:36 +02:00
Adriaan de Groot
123c774a47 Use new automoc options 2019-04-18 12:06:16 +02:00
Adriaan de Groot
cef2f50510 Reduce warnings about extra ;
- Trailing ; after Q_UNUSED
 - Trailing ; after CALAMARES_RETRANSLATE
2019-04-18 12:06:09 +02:00
Adriaan de Groot
c83395ff6d Reduce warnings for yaml-cpp
- Use only utils/YamlUtils.h to pull in yaml-cpp and supporting code.
 - When compiling with clang, turn off warnings that the system header
   for yaml-cpp would generate.
2019-04-18 12:06:09 +02:00
Adriaan de Groot
009dfd7de5 [locale] Reduce warnings (shadowed global) 2019-04-15 10:03:12 -04:00
Adriaan de Groot
520478847c Make logging more consistent.
- Across all the C++ modules, use Logger::SubEntry for sub/continues
   log lines, instead of somewhat-random indent strings.
2019-04-15 09:02:21 -04:00
Adriaan de Groot
b10c7ad9c6 [locale] Reduce warnings for gcount()
- The read is at most sizeof(arr), so int is fine. Do
   the cast explicitly.
2019-04-11 15:14:31 +02:00
Adriaan de Groot
2caefce3cb [locale] Add a CMake option for debugging 2019-03-20 11:26:02 +01:00
Adriaan de Groot
6071489788 [libcalamaresui] Provide default implementations of next() and back()
- These methods are used for multi-page view-steps, which are rare.
   For all the others, just drop the empty implementation and defer
   to the base class.
2019-02-25 07:49:10 -05:00
Adriaan de Groot
08565b5f17 [libcalamaresui] Remove the signal done() from ViewStep
- The signal is emitted, generally from next(), but not actually used.
2019-02-25 07:34:40 -05:00
Adriaan de Groot
0f80a6295b [libcalamares] Reduce warnings about trailing ; 2019-02-12 17:11:01 +01:00
Adriaan de Groot
44211ee19a Merge branch 'release-3.2.3'
- Pull in CHANGES and release-numbering modifications
 - Pull in locale fixes
 - Bump version again, to 3.2.4-RC1 in master
2019-01-09 13:07:32 +01:00
Adriaan de Groot
4b1b71dd3e [locale] Update Copyright statements 2019-01-08 22:30:12 +01:00
Adriaan de Groot
200f68ae48 [locale] Reduce debug-chattiness 2019-01-08 22:18:01 +01:00
Adriaan de Groot
f1cbd5fcbf [locale] Provide API for setting language
- The language and BCP need to be in-sync
 - Existing code was inconsistent in setting things, which is why
   you could get through the locale page without setting a locale
   (at all) or it would keep English in spite of picking Germand on
   the welcome page.
 - Patch tests to use that API.
2019-01-08 18:09:34 +01:00
Adriaan de Groot
8cc0e1f5f9 [locale] Expand tests to check lang
- This shows that one constructor isn't doing it right.
2019-01-08 14:39:40 +01:00
Adriaan de Groot
2345b933cd [locale] Add operator << for LocaleConfiguration, for debugging 2019-01-08 13:40:20 +01:00
Adriaan de Groot
dbe50fe3db [locale] Improve LocaleConfiguration constructors
- Allow split-setting of the language and formats
 - Test new constructors
 - Since fromLanguageAndLocation can handle empty localeGen
   lists just fine, skip all the weird checks that return
   invalid guessed locale configurations.
2019-01-08 13:23:16 +01:00
Adriaan de Groot
0a526febae [locale] Refactor setting the BCP47 name and update test 2019-01-08 11:39:15 +01:00
Adriaan de Groot
b1921cced9 [locale] Add tests for some of the data classes 2019-01-08 11:30:49 +01:00
Adriaan de Groot
50e6f0fcbf [locale] Replace weird static-constructor
- Replace createDefault() with a constructor that takes a
   locale name; use it with en_US.UTF-8 in those places where
   createDefault was previously used.
2019-01-08 11:10:16 +01:00
Adriaan de Groot
9d871fb9db [locale] Update global locale setting when it changes
- use debugging to be a little more chatty
 - when changing the system language on the locale page,
   the global locale setting should change, too.
2019-01-07 18:49:08 +01:00
Adriaan de Groot
bc398756f5 [locale] Debugging support for Location
- code formatting
 - provide an operator << for debugging TZ widget
2019-01-07 18:34:25 +01:00
Adriaan de Groot
3ff480eaa9 [locale] Refactor to make updating global locale setting easier. 2019-01-07 17:29:54 +01:00
Adriaan de Groot
e52f0318fe [locale] Call timedatectl only when needed
- When testing and running not-as-root, only call the timedatectl
   when the settings actually change; this reduces the number of
   times kauth pops up.
2019-01-07 15:16:37 +01:00
Adriaan de Groot
56a71c232f [locale] Use the re-factored LocaleLabel 2018-12-14 13:27:32 +01:00
Harald Sitter
311af6de5d [locale] prefer native language and country names when available
This basically means we talk about localization in the respective
localized variant. e.g. "German (Germany)" ➡ "Deutsch (Deutschland)".

If geoip lookup failed or isn't configured for whatever reason it's a
stretch to expect the user to know english enough to find their own
language. Preferring the localized strings resolves this issue.

Additionally this happens to bypass #712 respectively
https://bugreports.qt.io/browse/QTBUG-34287
as the native names are properly spelled. So, as long as Qt has localized
names the names will also be properly spelled.
2018-12-13 23:18:37 +01:00
Adriaan de Groot
7515386cf8 CMake: clean up test setup
- Remove redundant searches for ECM and Qt::Test, move
   them to top-level.
2018-10-05 09:41:37 -04:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Adriaan de Groot
99163c9a68 Style: stray space 2018-06-15 04:46:53 -04:00
Adriaan de Groot
ac769d1de8 Style: use QStringLiteral
- In many cases, using QLatin1String is a de-optimization, when
   applied to a C string literal. Kevin Kofler pointed out that
   those should basically all be QStringLiteral, instead. (Compile
   tests with -O3 show that in the optimized object file, the
   code size difference is negligible).
 - Drop the explicit constructor entirely in cases where we're calling
   QProcess::execute(), for consistency.
 - Do a little less messing around in the mapping of keyboard locales
   to keyboard map names.
2018-06-15 04:41:41 -04:00
Adriaan de Groot
24b0df3c04 [locale] Missing includes
- Implicitly included in recent Qt, but not in old versions

Reported from Neptune Linux
2018-06-07 09:03:54 -04:00
Adriaan de Groot
40b60abcb3 [locale] Move constants for map-munging
These don't have to be defines at all.
2018-05-29 11:29:44 -04:00
Adriaan de Groot
1ee87c3cde [locale] Drop debugging define 2018-05-29 08:16:43 -04:00
Adriaan de Groot
6b3299e6ff [locale] Adjust the North
- Fudge the numbers in the North, to improve location
   of the pins and lines of latitude.
 - Inuvik, Yellowknife, Cambridge Bay, Resolute look ok
 - Thule, Scoresbysund look ok; Danmarkshavn a pixel or so too far North
 - Reykjavik is a bit too far North
 - Longyearbyen is a bit too far North

Since these places are off by one or two pixels, this becomes
invisible when a large pin + text label is placed on it.
2018-05-29 08:16:43 -04:00
Adriaan de Groot
4bacafb411 [locale] Fix timezone pixel map for Tierra del Fuego region
- Punta Arenas, draw like it's in -4
 - Ushuaia, draw like it's in -3

FIXUP pixel
2018-05-29 08:15:33 -04:00
Adriaan de Groot
b7dbc8cc1f [locale] Name zones when debugging
- When debugging timezones, state their names (e.g. UTC offset)
   and also log the pixel position under consideration.
2018-05-29 06:33:50 -04:00
Adriaan de Groot
2c18ba6ddb [locale] Adjust latitude calculation in the southern hemisphere
The scaling on the map was a little off; the degrees of latitude
are a little wider there than around the equator and Europe.

 - Johannesburg is in the right spot
 - Hobart is no longer a suburb of Melbourne
 - Punta Arenas is in Chile
2018-05-29 06:09:25 -04:00
Adriaan de Groot
9f8f76befc [locale] Introduce timezone-widget debugging
Replace pin and text label with just a dot (to pinpoint where
locations are) and draw latitude lines on the globe when
DEbUG_TIMEZONE is set at compile time. Since there's probably
still timezone-related bugs (in particular in the images that
map points on the globe to timezones), leave this in the codebase.
2018-05-29 06:09:25 -04:00
Adriaan de Groot
a38a2a54f7 [locale] Check all XML TimeZone elements if needed
- reduce warnings about loop-executed-only-once
 - if there is more than one TimeZone element, use the virst valid one
 - warn if nothing is found
2018-05-07 05:18:35 -04:00
Adriaan de Groot
b8b607c421 [locale] Fix QString-vs-char* confusion 2018-04-18 18:28:37 -04:00
Adriaan de Groot
522adf766a [locale] Switch HTTP GET test to KDE servers
- Use the official name of the KDE GeoIP service
 - Log the URL *before* the check, in case one fails
2018-04-17 07:45:27 -04:00
Adriaan de Groot
5acf67a057 [locale] Fix tests with spaces in zone names
- "North Dakota" -> "North_Dakota" following the change that fixes up
   dodgy names automatically.
2018-04-17 07:40:38 -04:00
Adriaan de Groot
b4e4b691fd [locale] Accomodate more dodgy GeoIP providers
- Force spaces to _
 - Document the bits

FIXES #933
2018-04-17 07:32:27 -04:00
Adriaan de Groot
3ef0fbe892 [locale] Add tests for a bunch of GeoIP providers
- Since these tests use network resources, they are not enabled by default.
   Set the environment variable TEST_HTTP_GET to actually do them.
 - Do one request for each provider and check that they are all consistent.
   (This works for me, yielding Europe/Amsterdam for all).
2018-04-16 09:17:18 -04:00
Adriaan de Groot
0f5e061c4a [locale] Support multi-level selection from JSON data
- Some providers don't provide a single flat JSON object
   (e.g. "{time_zone: foo}") but a nested structure
   (e.g. "{location: {time_zone: foo}}"), so allow dots
   in the selector to do multi-level selection.
2018-04-16 09:13:06 -04:00
Adriaan de Groot
d04e243c4e [locale] Auto-clean up time zone data
- Some providers return weirdly escaped data; strip out useless
   escaping before splitting (there are no characters in correct
   time zone names that need escaping)
 - Add some tests for TZ splitting
2018-04-16 05:49:08 -04:00
Adriaan de Groot
fa5d40006c [locale] Fix interpretation of configured selector
- In GeoIP handler constructors that take a string (to configure the
   selector to use), interpret the empty string (which generally isn't
   a meaningful selector) as meaning "use the default".
 - Drop the no-argument constructors in favor of a default-argument
   which is empty.
2018-04-16 05:32:22 -04:00
Adriaan de Groot
352b385b12 [locale] Make the selector configurable via the config file 2018-04-16 05:32:22 -04:00
Adriaan de Groot
b1b59b27b2 [locale] Expand tests for alternate selectors
- Check that the alternate selectors are used
2018-04-16 05:32:22 -04:00
Adriaan de Groot
fe20416a54 [locale] Make the selector configurable
- GeoIP gets a string selector; the interpretation is up to derived classes.
 - GeoIPXML and GeoIPJSON use the selector to select an element by tag
   or an attribute, respectively.
2018-04-16 04:55:37 -04:00
Adriaan de Groot
79a6d7ccbd [locale] Make file and class consistent GeoIPXML
- Rename the class to match the filename.
2018-04-16 04:35:32 -04:00
Adriaan de Groot
2cd4461b57 [locale] Rename JSON handler
- The handler for JSON data should be called that, not named
   specially after the original provider it was implemented for.
 - Make filename and classname consistent, GeoIPJSON.
2018-04-16 04:32:49 -04:00
Adriaan de Groot
ec113e3df3 [locale] Log GeoIP attempt URL, use possibly-modified form 2018-04-13 09:42:28 -04:00
Adriaan de Groot
d6f082752d [locale] On GeoIP failure, log URL 2018-04-13 09:36:39 -04:00
Adriaan de Groot
47b7040897 [locale] Adjust to Calamares 3.2 idiom 2018-04-13 09:24:59 -04:00
Adriaan de Groot
3ea5a06157 Merge branch '3.1.x-stable' 2018-04-13 08:50:17 -04:00
Adriaan de Groot
c9928c99c8 Merge remote-tracking branch 'origin/3.1.x-stable' into 3.1.x-stable 2018-04-12 17:13:34 -04:00
Adriaan de Groot
1340613ef5 [locale] Additional test application for GeoIP processing 2018-04-12 16:55:24 -04:00
Adriaan de Groot
76e37402b3 [locale] Extend tests with negative results 2018-04-12 16:23:54 -04:00
Adriaan de Groot
0c1453ff18 [locale] Fix string value handled by XML parser 2018-04-12 16:23:54 -04:00
Adriaan de Groot
eea421f499 [locale] Add tests for GeoIP handlers
- One sample JSON result
 - Two sample XML results
2018-04-12 16:23:54 -04:00
Adriaan de Groot
6b7c8a694a [locale] Make the style of GeoIP retrieval selectable
- Unchanged config files will continue to use the weird addition
   of /json, and interpret JSON data.
 - Allow to specify full URL with data format through one of
     geoipStyle: json
     geoipStyle: xml
 - XML support is optional
2018-04-12 14:37:38 -04:00
Adriaan de Groot
5b98e58ae7 [locale] Refactor GeoIP handlers
- Read the data in the caller of the handler, instead of in the callers
2018-04-12 12:22:43 -04:00
Adriaan de Groot
939cdff93b [locale] Add alternate GeoIP data format 2018-04-12 12:18:43 -04:00
Adriaan de Groot
aaae1507cd [locale] Convenience function for TZ splitting 2018-04-12 11:51:50 -04:00
Adriaan de Groot
3636226425 [locale] Document change to the way GeoIPURL is handled. 2018-04-12 10:18:15 -04:00
Adriaan de Groot
fe98b789f0 [locale] Document the settings in locale.conf
- The geoipUrl is weird, because it is not a complete URL.
   Document that, and what kind of data is expected.

FIXES #920
2018-04-12 10:15:19 -04:00
Adriaan de Groot
d5623af8ef [locale] Refactor geoip handling
- Configuration **must** be a complete URL. The implementation no
   longer appends /json to the URL.
2018-04-12 10:11:48 -04:00
Adriaan de Groot
c0d5a153d4 [locale] Refactor GeoIP handler
- Move GeoIP to its own cpp file
 - Provide a default implementation of the URL mangler
2018-04-12 09:54:22 -04:00
Adriaan de Groot
445f181cc3 [locale] Start refactoring geoip handling
- Introduce a handler interface for GeoIP providers
 - Move the implementation of FreeGeoIP into a struct of its own
2018-04-12 09:45:48 -04:00
Adriaan de Groot
7e5c91aae6 [locale] Reduce debugging bla bla 2018-04-04 11:42:38 -04:00
Adriaan de Groot
9fe85e592f Merge branch '3.1.x-stable' 2018-04-04 11:10:34 -04:00
Adriaan de Groot
b8e6144553 [locale] Document how the locale entry in Global Storage works.
- Make the BCP47 value explicitly lower-case.
 - Add some constness and encapsulation.
 - Fix up documentation in the packages module explaining the
   format of the ${LOCALE} replacement (now forced to lower-case,
   but it is also only the language part, not e.g. en-UK).

FIXES #922
2018-04-03 13:07:36 -04:00
Adriaan de Groot
20e9c2c8e3 Merge branch '3.1.x-stable' 2018-03-29 17:35:36 -04:00
Adriaan de Groot
32a1c84935 [locale] Document the settings in locale.conf
- The geoipUrl is weird, because it is not a complete URL.
   Document that, and what kind of data is expected.

FIXES #920
2018-03-29 16:50:02 -04:00
Adriaan de Groot
3f77fb1d16 [modules] Use new convenience logging methods 2018-02-12 11:58:34 -05:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00