Skip to content

Conversation

@timlinux
Copy link
Contributor

@timlinux timlinux commented Dec 2, 2025

Summary

  • Use QGIS network stack for API calls — Replace requests session proxy handling with QgsBlockingNetworkRequest via a custom QGISAdapter, so the plugin respects QGIS proxy settings natively.
  • Add persistent message bar for network errors — Detect proxy failures, timeouts, and DNS errors; show a Planet-branded persistent message bar that auto-clears when connectivity is restored. Includes sip.isdeleted() guard for widget lifecycle safety.
  • Graceful login error handling — Catch generic exceptions during login so the persistent message bar handles notification instead of crashing.
  • Fix Content-Encoding header access — Use .get() instead of direct key access to avoid KeyError when the header is absent.
  • Set objectName on all dock widgets — Enable QGIS QMainWindow::saveState() to persist dock geometry across sessions.
  • Drop QGIS 3.36 from CI — Remove release-3_36 from the test matrix.
  • Privoxy dev tooling — Add virsh/libvirt bridge detection, PAC file test subcommands, log tail hint, and PID file cleanup fix.

Commits

  • b243d3e use qgis network stack
  • 120543f Updates to privoxy proxy testing script
  • 524fc2a Bump version to 2.3.6. Added changelog
  • 28c9dd4 Dont try to test on 3.36
  • 004cd10 Add virsh network detection and PAC URLs to privoxy script
  • 1813e2a Add testpac-local and testpac-vlan subcommands to privoxy script
  • 61386e6 Show log tail hint after privoxy start
  • 8776758 Fix rm error on privoxy stop when pid file already removed
  • ecc8974 Add persistent message bar for network connectivity errors
  • 385b0bf Fix KeyError when Content-Encoding header is absent
  • 5e0be2d Handle network errors gracefully during login
  • 7cf668c Set objectName on dock widgets for future geometry persistence
  • 6ba2add Update metadata.txt version to 2.3.6
  • 2713372 Add SSL/TLS error detection to persistent message bar

Test plan

  • Install plugin in QGIS with proxy configured — verify API calls route through QGIS network stack
  • Disconnect network or misconfigure proxy — verify persistent Planet-branded message bar appears
image
  • Restore connectivity — verify message bar auto-clears on next successful request
  • Dismiss message bar manually, then trigger clear — verify no RuntimeError crash
  • Login with no connectivity — verify graceful handling (no unhandled exception)
  • Run CI on supported QGIS versions (3.38, 3.40, 3.42, 3.44)

@timlinux timlinux marked this pull request as ready for review December 2, 2025 23:39
Detect virbr* bridge interfaces and display their PAC and proxy
addresses alongside the primary network address, so users testing
from libvirt/virsh VMs can easily configure proxy settings.
Fetch and display the PAC file via localhost (testpac-local) or via
the virsh/libvirt bridge network (testpac-vlan) to verify the PAC
server is reachable from both the host and VM environments.
Print a reminder about the logs subcommand at the end of the start
output so users know how to follow privoxy logs.
Privoxy removes its own pid file on exit, so by the time rm runs
the file may already be gone. Use rm -f to avoid the error.
Show a Planet-branded persistent message bar on the QGIS main window
when network requests fail, with context-specific messages for proxy
errors, timeouts, and general connectivity issues. The bar is
automatically dismissed on the first successful request. Uses
sip.isdeleted() to guard against the user manually dismissing the
widget before the clear callback fires.
Use dict.get() instead of direct key access for the Content-Encoding
header, since not all responses include it (e.g. when going through
a proxy that decompresses upstream).
Catch all exceptions during login so timeouts, proxy errors, and
connection failures don't produce a traceback. The persistent message
bar from QGISAdapter already notifies the user, so the login method
just silently returns to the login panel.
QGIS uses objectName to identify dock widgets when saving and
restoring window state. Setting these now so geometry persistence
can be implemented later without changing widget identities.
@timlinux timlinux changed the title Version 2.3.6 Version 2.3.6: Use QGIS network stack and improve connectivity handling Jan 26, 2026
Detect SSL/TLS errors in the error message and show a specific
message distinguishing proxy-related SSL issues from other SSL
failures.
@timlinux
Copy link
Contributor Author

Release candidate package attached for testing. Install via QGIS Plugin Manager > Install from ZIP.

@timlinux
Copy link
Contributor Author

Release candidate package for v2.3.6 testing:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants