27 Commits

Author SHA1 Message Date
3268b8026d Improve button layout and increase dialog width 2026-01-14 01:11:31 +01:00
32fda61894 Fix cursor jumping when editing variable names 2026-01-14 01:01:16 +01:00
cdd2c180f4 Add sensitive variable redaction in history 2026-01-13 11:27:05 +01:00
55ccdc8a1e Add sensitive variable support with GNOME Keyring integration 2026-01-12 23:28:55 +01:00
f7e737443f Add application icons and update branding metadata, update licensing documentation 2026-01-11 01:22:34 +01:00
cbf4d73190 Change application ID from cz.vesp.roster to cz.bugsy.roster 2026-01-06 17:11:10 +01:00
e498097b2a Reduce request indentation in sidebar from 24px to 12px 2026-01-05 02:28:02 +01:00
9d56be3f57 Keep project folder open when loading request 2026-01-05 02:20:48 +01:00
032b487c4a Add roster API for scripts to set environment variables 2026-01-01 02:27:22 +01:00
79fa494780 Fix edit icon: use document-properties-symbolic instead 2025-12-31 00:33:20 +01:00
f91c9f318a Fix edit icon and move Add Variable button inside table as last row 2025-12-31 00:26:05 +01:00
f4e8f0cca9 Move Add Variable button to bottom of variable column and change edit icon 2025-12-31 00:21:38 +01:00
4c28020269 Fix AttributeError: use set_size_request instead of set_width_request 2025-12-31 00:09:34 +01:00
cb57d038f1 Transpose environments table: variables as rows, environments as columns 2025-12-31 00:02:29 +01:00
dfe2a9a360 Add environment management for projects with variable support 2025-12-30 12:37:13 +01:00
e8f8efbd09 Add history deletion features - clear all in preferences and delete individual items 2025-12-24 20:21:47 +01:00
415907cfb0 Add copy buttons for request and response content in history items 2025-12-24 13:49:55 +01:00
49f94aaa88 Fix template errors - remove invalid cursor-name property and set cursor programmatically, remove debug output 2025-12-24 13:40:56 +01:00
9cbbb93384 Replace expander buttons with clickable separator boxes 2025-12-24 13:35:47 +01:00
95175cb01d Fix GTK assertion error - set min/max heights in correct order 2025-12-24 13:15:39 +01:00
0c139d2a3b Fix history expander button functionality - set both min and max content heights 2025-12-24 13:13:04 +01:00
47225cf254 Add header change tracking to tab modification detection
Previously, changes to HTTP headers (adding, editing, or removing headers)
were not being tracked, causing tabs to not show the modified indicator (•)
when only header values changed.

Changes:
- Add 'changed' signal to HeaderRow widget that emits when key or value entries change
- Connect HeaderRow 'changed' signal to window's _on_request_changed handler
- Real-time tab modification tracking now includes all header edits

This completes the comprehensive change tracking system for tabs:
- URL changes ✓
- Method changes ✓
- Body changes ✓
- Syntax changes ✓
- Header changes ✓ (now fixed)
2025-12-22 00:49:54 +01:00
e758793423 Remove arrow icons from project folders in sidebar 2025-12-20 01:35:20 +01:00
1b262bc8be Remove foldable sidebar functionality
Simplify left sidebar by removing fold/unfold functionality while
keeping all project icon selection features:
- Remove GtkStack-based sidebar switching
- Remove fold/unfold buttons
- Delete SlimProjectItem widget
- Keep IconPickerDialog and project icons
- Keep Edit Project dialog with icon selection

The sidebar is now a static pane that cannot be folded or hidden.
2025-12-18 16:19:30 +01:00
3cc96a82d6 Add foldable sidebar with custom project icons
Implement a collapsible sidebar that can be folded to show just project
icons in a slim strip, or expanded to show full project details. Projects
can now have custom icons selected from a 6x6 grid of 36 symbolic icons.

Features:
- Foldable sidebar with toggle button (fold/unfold)
- Slim sidebar view showing only project icons when folded
- Custom project icons with 36 symbolic icon choices
- Icon picker dialog with 6x6 grid layout
- Edit Project dialog (renamed from Rename) with name and icon selection
- Project icons displayed in both full and slim sidebar views
- Smooth transitions between folded/unfolded states
- Click on slim project icon to unfold sidebar

Technical changes:
- Add icon field to Project model with default "folder-symbolic"
- Create constants.py with PROJECT_ICONS list (36 symbolic icons)
- Implement IconPickerDialog with grid layout and selection
- Create SlimProjectItem widget for folded sidebar view
- Update ProjectManager.update_project() to handle icon changes
- Restructure sidebar using GtkStack for full/slim view switching
- Update project-item.ui to display project icon
- Change "Rename" menu to "Edit Project" with icon picker
- Add fold/unfold buttons with sidebar-show icons
- Update build system with new files and resources
2025-12-18 15:37:29 +01:00
ecc9094514 Add left sidebar for managing saved requests in projects
Implement a 3-column layout with a collapsible sidebar for organizing
and managing HTTP requests within projects. Requests are stored in
~/.roster/requests.json for easy git versioning.

Features:
- Create, rename, and delete projects
- Save current request to a project with custom name
- Load saved requests with direct click (no confirmation dialog)
- Delete saved requests with confirmation
- Expandable/collapsible project folders
- Context menu for project actions

Technical changes:
- Add SavedRequest and Project data models with JSON serialization
- Implement ProjectManager for persistence to ~/.roster/requests.json
- Create RequestItem and ProjectItem widgets with GTK templates
- Restructure main window UI to nested GtkPaned (3-column layout)
- Add project management dialogs using AdwAlertDialog
- Update build system with new source files and UI resources
2025-12-18 15:16:21 +01:00
cbc1972797 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