feat: enhance settings dialog to handle domain changes with restart prompt and silent reload for path changes
This commit is contained in:
parent
3f7623f11c
commit
1e848e84b2
1 changed files with 7 additions and 12 deletions
|
|
@ -1389,6 +1389,8 @@ class MainWindow(QMainWindow):
|
||||||
"""Show Settings dialog for configuration management.
|
"""Show Settings dialog for configuration management.
|
||||||
|
|
||||||
After closing, checks if webapp URL changed and reloads if needed.
|
After closing, checks if webapp URL changed and reloads if needed.
|
||||||
|
For domain changes, shows restart dialog.
|
||||||
|
For path-only changes, reloads silently without dialog.
|
||||||
"""
|
"""
|
||||||
from webdrop_bridge.ui.settings_dialog import SettingsDialog
|
from webdrop_bridge.ui.settings_dialog import SettingsDialog
|
||||||
|
|
||||||
|
|
@ -1412,17 +1414,10 @@ class MainWindow(QMainWindow):
|
||||||
self._handle_domain_change_restart()
|
self._handle_domain_change_restart()
|
||||||
else:
|
else:
|
||||||
logger.info("Path changed but domain is same - reloading...")
|
logger.info("Path changed but domain is same - reloading...")
|
||||||
# Just clear cache and reload
|
# Clear cache and navigate to home asynchronously
|
||||||
|
# Use timer to ensure dialog is fully closed before reloading
|
||||||
self.web_view.clear_cache_and_cookies()
|
self.web_view.clear_cache_and_cookies()
|
||||||
self._load_webapp()
|
QTimer.singleShot(100, self._navigate_home)
|
||||||
|
|
||||||
from PySide6.QtWidgets import QMessageBox
|
|
||||||
|
|
||||||
QMessageBox.information(
|
|
||||||
self,
|
|
||||||
"Configuration Updated",
|
|
||||||
"Web application URL has been updated and reloaded.",
|
|
||||||
)
|
|
||||||
|
|
||||||
def _check_domain_changed(self, old_url: str, new_url: str) -> bool:
|
def _check_domain_changed(self, old_url: str, new_url: str) -> bool:
|
||||||
"""Check if the domain/host has changed between two URLs.
|
"""Check if the domain/host has changed between two URLs.
|
||||||
|
|
@ -1481,9 +1476,9 @@ class MainWindow(QMainWindow):
|
||||||
self._restart_application()
|
self._restart_application()
|
||||||
else:
|
else:
|
||||||
logger.info("User chose to restart later - clearing cache and loading new URL")
|
logger.info("User chose to restart later - clearing cache and loading new URL")
|
||||||
# Clear cache and load anyway
|
# Clear cache and load new URL directly
|
||||||
self.web_view.clear_cache_and_cookies()
|
self.web_view.clear_cache_and_cookies()
|
||||||
self._load_webapp()
|
self._navigate_home()
|
||||||
|
|
||||||
def _restart_application(self) -> None:
|
def _restart_application(self) -> None:
|
||||||
"""Restart the application automatically.
|
"""Restart the application automatically.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue