From fa9a5a85511767f78c4f06cec4ab38404aba887f Mon Sep 17 00:00:00 2001 From: James Date: Wed, 30 Oct 2024 23:10:22 +0000 Subject: [PATCH] Changes to Addon First Run Dialog (#17518) * Changes to Addon First Run Dialog Updated Addon Manager first run dialog as per issue no. #17317 * Incorporated review comments * Update src/Mod/AddonManager/addonmanager_preferences_defaults.json Co-authored-by: Chris Hennes * Update src/Mod/AddonManager/addonmanager_preferences_defaults.json Co-authored-by: Chris Hennes * Removed default assigns as requested * Defaults updated --------- Co-authored-by: Chris Hennes --- src/Mod/AddonManager/AddonManager.py | 6 +- .../AddonManager/Resources/AddonManager.qrc | 1 + .../Resources/icons/AddonMgrWithWarning.svg | 49 ++++ src/Mod/AddonManager/addonmanager_firstrun.py | 53 +---- .../addonmanager_preferences_defaults.json | 6 +- src/Mod/AddonManager/first_run.ui | 210 ++++++++---------- 6 files changed, 156 insertions(+), 169 deletions(-) create mode 100644 src/Mod/AddonManager/Resources/icons/AddonMgrWithWarning.svg diff --git a/src/Mod/AddonManager/AddonManager.py b/src/Mod/AddonManager/AddonManager.py index b1480460f5..d55d7b7834 100644 --- a/src/Mod/AddonManager/AddonManager.py +++ b/src/Mod/AddonManager/AddonManager.py @@ -271,7 +271,7 @@ class CommandAddonManager(QtCore.QObject): self.button_bar = WidgetGlobalButtonBar(self.dialog) # If we are checking for updates automatically, hide the Check for updates button: - autocheck = pref.GetBool("AutoCheck", False) + autocheck = pref.GetBool("AutoCheck", True) if autocheck: self.button_bar.check_for_updates.hide() else: @@ -477,7 +477,7 @@ class CommandAddonManager(QtCore.QObject): self.select_addon, ] pref = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Addons") - if pref.GetBool("DownloadMacros", False): + if pref.GetBool("DownloadMacros", True): self.startup_sequence.append(self.load_macro_metadata) self.number_of_progress_regions = len(self.startup_sequence) self.current_progress_region = 0 @@ -664,7 +664,7 @@ class CommandAddonManager(QtCore.QObject): """checks every installed addon for available updates""" pref = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Addons") - autocheck = pref.GetBool("AutoCheck", False) + autocheck = pref.GetBool("AutoCheck", True) if not autocheck: FreeCAD.Console.PrintLog( "Addon Manager: Skipping update check because AutoCheck user preference is False\n" diff --git a/src/Mod/AddonManager/Resources/AddonManager.qrc b/src/Mod/AddonManager/Resources/AddonManager.qrc index 404bb7f51f..e8b651c079 100644 --- a/src/Mod/AddonManager/Resources/AddonManager.qrc +++ b/src/Mod/AddonManager/Resources/AddonManager.qrc @@ -2,6 +2,7 @@ icons/preferences-addon_manager.svg icons/3D_Printing_Tools_workbench_icon.svg + icons/AddonMgrWithWarning.svg icons/A2plus_workbench_icon.svg icons/AirPlaneDesign_workbench_icon.svg icons/ArchTextures_workbench_icon.svg diff --git a/src/Mod/AddonManager/Resources/icons/AddonMgrWithWarning.svg b/src/Mod/AddonManager/Resources/icons/AddonMgrWithWarning.svg new file mode 100644 index 0000000000..8bcf1cfa9d --- /dev/null +++ b/src/Mod/AddonManager/Resources/icons/AddonMgrWithWarning.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Mod/AddonManager/addonmanager_firstrun.py b/src/Mod/AddonManager/addonmanager_firstrun.py index bee2052509..2fc9f8a3b1 100644 --- a/src/Mod/AddonManager/addonmanager_firstrun.py +++ b/src/Mod/AddonManager/addonmanager_firstrun.py @@ -26,6 +26,7 @@ import os from PySide import QtCore, QtWidgets +from PySide.QtGui import QPixmap import FreeCAD import FreeCADGui @@ -51,55 +52,15 @@ class FirstRunDialog: warning_dialog = FreeCADGui.PySideUic.loadUi( os.path.join(os.path.dirname(__file__), "first_run.ui") ) - autocheck = self.pref.GetBool("AutoCheck", False) - download_macros = self.pref.GetBool("DownloadMacros", False) - proxy_string = self.pref.GetString("ProxyUrl", "") - if self.pref.GetBool("NoProxyCheck", True): - proxy_option = 0 - elif self.pref.GetBool("SystemProxyCheck", False): - proxy_option = 1 - elif self.pref.GetBool("UserProxyCheck", False): - proxy_option = 2 - def toggle_proxy_list(option: int): - if option == 2: - warning_dialog.lineEditProxy.show() - else: - warning_dialog.lineEditProxy.hide() - - warning_dialog.checkBoxAutoCheck.setChecked(autocheck) - warning_dialog.checkBoxDownloadMacroMetadata.setChecked(download_macros) - warning_dialog.comboBoxProxy.setCurrentIndex(proxy_option) - toggle_proxy_list(proxy_option) - if proxy_option == 2: - warning_dialog.lineEditProxy.setText(proxy_string) - - warning_dialog.comboBoxProxy.currentIndexChanged.connect(toggle_proxy_list) - - warning_dialog.labelWarning.setStyleSheet( - f"color:{utils.warning_color_string()};font-weight:bold;" - ) + # Set signal handlers for accept/reject buttons + warning_dialog.buttonContinue.clicked.connect(warning_dialog.accept) + warning_dialog.buttonQuit.clicked.connect(warning_dialog.reject) + # Show the dialog and check whether the user accepted or canceled if warning_dialog.exec() == QtWidgets.QDialog.Accepted: + # Store warning as read/accepted self.readWarning = True self.pref.SetBool("readWarning2022", True) - self.pref.SetBool("AutoCheck", warning_dialog.checkBoxAutoCheck.isChecked()) - self.pref.SetBool( - "DownloadMacros", - warning_dialog.checkBoxDownloadMacroMetadata.isChecked(), - ) - selected_proxy_option = warning_dialog.comboBoxProxy.currentIndex() - if selected_proxy_option == 0: - self.pref.SetBool("NoProxyCheck", True) - self.pref.SetBool("SystemProxyCheck", False) - self.pref.SetBool("UserProxyCheck", False) - elif selected_proxy_option == 1: - self.pref.SetBool("NoProxyCheck", False) - self.pref.SetBool("SystemProxyCheck", True) - self.pref.SetBool("UserProxyCheck", False) - else: - self.pref.SetBool("NoProxyCheck", False) - self.pref.SetBool("SystemProxyCheck", False) - self.pref.SetBool("UserProxyCheck", True) - self.pref.SetString("ProxyUrl", warning_dialog.lineEditProxy.text()) + return self.readWarning diff --git a/src/Mod/AddonManager/addonmanager_preferences_defaults.json b/src/Mod/AddonManager/addonmanager_preferences_defaults.json index ae84d17fdb..ca449421f7 100644 --- a/src/Mod/AddonManager/addonmanager_preferences_defaults.json +++ b/src/Mod/AddonManager/addonmanager_preferences_defaults.json @@ -26,7 +26,7 @@ "MacroGitURL": "https://github.com/FreeCAD/FreeCAD-Macros", "MacroUpdateStatsURL": "https://addons.freecad.org/macro_update_stats.json", "MacroWikiURL": "https://wiki.freecad.org/Macros_recipes", - "NoProxyCheck": "", + "NoProxyCheck": true, "PackageTypeSelection": 0, "PrimaryAddonsSubmoduleURL": "https://raw.githubusercontent.com/FreeCAD/FreeCAD-addons/master/.gitmodules", @@ -35,9 +35,9 @@ "SelectedAddon": "", "ShowBranchSwitcher": false, "StatusSelection": 0, - "SystemProxyCheck": "", + "SystemProxyCheck": false, "UpdateFrequencyComboEntry": 0, - "UserProxyCheck": "", + "UserProxyCheck": false, "ViewStyle": 1, "WindowHeight": 600, "WindowWidth": 800, diff --git a/src/Mod/AddonManager/first_run.ui b/src/Mod/AddonManager/first_run.ui index afd600d2b2..31217bddda 100644 --- a/src/Mod/AddonManager/first_run.ui +++ b/src/Mod/AddonManager/first_run.ui @@ -9,129 +9,105 @@ 0 0 - 398 - 237 + 520 + 110 - Welcome to the Addon Manager + Add-on Manager: Warning! - - - - - The addons that can be installed here are not officially part of FreeCAD, and are not reviewed by the FreeCAD team. Make sure you know what you are installing! - - - true - - - - - - - - 75 - true - - - - Download Settings - - - - - - - Automatically check installed Addons for updates - - - - - - - Download Macro metadata (approximately 10MB) - - - - - - - - - - No proxy + + + + + 30 - - - - System proxy + + 20 - - - - User-defined proxy: + + 6 - - - - - - - - - - - - These and other settings are available in the FreeCAD Preferences window. - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - + + 20 + + + 6 + + + + + + 100 + 100 + + + + + 100 + 100 + + + + false + + + :/icons/AddonMgrWithWarning.svg + + + + + + + The Add-on Manager provides access to an extensive library of useful third-party FreeCAD extensions. No guarantees can be made regarding their safety or functionality. + + + true + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + + + + Continue + + + + + + + Cancel + + + + + - - - - - buttonBox - accepted() - Dialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Dialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - + + +