- If there is an item with id "" (empty), it is used as the
"no-package-selected" placeholder text.
- Existing code iterated over the abstract model and used the
name and description at the time the model was set -- but
by getting the name and description from the model, only
a single string was obtained instead of the full range
of translations.
- Therefore, when arriving on the page, the "no-package-selected"
information was displayed from the translation that was active
when the model was set.
Instead, extend the non-abstract model so we can find the no-package-
selected item and pass that explicitly to the page.
FIXES#1241
- Since the package chooser might be used more than once, or for
more specific items than "Packages", introduce a way to provide
specific strings for display.
- The only string needed is the ViewStep name, since the item with
id "" can be used for the no-selection item.
- AppData and AppStream can be disabled independently of finding
their requirements (possibly useful if you want to ignore
AppStream even when it's installed in your build environment).
- Add a little top-level documentation about WITH_
- These don't have to be static methods of PackageItem, a free
function is more convenient.
- Since it's not API of PackageItem anymore, need to
- update tests not to use API
- do API-not-available warnings in consumers
- The smallest size image of the default (or, if there is no
default, the first) screenshot is used.
- Remote URLs are not supported by QPixmap, so most will not
load anyway.
- Use *appstream* as key in one of the items for the package-
chooser to load data from the AppStream cache in the system.
- Usable for some applications; for DE-selection not so much.
- Currently unimplemented.
- Put the implementation entirely in a separate file, keep the
not-supported one in PackageModel.cpp (but only in an #ifdef).
- Makes the various optional-data-sources more similar.
- KDE and GNOME selection images were drawn by me for the bogus
package model, and should not be used.
- Keep Calamares logo though, even if it doesn't make much sense
to use it in package selection.
- Keep the no-selection image since it might be used more often,
but it's not very good.
- The ID and Screenshot entries might be weird in AppData (in particular,
a remove URL) so put those back under the control of Calamares even
when using AppData as the source of descriptions.
- Document all the static inline methods that do the work
- Fill up a QVariantMap from <name>, <summary> and <description><p>
elements, and use that to initialize the PackageItem.
- Doing a manual read of the XML, since existing appdata libraries
don't seem to have a convenient entry for what I need.
- Expand tests to loading AppData (currently, they fail).
- Add a FALLTHRU macro to annotate fallthrough situations in both
Clang and GCC,
- Annotate intentional fallthroughs.
- Add missing break which meant that the selection mode was
always multiple-selection.
- Using id's as keys in a map orders them indeterminately -- in
practice, alphabetically by key. Switch to a list form so that
the products stick to the order they have in the config file
(which means distro's can list "preferred" versions at top).