Migrate to a UI that looks more like other software package managers, giving
more space to each addon by hiding the list when an addon is selected, and
providing a "back" button to get back.
Implements a two-style view option for the list of addons: expanded and
condensed, via a delegate that provides the drawing function for each row in
the table based on two different widget designs.
The pyrate has moved to salsa.debian.org, so this commit adds the
beginnings of support for those repos.The Markdown library is required
for nice rendering of repos that don't have a package.xml metadata file.
This shifts to use the model-view-controller pattern for the list of addons,
and moves to using a full model class rather than an indexed array for the
data storage and management. This enables much more information to be stored
as part of the new AddonManagerRepo data type. It now wraps the Macro class
for macros, supports Preference Packs, and provides access to the Metadata
object.
The URLs used to detect whether a repo is at github, gitlab, or framagit
could potentially be mis-detected by a maliciously-crafted URL,
resulting in incorrect detection of the README file, etc. To silence the
LGTM warning about this, proper URL sanitization and comparison is now
used.
Currently when a user first uses the Addon Manager a dialog popup
prompts them about how FC is not liable for the code plugin authors
provide. It stores the binary response in a `readWarning` boolean
within the user.cfg file.
This commit changes the location of said boolean from
`User parameter:Plugins` to `User parameter:Addons`.
It also migrates old the old setting if available.
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
Add suggestions from @chennes
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>