Commit Graph

106 Commits

Author SHA1 Message Date
Chris Hennes
af811b34b3 Addon Manager: Additional diagnostics for Macro updates 2022-06-06 11:46:56 -05:00
Chris Hennes
07e38636b9 Addon Manager: Fix bug with updates being counted wrong 2022-06-01 15:01:38 -05:00
Chris Hennes
4c2972cb23 AddonManager: Work around thread-safety issue in update 2022-05-27 15:24:34 -05:00
Chris Hennes
e9e04221c4 Addon Manager: Add logging to update process 2022-04-14 12:33:34 -05:00
Chris Hennes
1480c1f594 Addon Manager: Black reformat 2022-04-06 14:30:22 -05:00
Chris Hennes
2f703e4627 Addon Manager: Disable pip version check 2022-04-03 16:32:33 -05:00
luz paz
1db77d367c AddonManager: remove superfluous 'pass' per LGTM
ref: https://lgtm.com/rules/910088/
2022-03-20 14:21:57 -04:00
Chris Hennes
0d6a506447 Addon Manager: Renaming and cleanup 2022-02-27 22:50:54 -06:00
Chris Hennes
1a7fcd575e Addon Manager: Auto-create toolbar button
When installing a macro, prompt user to install a toolbar button
automatically. Fills in the details of the button using the macro's
metadata, including an icon if the __icon__ metadata variable points to
a file.

Also:
* Support XPM data for macro icon
* Support online icons
* Fix bug in macro uninstall
* Cleaned up macro code
2022-02-26 21:06:37 -06:00
Chris Hennes
189bec3e5a Addon Manager: Remove restart need for pref packs
The actual need to restart was removed by 7a566ea4d, this commit
updates the Addon Manager user interface to stop telling the user
they need to restart. Now restarting is only required for addons
that contain workbenches. Macros and pref packs to not need a
restart.
2022-02-24 09:49:15 -06:00
Chris Hennes
85390bfb6d Addon Manager: Minor fixes and error tweaks
* Correct display of tags in list view
* Add error checking for branch name and url match
* Convert some messages to logs
2022-02-23 18:32:05 -06:00
luz paz
261626960f AddonManager: move superfluous whitespace out of translation [skip ci] 2022-02-20 16:40:40 -06:00
Chris Hennes
03fa2f398f Addon Manager: Fix bug in error messaging 2022-02-18 08:47:39 -06:00
Chris Hennes
d357d59c02 Addon Manager: Black reformat 2022-02-18 08:38:57 -06:00
Chris Hennes
cbb93da3ff Addon Manager: Correct displayed modification time 2022-02-17 18:31:36 -06:00
Chris Hennes
3a5f824755 Addon Manager: Add -ff-only option to pull 2022-02-17 18:26:47 -06:00
Chris Hennes
494396c768 Addon Manager: Fix custom repos ending in .git 2022-02-17 18:03:14 -06:00
Chris Hennes
074c4b0a3b Addon Manager: Add branch switching GUI
For users with git and GitPython installed, a new button is added to the
details view allowing them to change the branch they are on. Some other
minor UI changes are made to accomodate this new behavior.
2022-02-13 20:19:32 -06:00
Chris Hennes
e553a0e3ab Addon Manager: Switch to QWebEngineView for README
Rather than manually parsing the output from the repo's host, the Addon Manager
now uses an embedded QWebEngineView to display the README data. This makes the
display more repo-location agnostic (rather than trying to parse the specific
code from GitHub, Gitlab, etc.). Special handling of known hosts is still
provided to improve the display of the page, but it is not required. Clicking a
link on the page still loads in a new system browser window, with the exception
of links to the FreeCAD wiki, which are loaded in the same browser. This is
expected to be used primarily to access traslated pages for Macros, so no
advanced web-browsing features are displayed (e.g. back buttons, history
access, etc.).
2022-02-02 23:42:29 -06:00
Chris Hennes
88f6b2f432 Addon Manager: Translation cleanup
pylupdate does not extract translations when f-strings are used for the
translated text, so all f-strings are migrated to calls to format().
Several other minor translation issues are also addressed.

NOTE: This code has been run through the Black reformatter, which adds
trailing commas in many places that the stock Qt 5.x pylupdate does not
recognize. This code must be processed with the corrected pylupdate to
generate the correct translations.
2022-01-27 23:11:31 -06:00
Chris Hennes
f045a0b6f1 Addon Manager: Improve startup speed 2022-01-26 18:41:14 -06:00
Chris Hennes
2b0a4dc643 Addon Manager: Create NetworkManager class
To enable single-login authenticated proxy use, and simplified multi-threaded
network accesses, this commit adds a new wrapper around a QNetworkAccessManager
and includes a global instantiation of the class intended to exist for the
lifetime of the program. This instance can be used to enqueue any number of
network requests, which the manager will send out to the networking subsystem
in an appropriate manner.
2022-01-25 13:30:58 -06:00
Chris Hennes
d1a94de371 Addon manager: install dependencies (#5376)
Addon Manager: Dependency Installation

The Addon Manager can now attempt to use pip directly to install
required packages as specified in either metadata.txt or
requirements.txt files provided by AddOns. The packages are installed
into FreeCAD.getUserAppDataDir()/AdditionalPythonPackages directory.
Only simplified requirements.txt data is supported: any version
information is stripped out, and only packages are supported (that is,
no pip arguments, included files, etc.). Further, packages are checked
against a list of allowed packages prior to being suggested for
installation. Addon authors should submit a PR to the FreeCAD repo
adding their requirements to the allowed list, for packages that are not
already on the list (this is a malware-prevention mechanism).
2022-01-21 10:19:21 -06:00
Chris Hennes
4cc744c920 AddonManager:Correct funcion name 2022-01-11 07:38:40 -06:00
Chris Hennes
1bfbcb5c95 Addon Manager: Remove progress object from git pull 2022-01-10 10:45:23 -06:00
Chris Hennes
19db2f5ca0 Addon Manager: Add version-based Addon deprecation 2022-01-09 21:02:57 -06:00
Chris Hennes
2cbe72aea5 Addon Manager: Display download progress 2022-01-09 00:46:07 -06:00
Chris Hennes
e4bb4e7db7 Addon Manager: Correct typo 2022-01-08 22:39:42 -06:00
Chris Hennes
3c937a5f8d Addon Manager: Clean up thread termination 2022-01-08 22:30:05 -06:00
Chris Hennes
ddac2f7580 Addon Manager: Correct bad metadata update 2022-01-08 21:07:32 -06:00
Chris Hennes
efa08946f2 Addon Manager: Improve stability when cache update interrupted 2022-01-08 19:47:57 -06:00
Chris Hennes
4c9191d489 Addon manager dependency resolver (#5339)
Squashed:
* Addon Manager: Refactor metadata.txt download
* Addon Manager: Basic dependency walker
* Addon Manager: Add basic support for dependencies
* Addon Manager: Improve network detection messaging
* Addon Manager: Black reformat
* Addon Manager: Display dependency info in dialog
* Addon Manager: Dependency dialog added
* Addon Manager: Improve display of update all results
* Addon Manager: Improve display of package list
* Addon Manager: Fix codespell
* Addon Manager: Clean up unused signal
2022-01-07 10:16:44 -06:00
Chris Hennes
7ea0394e97 Addon Manager: Handle symlinking failure 2022-01-06 19:22:00 -06:00
Chris Hennes
f48d79a227 Addon Manager: Improve display of installation details 2022-01-01 11:41:23 -06:00
Chris Hennes
64cf6a68d8 Addon Manager: Remove unused imports 2022-01-01 09:43:06 -06:00
Chris Hennes
b370d3dae4 Addon Manager: Improve wiki page data extraction 2022-01-01 09:16:32 -06:00
Chris Hennes
81c1187f58 Addon Manager: Fix macro cache loading 2022-01-01 09:16:32 -06:00
Chris Hennes
4c5b8f368c Addon Manager: Implement simple macro metadata cache 2022-01-01 09:16:32 -06:00
Chris Hennes
06774459ba Addon Manager: Add option to hide obsolete and py2 addons 2021-12-30 21:36:32 -06:00
Chris Hennes
ae5391eaf9 Addon Manager: Clean up report window output 2021-12-30 20:06:22 -06:00
Chris Hennes
a6b306123a Addon Manager: Do not change image size
The new UI has much more space available to display README files: remove
the code that scaled the images to (sometimes unreadable) 300x300 size.
2021-12-29 23:51:21 -06:00
Chris Hennes
f429a3630e Addon Manager: Fix github macro update code 2021-12-21 17:23:02 -06:00
Chris Hennes
b371487224 Addon Manager: Correct macro installation location 2021-12-21 14:48:35 -06:00
Chris Hennes
dede24d5e4 Addon Manager: Bugfix for zip installation 2021-12-20 18:57:26 -06:00
Chris Hennes
e7cde8bed0 Addon Manager: Fix macro update code 2021-12-20 13:12:45 -06:00
Chris Hennes
acfde1a4b6 Addon Manager: Bug fixes for detailed display 2021-12-18 20:29:42 -06:00
Chris Hennes
787b1e0f56 Addon Manager: Black reformatting 2021-12-18 20:29:42 -06:00
Chris Hennes
ef09c0af16 Addon Manager: Improve display of install details
As suggested in the forums, this adds display of the installation date and
installed version to the expanded display and detail view.
2021-12-18 20:29:42 -06:00
Chris Hennes
52da213a3c Addon Manager: Improve cache behavior
Also includes a number of bug fixes.
2021-12-18 20:29:42 -06:00
Chris Hennes
a0992902de Addon Manager: Begin UI redesign
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.
2021-12-18 20:29:42 -06:00