54 Commits

Author SHA1 Message Date
a5db86b127 Make Request and Response sections equal width
Replaces AdwOverlaySplitView with GtkPaned to allow both sections to have equal width by default. The divider automatically centers at 50/50 split when the window is first shown, while still allowing users to adjust it as needed.
2025-12-18 12:38:07 +01:00
395be511c5 Replace tab bars with stack switchers for simpler navigation
Replaces AdwTabView/AdwTabBar with GtkStack/GtkStackSwitcher in both request and response sections to prevent tab reordering and provide a more compact UI without close buttons.
2025-12-18 12:22:47 +01:00
857ff84071 Prevent tabs from being closed in request/response sections
- Connected close-page signal on both request and response tab views
   - Signal handler returns True to prevent tab closure
   - Close buttons remain visible but are now non-functional
   - Prevents accidental closure of Headers and Body tabs
2025-12-18 12:01:14 +01:00
b19af25569 Initial commit: Roster HTTP client for GNOME
Roster is a modern HTTP client application for GNOME, similar to Postman,
built with GTK 4 and libadwaita.

Features:
- Send HTTP requests (GET, POST, PUT, DELETE)
- Configure custom headers with add/remove functionality
- Request body editor for POST/PUT/DELETE requests
- View response headers and bodies in separate tabs
- Track request history with JSON persistence
- Load previous requests from history with confirmation dialog
- Beautiful GNOME-native UI with libadwaita components
- HTTPie backend for reliable HTTP communication

Technical implementation:
- Python 3 with GTK 4 and libadwaita 1
- Meson build system with Flatpak support
- Custom widgets (HeaderRow, HistoryItem) with GObject signals
- Background threading for non-blocking HTTP requests
- AdwTabView for modern tabbed interface
- History persistence to ~/.config/roster/history.json
- Comprehensive error handling and user feedback
2025-12-18 11:05:33 +01:00