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
38 lines
1.2 KiB
XML
38 lines
1.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<requires lib="gtk" version="4.0"/>
|
|
<template class="HeaderRow" parent="GtkBox">
|
|
<property name="orientation">horizontal</property>
|
|
<property name="spacing">6</property>
|
|
<property name="margin-start">6</property>
|
|
<property name="margin-end">6</property>
|
|
<property name="margin-top">3</property>
|
|
<property name="margin-bottom">3</property>
|
|
|
|
<child>
|
|
<object class="GtkEntry" id="key_entry">
|
|
<property name="placeholder-text">Header name</property>
|
|
<property name="hexpand">True</property>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GtkEntry" id="value_entry">
|
|
<property name="placeholder-text">Value</property>
|
|
<property name="hexpand">True</property>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GtkButton" id="remove_button">
|
|
<property name="icon-name">edit-delete-symbolic</property>
|
|
<property name="tooltip-text">Remove header</property>
|
|
<signal name="clicked" handler="on_remove_clicked" swapped="no"/>
|
|
<style>
|
|
<class name="flat"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</template>
|
|
</interface>
|