diff --git a/src/Mod/AddonManager/package_details.py b/src/Mod/AddonManager/package_details.py index ff536cd387..2b19b00d33 100644 --- a/src/Mod/AddonManager/package_details.py +++ b/src/Mod/AddonManager/package_details.py @@ -173,7 +173,6 @@ class PackageDetails(QWidget): self.set_change_branch_button_state() self.set_disable_button_state() if status != Addon.Status.NOT_INSTALLED: - version = repo.installed_version date = "" installed_version_string = "

" @@ -267,7 +266,6 @@ class PackageDetails(QWidget): + "." ) elif status == Addon.Status.UNCHECKED: - pref = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Addons") autocheck = pref.GetBool("AutoCheck", False) if autocheck: @@ -726,21 +724,26 @@ if HAS_QTWEBENGINE: def __init__(self, parent): super().__init__(parent) self.settings().setAttribute(QWebEngineSettings.ErrorPageEnabled, False) + self.stored_url = None - def acceptNavigationRequest(self, url, _type, isMainFrame): + def acceptNavigationRequest(self, requested_url, _type, isMainFrame): """A callback for navigation requests: this widget will only display navigation requests to the - FreeCAD Wiki (for translation purposes) -- anything else will open in a new window.""" + FreeCAD Wiki (for translation purposes) -- anything else will open in a new window. + """ if _type == QWebEnginePage.NavigationTypeLinkClicked: - # See if the link is to a FreeCAD Wiki page -- if so, follow it, otherwise ask the OS to open it if ( - url.host() == "wiki.freecad.org" - or url.host() == "wiki.freecadweb.org" + requested_url.host() == "wiki.freecad.org" + or requested_url.host() == "wiki.freecadweb.org" ): - return super().acceptNavigationRequest(url, _type, isMainFrame) - QDesktopServices.openUrl(url) + return super().acceptNavigationRequest( + requested_url, _type, isMainFrame + ) + QDesktopServices.openUrl(requested_url) + self.stored_url = self.url() + QTimer.singleShot(0, self._reload_stored_url) return False - return super().acceptNavigationRequest(url, _type, isMainFrame) + return super().acceptNavigationRequest(requested_url, _type, isMainFrame) def javaScriptConsoleMessage(self, level, message, lineNumber, _): """Handle JavaScript console messages by optionally outputting them to the FreeCAD Console. This @@ -756,6 +759,10 @@ if HAS_QTWEBENGINE: elif level == QWebEnginePage.ErrorMessageLevel: FreeCAD.Console.PrintError(f"{tag} {lineNumber}: {message}\n") + def _reload_stored_url(self): + if self.stored_url: + self.load(self.stored_url) + class Ui_PackageDetails(object): """The generated UI from the Qt Designer UI file"""