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).
321 lines
9.3 KiB
XML
321 lines
9.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>Gui::Dialog::DlgSettingsAddonManager</class>
|
|
<widget class="QWidget" name="Gui::Dialog::DlgSettingsAddonManager">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>757</width>
|
|
<height>621</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string>Addon manager options</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<widget class="Gui::PrefCheckBox" name="guiprefcheckboxcheckupdates">
|
|
<property name="toolTip">
|
|
<string>If this option is selected, when launching the Addon Manager,
|
|
installed addons will be checked for available updates
|
|
(this requires the GitPython package installed on your system)</string>
|
|
</property>
|
|
<property name="text">
|
|
<string>Automatically check for updates at start (requires GitPython)</string>
|
|
</property>
|
|
<property name="autoExclusive">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>AutoCheck</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefCheckBox" name="guiprefcheckboxdownloadmacros">
|
|
<property name="text">
|
|
<string>Download Macro metadata (approximately 10MB)</string>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<string>DownloadMacros</string>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<string>Addons</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
<item>
|
|
<widget class="QLabel" name="label_2">
|
|
<property name="text">
|
|
<string>Cache update frequency</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefComboBox" name="guiprefcomboboxupdatefrequency">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>UpdateFrequencyComboEntry</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string>Manual (no automatic updates)</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Daily</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Weekly</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefCheckBox" name="guiprefcheckboxhidepy2">
|
|
<property name="text">
|
|
<string>Hide Addons marked Python 2 Only</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<string>HidePy2</string>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<string>Addons</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefCheckBox" name="guiprefcheckboxhideobsolete">
|
|
<property name="text">
|
|
<string>Hide Addons marked Obsolete</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<string>HideObsolete</string>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<string>Addons</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="label">
|
|
<property name="text">
|
|
<string>Custom repositories (one per line):</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefTextEdit" name="guipreftexteditcustomrepositories">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>0</width>
|
|
<height>24</height>
|
|
</size>
|
|
</property>
|
|
<property name="baseSize">
|
|
<size>
|
|
<width>0</width>
|
|
<height>48</height>
|
|
</size>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>You can use this window to specify additional addon repositories
|
|
to be scanned for available addons. To include a specific branch, add it to the end
|
|
of the line after a space (e.g. https://github.com/FreeCAD/FreeCAD master).</string>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>CustomRepositories</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="groupBox">
|
|
<property name="title">
|
|
<string>Proxy</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
<item>
|
|
<widget class="Gui::PrefRadioButton" name="guiprefradiobuttonnoproxy">
|
|
<property name="text">
|
|
<string>No proxy</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>NoProxyCheck</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefRadioButton" name="guiprefradiobuttonsystemproxy">
|
|
<property name="text">
|
|
<string>User system proxy</string>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>SystemProxyCheck</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefRadioButton" name="guiprefradiobuttonuserproxy">
|
|
<property name="text">
|
|
<string>User-defined proxy:</string>
|
|
</property>
|
|
<property name="checked">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>UserProxyCheck</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefLineEdit" name="guipreflineedituserproxy">
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>0</width>
|
|
<height>24</height>
|
|
</size>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>ProxyUrl</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
<item>
|
|
<widget class="QLabel" name="fclabel">
|
|
<property name="text">
|
|
<string>Python executable (optional):</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="Gui::PrefFileChooser" name="gui::preffilechooser" native="true">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>300</width>
|
|
<height>0</height>
|
|
</size>
|
|
</property>
|
|
<property name="toolTip">
|
|
<string>The path to the Python executable for package installation with pip. Autodetected if needed and not specified.</string>
|
|
</property>
|
|
<property name="prefEntry" stdset="0">
|
|
<cstring>PythonExecutableForPip</cstring>
|
|
</property>
|
|
<property name="prefPath" stdset="0">
|
|
<cstring>Addons</cstring>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<spacer name="verticalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Vertical</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>20</width>
|
|
<height>40</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<customwidgets>
|
|
<customwidget>
|
|
<class>Gui::PrefCheckBox</class>
|
|
<extends>QCheckBox</extends>
|
|
<header>Gui/PrefWidgets.h</header>
|
|
</customwidget>
|
|
<customwidget>
|
|
<class>Gui::PrefComboBox</class>
|
|
<extends>QComboBox</extends>
|
|
<header>Gui/PrefWidgets.h</header>
|
|
</customwidget>
|
|
<customwidget>
|
|
<class>Gui::PrefTextEdit</class>
|
|
<extends>QTextEdit</extends>
|
|
<header>Gui/PrefWidgets.h</header>
|
|
</customwidget>
|
|
<customwidget>
|
|
<class>Gui::PrefRadioButton</class>
|
|
<extends>QRadioButton</extends>
|
|
<header>Gui/PrefWidgets.h</header>
|
|
</customwidget>
|
|
<customwidget>
|
|
<class>Gui::PrefLineEdit</class>
|
|
<extends>QLineEdit</extends>
|
|
<header>Gui/PrefWidgets.h</header>
|
|
</customwidget>
|
|
<customwidget>
|
|
<class>Gui::PrefFileChooser</class>
|
|
<extends>QWidget</extends>
|
|
<header>Gui/PrefWidgets.h</header>
|
|
</customwidget>
|
|
</customwidgets>
|
|
<resources/>
|
|
<connections/>
|
|
</ui>
|