Commit Graph

53 Commits

Author SHA1 Message Date
Adriaan de Groot
8c5caf9fd0 [packagechooser] Add CMake knobs to enable/disable item choices
- 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_
2019-08-20 13:56:23 +02:00
Adriaan de Groot
ffa899b497 [packagechooser] Assemble the translated name and description 2019-08-20 05:37:52 -04:00
Adriaan de Groot
d8af11adee [packagechooser] Build AppStream Pool first
- Don't build a Pool for each PackageItem loaded
 - Do make it load all languages instead of only the current one
2019-08-20 04:38:24 -04:00
Adriaan de Groot
0a92ef7655 [packagechooser] Refactor fromApp*()
- 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
2019-08-20 04:15:35 -04:00
Adriaan de Groot
17abbeda96 [packagechooser] Try to load a screenshot
- 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.
2019-08-19 10:02:43 -04:00
Adriaan de Groot
fa2f5763c6 [packagechooser] Load AppStream data
- Get the id, name, and description from AppStream data

Missing:
 - No translations
 - No screenshots
2019-08-19 07:25:28 -04:00
Adriaan de Groot
eaa0c02f8d [packagechooser] Initial support for appstream items
- 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.
2019-08-19 07:10:38 -04:00
Adriaan de Groot
2f20ad30bf [packagechooser] Refactor AppData XML support into separate file
- 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.
2019-08-19 06:55:36 -04:00
Adriaan de Groot
5b4152133d [packagechooser] Look for AppStream libs 2019-08-19 06:45:05 -04:00
Adriaan de Groot
8636689cea [packagechooser] Fix tests when run from in-source build 2019-08-07 12:58:22 +02:00
Adriaan de Groot
20f43225b5 [packagechooser] Adjust AppData path for tests
- running tests by hand or from "make test" uses different paths.
2019-08-07 12:02:03 +02:00
Adriaan de Groot
781be3368e [packagechooser] Remove bogus images
- 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.
2019-08-07 11:57:02 +02:00
Adriaan de Groot
f3de320288 [packagechooser] Drop hard-coded data
- Now that the configuration can do all the things, we don't need
   a hard-coded model with bogus entries.
2019-08-07 11:51:56 +02:00
Adriaan de Groot
194a562727 [packagechooser] Expand tests with override features 2019-08-06 22:51:14 +02:00
Adriaan de Groot
a4362dac65 [packagechooser] Change tests for modified API 2019-08-06 22:48:04 +02:00
Adriaan de Groot
5d4c3ea92c [packagechooser] Don't give a default pixmap 2019-08-06 22:48:04 +02:00
Adriaan de Groot
0b72006ffb [packagechooser] Use overrides on AppData for example 2019-08-06 22:48:04 +02:00
Adriaan de Groot
6ddae94628 [packagechooser] Allow to override some of AppData
- 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.
2019-08-06 22:48:04 +02:00
Adriaan de Groot
d72391942f [packagechooser] Implement AppData loading
- An item can refer to *appdata* and load that, or provide
   the data in the config file itself.
 - Fix documentation about translations.
2019-08-06 15:55:27 +02:00
Adriaan de Groot
9a8b2c5a1e [packagechooser] CHeck that AppData load was succesful 2019-08-06 15:45:14 +02:00
Adriaan de Groot
fb547364c7 [packagechooser] Complete parsing of AppData
- 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.
2019-08-06 15:36:34 +02:00
Adriaan de Groot
431c4de77f [packagechooser] Use GUI for tests
- Because we'll be creating Pixmaps, we need to have a GUI main.
2019-08-06 15:19:20 +02:00
Adriaan de Groot
6821b14d00 [packagechooser] Enable logging in tests 2019-08-06 14:50:04 +02:00
Adriaan de Groot
beb5896fa2 [packagechooser] Start implementation of AppData loading
- 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).
2019-08-06 14:50:04 +02:00
Adriaan de Groot
6c41151f80 [packagechooser] Just one screenshot, and mark package unused 2019-08-06 12:38:28 +02:00
Adriaan de Groot
6e05a1ef05 [packagechooser] Load translated strings as well
- This makes it possible to put the translations into the config
   file, and have them displayed when the Calamares language changes.
2019-08-06 12:02:29 +02:00
Adriaan de Groot
8d3546f0b3 [packagechooser] Expand the example config with translated entries 2019-08-06 00:31:05 +02:00
Adriaan de Groot
fee2297e67 [packagechooser] Fix fallthrough situation
- 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.
2019-08-06 00:24:53 +02:00
Adriaan de Groot
56db9e9341 [packagechooser] Use translated strings 2019-08-06 00:17:50 +02:00
Adriaan de Groot
b16354133d [packagechooser] Switch to a list form
- 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).
2019-08-04 20:19:56 +02:00
Adriaan de Groot
9a52430e74 [packagechooser] Too many 'o's in test name 2019-08-04 20:04:32 +02:00
Adriaan de Groot
791f9cbccb [packagechooser] Read packages model from config
- add key *items* which will be used to fill up the model for
   software products.

TODO: needs translation support
2019-08-04 16:00:55 +02:00
Adriaan de Groot
adb939b2e8 [packagechooser] Word-wrap package descriptions 2019-08-04 00:11:50 +02:00
Adriaan de Groot
d5275d5e10 [packagechooser] Allow the model to set the introductory text 2019-08-04 00:08:41 +02:00
Adriaan de Groot
047a300a51 [packagechooser] Remove unneeded debug 2019-08-03 23:55:29 +02:00
Adriaan de Groot
140c0db7a4 [packagechooser] Set GlobalStorage packagechooser_<id> 2019-08-03 23:51:00 +02:00
Adriaan de Groot
c59ffc7765 [packagechooser] Set default ID as documented 2019-08-03 23:33:34 +02:00
Adriaan de Groot
b711c791bd [packagechooser] Fix build, tidy code 2019-08-03 23:28:55 +02:00
Adriaan de Groot
87d7b2a5c0 [packagechooser] Allow setting an ID for the module's GS key 2019-08-03 23:24:30 +02:00
Adriaan de Groot
76077743af [packagechooser] Add configuration setting for selection mode
- Add a *mode* key to the configuration file
 - Change some names around to be more consistent (not user-visible)
2019-08-03 15:45:00 +02:00
Adriaan de Groot
fb3204262c [packagechooser] Remove unneeded forward declaration 2019-08-02 23:24:35 +02:00
Adriaan de Groot
9d026862a8 [packagechooser] Provide names for selection mode 2019-08-02 23:20:45 +02:00
Adriaan de Groot
ab7374628b [packagechooser] Use sample screenshots 2019-08-02 17:17:53 +02:00
Adriaan de Groot
86d8db6bbf [packagechooser] Enforce selection mode on the next-button 2019-08-02 17:13:35 +02:00
Adriaan de Groot
7609546d8b [packagechooser] Add screenshots for example 2019-08-02 17:02:02 +02:00
Adriaan de Groot
2272d2ab43 [packagechooser] Add selection modes
- Introduce different selection modes (most don't work yet)
 - Use model data in the main widget
2019-08-02 16:43:10 +02:00
Adriaan de Groot
86e2e6242f [packagechooser] Warn about weird calling orders 2019-08-02 16:26:10 +02:00
Adriaan de Groot
a32dcdad86 [packagechooser] Support multiple selection modes 2019-08-02 16:25:26 +02:00
Adriaan de Groot
dc5cdbb38c [packagechooser] Update other parts of the window on selection 2019-08-02 16:07:47 +02:00
Adriaan de Groot
f8d159dfa4 [packagechooser] Massage layout a bit 2019-08-02 15:32:14 +02:00