vesp fcad852800 Add unsaved change tracking and smart tab loading
Change Tracking:
- Track modifications to URL, method, body, syntax, and headers
- Show • indicator on modified tab labels
- Real-time update of tab state on any change
- Each tab independently tracks its modification state

Unsaved Change Warnings:
- Warn when closing tabs with unsaved changes
- Warn when closing application with any unsaved tabs
- Destructive action styling for close confirmations
- Smart messages: single tab vs multiple tabs

Smart Tab Loading:
- Detect empty "New Request" tabs (no URL, body, or headers)
- Replace empty tabs when loading from sidebar/history
- Create new tab when current tab has changes
- Seamless workflow without unnecessary tabs

Application Close Protection:
- Prevent accidental data loss on app close
- Check all tabs for unsaved changes
- Show confirmation dialog before closing
- Works with all close methods (X, Alt+F4, Quit)

Bug Fixes:
- Fix signal handler to accept variable arguments
- Proper handling of notify::selected signals
2025-12-21 00:08:29 +01:00

Roster

A modern HTTP client for GNOME, built with GTK 4 and libadwaita.

Features

  • Send HTTP requests (GET, POST, PUT, DELETE)
  • Configure custom headers and request bodies
  • View response headers and bodies
  • Track request history with persistence
  • Beautiful GNOME-native UI

Dependencies

  • GTK 4
  • libadwaita 1
  • Python 3
  • HTTPie (http command)

Building

meson setup builddir
meson compile -C builddir
sudo meson install -C builddir

Usage

Roster uses HTTPie as the backend for making HTTP requests. Ensure HTTPie is installed:

pip install httpie
# or on Fedora
sudo dnf install httpie

Then run Roster from your application menu or with the roster command.

Description
HTTP client for GNOME
Readme 1.6 MiB
Languages
Python 98.6%
Meson 1.4%