84 Commits (db5f3bc3093080742b319b69826367d465abedda)

Author SHA1 Message Date
Adriaan de Groot f0fd47eeb3 [libcalamares] Simplify logging-manipulators
Writing `Logger::NoQuote{}`` has annoyed me for a while, so
switch it to a constant, like SubEntry, so it looks more
like a regular manipulator object.
6 years ago
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.
6 years ago
Adriaan de Groot 3480988f53 REUSE: SPDX tagging of application library and main
- CC0-1.0 for the uninteresting version-headers
- GPL-3.0-or-later for the services

- add SPDX identifiers to Calamares C++ libraries and application sources
- add SPDX identifiers to Calamares QML (panels and slideshow)
- the `qmldir` is a list of names of things in the directory,
  so CC0-1.0 it as "uninteresting"
- QRC files are lists of names of things in the directory,
  so CC0-1.0 them as well
6 years ago
Adriaan de Groot e1f4224bed [libcalamaresui] Fix slideshowAPI loading
In 022045ae05 a regression was introduced: if no *slideshowAPI*
is specified in the branding file, Calamares refuses to start, with
a YAML failure.

Before the refactoring, we had `YAML::Node doc` and looked up
the *slideshowAPI* in it with `doc["slideshowAPI"]`. After the
refactoring, we had `const YAML::Node& doc`. The `const` makes
all the difference:
 - subscripting a non-existent key in a mutable Node silently
   returns a Null node (and possibly inserts the key);
 - subscripting a non-existent key in a const Node returns an
   invalid or undefined node.

Calling IsNull() or IsScalar() on a Null node works: the functions
return a bool. Calling them on an invalid node throws an exception.

So in the **const** case, this code can throws an exception that it
doesn't in the non-const case:
    `doc[ "slideshowAPI" ].IsScalar()`

- Massage the code to check for validity before checking for scalar
- Add a `get()` that produces more useful exception types when
  looking up an invalid key
- Use `get()` to lookup the slideshow node just once.
6 years ago
Adriaan de Groot da1cc7c3a5 [libcalamaresui] Don't clear the map when inserting strings
- the documentation doesn't say the map is cleared, and the one
  place this function is used doesn't need that either.
- make type of config explicit
6 years ago
Adriaan de Groot 022045ae05 [libcalamaresui] Refactor loading slideshow
- split into a separate method
- when QML is disabled, warn about QML settings
6 years ago
Adriaan de Groot c83e5c57a4 [libcalamaresui] When QML is off, there is no Qml panel flavor 6 years ago
Adriaan de Groot 5aafa0f4c4 [libcalamaresui] Expose slideshow image names for API -1
- Branding shows the slide pathnames or the slide QML, depending
  on selected API (which depends on the config-file).
- Use one slideshow or the other.
6 years ago
Adriaan de Groot bb2b5fd982 [libcalamaresui] No reason for bail() to be a method 6 years ago
Adriaan de Groot 526716556c [libcalamaresui] Store the slideshow-from-images data
- This code has existed for a long time but never stored anything
  to the Branding object, and the most literal slideshow (just some
  images) was not implemented.
6 years ago
Adriaan de Groot cd44f548f5 [libcalamaresui] Add donateUrl to the branding settings
SEE #1384
6 years ago
Adriaan de Groot 1d44c88e0a [libcalamaresui] Refactor loading of stylesheet
- prep-work for adding special-case styling for productWallpaper
6 years ago
Adriaan de Groot ddde817abf [libcalamaresui] Apply coding style 6 years ago
Adriaan de Groot 86ffab1873 [libcalamares] Use convenience Logger::NoQuote 6 years ago
bill-auger 7bce58f6f2 [welcome] add optional branding banner to welcome page 6 years ago
Adriaan de Groot e15e7d1dc5 [libcalamaresui] Load panel-side settings
- Introduce an enum for panel-side
- Expose this to QML -- I can imagine that QML panels need to know
  which side of the Calamares window they're on.
- Refactor loading the setting into a method that handles both
  flavor and side
6 years ago
Adriaan de Groot 57e6864902 [libcalamaresui] Add panel flavor
- rename enum to more general PanelFlavor
- introduce branding settings for navigation (e.g. for switching
  the navigation buttons off, or using QML)
6 years ago
Adriaan de Groot d4083c9bbb [libcalamaresui] Add "hidden" as alias for "none" in sidebar settings 6 years ago
Adriaan de Groot 3b0c0435bc [libcalamaresui] Chase API change in Yaml
- We can drop a bunch of calls to toMap() now.
6 years ago
Adriaan de Groot 80f49bed1d [libcalamaresui] Add a sidebar flavor setting 6 years ago
Camilo Higuita 1f2f1a657e [libcalamaresui] Expose Branding strings to QML 7 years ago
Adriaan de Groot 17d09342e9 [libcalamaresui] Add a setting for window placement 7 years ago
Adriaan de Groot 8ab0fb4e5f [libcalamaresui] Apply coding style (missed earlier) 7 years ago
Adriaan de Groot 85f5410735 [libcalamaresui] Apply coding style 7 years ago
Adriaan de Groot e7dedbbfe0 [libcalamaresui] Apply coding style to remainder 7 years ago
Adriaan de Groot 739363cecd [libcalamaresui] Fix initialization order (reduce warnings) 7 years ago
Adriaan de Groot 148b829591 [libcalamares] Introduce slideshowAPI setting 7 years ago
Adriaan de Groot 75ce391e7e [libcalamaresui] Add branding-aware function for loading image by name 7 years ago
Adriaan de Groot 1438729b72 [libcalamaresui] Do filename checks more sanely
- check directory exists before trying to open file from it
 - re-use the componentDir already found for later tests.
7 years ago
Adriaan de Groot 976ad7e3e7 [libcalamaresui] Look up icons via theme
- Don't cache icons, because they could be changed via
   the active desktop theme.
7 years ago
Adriaan de Groot 822bbaad9c [libcalamaresui] Allow icon names in branding images
- It's ok to use path / filenames in images, but you can also
   use icon names according to the FDO icon spec. This makes
   sense for at least *productLogo*, possibly *productIcon*, but
   not really for *productWelcome*.
7 years ago
Adriaan de Groot cd38ded8d5 [libcalamaresui] Support os-release substitutions in images
- Branding images might want to use os-release data as well.
 - Refactor a little to keep the number of #ifdefs the same;
   an intermediate expand() lambda handles expansion (or not,
   if it's not enabled).

FIXES #1153
7 years ago
Adriaan de Groot ac941e6756 [libcalamares] Implement reload-stylesheet
- From the debug-window, clicking *reload stylesheet* does just
   that, and applies the new stylesheet to the Calamares window.
 - Remove stylesheet caching from the Branding class; we only
   need the sheet once (on Calamares startup) or when updating
   the stylesheet, which is seldom-enough that we don't need
   to keep an extra copy around.
 - To use, start Calamares, open the debug window, open stylesheet.qss
   in an editor. Make changes, save, then click *reload stylesheet*.

SEE #1149
7 years ago
Adriaan de Groot af73d90b7b [libcalamaresui] Fix build with KOSRelease
- initialization of the hash was all wrong
 - special-case ID_LIKE
 - typo's
 - link to CoreAddons
7 years ago
Adriaan de Groot fbbbe63642 [libcalamaresui] WIP: Use KOSRelease and KMacroExpander in branding
- allows you to use -- at runtime -- values from os-release in the
   branding file.
 - WIP because the only machine I have with sufficiently new KF5
   is the FreeBSD box.
7 years ago
Adriaan de Groot 92d0e71029 [libcalamaresui] one more refactor for string-loading
- Do the checking for IsMap inside loadStrings() and use
   YAML::Exception to get to bail() (since we're already dealing
   with exceptions here, no extra costs). This tidies up the code
   somewhat.
7 years ago
Adriaan de Groot 667f78c016 [libcalamaresui] if there's a YAML exception in branding, bail
- all kinds of type errors result in bailing out, but a totally
   broken branding file does not?
7 years ago
Adriaan de Groot 62328c9940 [libcalamaresui] images-strings loading fixed
- move the string-munge into a lambda and use the generic loadStrings()
7 years ago
Adriaan de Groot 544d905b2f [libcalamaresui] WIP: refactor again
- the string-manipulation can be done through a lambda. That makes
   handling *strings* and *styles* simple.
 - still doesn't compile.
7 years ago
Adriaan de Groot 5a126816f4 [libcalamaresui] WIP: refactor copying strings from config to Branding
- this is mostly to make the constructor easier to read by
   moving parts of the story to easily-understood methods.
 - doesn't actually compile.
7 years ago
Adriaan de Groot 8d0f076591 [libcalamares] Rename CalamaresUtils -> String
- The only remaining functions in the file are string-related, so
   rename to match their purpose.
 - Drop this include file from most places, since they don't actually
   use the string functionality at all.
7 years ago
Adriaan de Groot f076dd76ad [libcalamares] Rename YamlUtils.h
- Since we have the utils/ filesystem namespace, and use CalamaresUtils::
   as C++ namespace, simplify naming.
7 years ago
Adriaan de Groot 08e4090354 Merge remote-tracking branch 'origin/raurodse-branding'
FIXES #961
7 years ago
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.
7 years ago
Adriaan de Groot 5a95bf507f [libcalamaresui] Improve WindowDimensions class
- Make sure the class knows its own suffixes
7 years ago
Adriaan de Groot 8dd22dcbbf [libcalamaresui] bail() is a [[noreturn]] function 7 years ago
Adriaan de Groot 12665192ae [libcalamaresui] Defend against missing config settings 8 years ago
Adriaan de Groot 80569a746f [libcalamaresui] Relax validity check in branding
- A size of 64em has a value less than 1024, which is the minimum
   size **in pixels**. The check doesn't make sense as-is and would
   have to take the unit into account. Leave that to clients of
   branding (e.g. CalamaresWindow, which already does this).
8 years ago
Adriaan de Groot 32ab377e43 [libcalamaresui] Record branding window-size 8 years ago
Adriaan de Groot 819a57e458 [libcalamaresui] Store resize configuration
- Use the named enums code for simplicity.
8 years ago