QLocale::name() doesn't include script information, and if it did
it would probably use sr_RS@Latin; when searching for translation
files it won't consider dropping just the country.
- The QLocale constructor which takes a string (locale name) doesn't
understand sr@latin, and returns the Cyrillic locale. Fix that
by creating locales ourselves for @latin locales.
- sr and sr@latin now display correctly in the right script in the
native language dropdown.
- The (RTL) text "Arabiy (Misr)" should be entirely RTL, so
make the parenthetical insert -- which would otherwise be LTR
and so mess up the placing of those parenthesis around the country --
explicitly RTL.
- Since there are no RTL languages in Calamares right now with
country-local translations, this isn't visible.
- A locale suggests it is country-specific by having the form <lang>_<country>
- This mostly fixes locale "ar" being presented as "Arabiy (Misr)" when
there is no need to (and the RTL is messed up then, too).
- Introduce intermediate data class for building up the list
of languages to present.
- Sort on the English names, with en_US at the top (ugh).
- Show the native names.
- Much like std::find_if, but slightly muddled because there's
no iterator that we can sensibly use.
- Scan the ComboBox for a locale that matches a predicate.
- Log more as the search for a good locale progresses.
- Don't mix matching the locale with filling the ComboBox
(even though that's slightly more efficient).
- 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).
- 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.
- 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
- 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.
- 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.
- 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.
- The screenshot stays one size, but different ThemeWidgets may overlap
partially when you shrink the screen or have more than three / four
themes listed.
- Probably needs work in the surrounding container and overall better
page-scrollbar support.
- 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
- Don't insert a space before the output of a process
- To do this, suppress space and quoting on the output, and to do
that move the labeling-output for warnings and errors into
the constructor (so that an idiomatic .nospace() does the right thing).
- Settings is just a settings class, no UI involved, so
move to libcalamares where it can be used also from
system helpers.
- YAML utilities are useful at a lower level of the stack, too.
- Put the (constant) 'Calamares will now quit' on its own debug line.
- Tell the user what the search paths are if a module is not found
(prompted by a mis-configuration in a Neon live image).
- 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
- Count only the packages that will be changed, given the current
locale settings.
- Preserve global storage unchanged (don't remove any locale-packages).
- Use DebugRow for one-row-at-a-time output with continuations.
- Use DebugList for one-item-per-line with continuations.
- Use DebugMap for one-row-at-a-time output of a QVariantMap.
- This enables working in three modes:
- No themes listed; all are shown without screenshots,
- Themes listed, showAll false; only those are shown,
- Themes listed, showAll true; the installed-but-not-listed
themes are shown after the listed ones, and have limited info.
- Although it's not necessarily accurate for an extensively-modified
Plasma configuration, we can read the Look-and-Feel from the
configuration files. Allows auto-detection.
- For OEM modes where there is already a theme, add a preselect:
key to pick a specific theme and have that one come up as already-
selected in the list.
- Don't re-run the lnftool if an already-selected theme is clicked
again. Use toggled() instead of clicked().
- Don't bother with the address of the main thread
- Do put a marker on restart into the log file
- Do put the Calamares version into the log file (previously, the version
was printed through cDebug() before the log file was opened, so it was
lost to the on-disk log).
Documentation lives both in Calamares and in the calamares-branding
repo. Whether a slideshow has navigation arrows or not is up to the
slideshow / branding component author, but Calamares now ships some
support QML to make that easy.
FIXES#841FIXES#904
It is the distro's responsibility to produce screenshots that look
good; previously I chose to preserve the aspect ratio on the grounds
that this would keep the look of the screenshot even if the distro
had done one in a weird size. This makes the screenshot part
of the LNF selection look weird, though, since then you get
blank parts.
Switch to ignoring the aspect ration; distro's should produce
screenshots in a 12x8 (i.e. 3:2) aspect ratio, preferrably at
least 120x80 pixels -- but keep in mind hiDPI and the default
font sizes of the distro, which may make other sizes look better.
(this follows discussion with BlueStar Linux)
- Auto-advance the default presentation
- Add more example slides to the fancy presentation
- Expand README.md explaining what the default classes can do
Removed these features that make sense in a presentation slideshow
(e.g. during a talk) but that are potentially confusing during
a passive slideshow like Calamares has:
- Using 'c' blanks the slideshow.
- Entering a slide number + enter changes slides.
- Add a NavButton, which shows a directional arrow, and fades in on hover.
It can be used left- or right- by setting an image source
and click handler.
- Specialize NavButton to Forward and BackButton.
- Add a SlideCounter navigation aid.