feat: Implement default welcome page for missing web application

- Added a professional HTML welcome page displayed when no web application is configured.
- Enhanced `_load_webapp()` method to support improved path resolution for both development and bundled modes.
- Updated error handling to show the welcome page instead of a bare error message when the webapp file is not found.
- Modified unit tests to verify the welcome page is displayed in error scenarios.

build: Complete Windows and macOS build scripts

- Created `build_windows.py` for building Windows executable and optional MSI installer using PyInstaller.
- Developed `build_macos.sh` for creating macOS application bundle and DMG image.
- Added logging and error handling to build scripts for better user feedback.

docs: Add build and icon requirements documentation

- Created `PHASE_3_BUILD_SUMMARY.md` detailing the build process, results, and next steps.
- Added `resources/icons/README.md` outlining icon requirements and creation guidelines.

chore: Sync remotes script for repository maintenance

- Introduced `sync_remotes.ps1` PowerShell script to fetch updates from origin and upstream remotes.
This commit is contained in:
claudi 2026-01-28 12:59:33 +01:00
parent 90dc09eb4d
commit f0c96f15b8
10 changed files with 1415 additions and 39 deletions

View file

@ -180,8 +180,8 @@ class TestMainWindowWebAppLoading:
assert window.web_view is not None
def test_load_nonexistent_file_shows_error(self, qtbot, tmp_path):
"""Test loading nonexistent file shows error HTML."""
def test_load_nonexistent_file_shows_welcome_page(self, qtbot, tmp_path):
"""Test loading nonexistent file shows welcome page HTML."""
config = Config(
app_name="Test",
app_version="1.0.0",
@ -205,10 +205,10 @@ class TestMainWindowWebAppLoading:
window._load_webapp()
mock_set_html.assert_called_once()
# Verify error message
# Verify welcome page is shown instead of error
call_args = mock_set_html.call_args[0][0]
assert "Error" in call_args
assert "not found" in call_args
assert "WebDrop Bridge" in call_args
assert "Application Ready" in call_args
class TestMainWindowDragIntegration: