Compare commits

..

No commits in common. "def4133910f210508acb2fdb6d9e26c2cc0cb459" and "de83ecfbb437d74fc892455d010764f74f9ef1f1" have entirely different histories.

4 changed files with 24 additions and 109 deletions

View File

@ -1,5 +1,5 @@
project('roster', project('roster',
version: '0.6.1', version: '0.6.0',
meson_version: '>= 1.0.0', meson_version: '>= 1.0.0',
default_options: [ 'warning_level=2', 'werror=false', ], default_options: [ 'warning_level=2', 'werror=false', ],
) )

View File

@ -5,7 +5,7 @@
<template class="EnvironmentsDialog" parent="AdwDialog"> <template class="EnvironmentsDialog" parent="AdwDialog">
<property name="title">Manage Environments</property> <property name="title">Manage Environments</property>
<property name="content-width">1100</property> <property name="content-width">900</property>
<property name="content-height">600</property> <property name="content-height">600</property>
<property name="follows-content-size">false</property> <property name="follows-content-size">false</property>

View File

@ -19,64 +19,31 @@
<object class="GtkEntry" id="name_entry"> <object class="GtkEntry" id="name_entry">
<property name="placeholder-text">Variable name</property> <property name="placeholder-text">Variable name</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<signal name="changed" handler="on_name_changed"/>
</object> </object>
</child> </child>
</object>
</child>
<!-- Inline edit buttons (shown only when editing) -->
<child>
<object class="GtkRevealer" id="edit_buttons_revealer">
<property name="transition-type">slide-left</property>
<property name="reveal-child">False</property>
<child> <child>
<object class="GtkBox"> <object class="GtkToggleButton" id="sensitive_toggle">
<property name="spacing">3</property> <property name="icon-name">channel-insecure-symbolic</property>
<child> <property name="tooltip-text">Mark as sensitive (store in keyring)</property>
<object class="GtkButton" id="cancel_button"> <signal name="toggled" handler="on_sensitive_toggled"/>
<property name="icon-name">process-stop-symbolic</property> <style>
<property name="tooltip-text">Cancel editing</property> <class name="flat"/>
<signal name="clicked" handler="on_cancel_clicked"/> </style>
<style>
<class name="flat"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="save_button">
<property name="icon-name">object-select-symbolic</property>
<property name="tooltip-text">Save changes</property>
<signal name="clicked" handler="on_save_clicked"/>
<style>
<class name="flat"/>
<class name="suggested-action"/>
</style>
</object>
</child>
</object> </object>
</child> </child>
</object>
</child>
<child> <child>
<object class="GtkToggleButton" id="sensitive_toggle"> <object class="GtkButton" id="delete_button">
<property name="icon-name">changes-allow-symbolic</property> <property name="icon-name">edit-delete-symbolic</property>
<property name="tooltip-text">Mark as sensitive (store in keyring)</property> <property name="tooltip-text">Delete variable</property>
<signal name="toggled" handler="on_sensitive_toggled"/> <signal name="clicked" handler="on_delete_clicked"/>
<style> <style>
<class name="flat"/> <class name="flat"/>
</style> </style>
</object> </object>
</child> </child>
<child>
<object class="GtkButton" id="delete_button">
<property name="icon-name">edit-delete-symbolic</property>
<property name="tooltip-text">Delete variable</property>
<signal name="clicked" handler="on_delete_clicked"/>
<style>
<class name="flat"/>
</style>
</object> </object>
</child> </child>

View File

@ -30,9 +30,6 @@ class VariableDataRow(Gtk.Box):
variable_cell = Gtk.Template.Child() variable_cell = Gtk.Template.Child()
name_entry = Gtk.Template.Child() name_entry = Gtk.Template.Child()
edit_buttons_revealer = Gtk.Template.Child()
cancel_button = Gtk.Template.Child()
save_button = Gtk.Template.Child()
sensitive_toggle = Gtk.Template.Child() sensitive_toggle = Gtk.Template.Child()
delete_button = Gtk.Template.Child() delete_button = Gtk.Template.Child()
values_box = Gtk.Template.Child() values_box = Gtk.Template.Child()
@ -47,7 +44,6 @@ class VariableDataRow(Gtk.Box):
def __init__(self, variable_name, environments, size_group, project, project_manager, update_timestamp=None): def __init__(self, variable_name, environments, size_group, project, project_manager, update_timestamp=None):
super().__init__() super().__init__()
self.variable_name = variable_name self.variable_name = variable_name
self.original_name = variable_name # Store original name for cancel
self.environments = environments self.environments = environments
self.size_group = size_group self.size_group = size_group
self.project = project self.project = project
@ -55,20 +51,10 @@ class VariableDataRow(Gtk.Box):
self.value_entries = {} self.value_entries = {}
self.update_timeout_id = None self.update_timeout_id = None
self._updating_toggle = False # Flag to prevent recursion self._updating_toggle = False # Flag to prevent recursion
self._is_editing = False # Track editing state
# Set variable name # Set variable name
self.name_entry.set_text(variable_name) self.name_entry.set_text(variable_name)
# Connect focus events for inline editing
focus_controller = Gtk.EventControllerFocus()
focus_controller.connect('enter', self._on_name_entry_focus_in)
focus_controller.connect('leave', self._on_name_entry_focus_out)
self.name_entry.add_controller(focus_controller)
# Connect activate signal (Enter key)
self.name_entry.connect('activate', self._on_name_entry_activate)
# Set initial sensitivity state # Set initial sensitivity state
is_sensitive = variable_name in self.project.sensitive_variables is_sensitive = variable_name in self.project.sensitive_variables
self._updating_toggle = True self._updating_toggle = True
@ -144,45 +130,10 @@ class VariableDataRow(Gtk.Box):
) )
self.emit('value-changed', env_id, value) self.emit('value-changed', env_id, value)
def _on_name_entry_focus_in(self, controller):
"""Show edit buttons when entry gains focus."""
self._is_editing = True
self.original_name = self.name_entry.get_text().strip()
self.edit_buttons_revealer.set_reveal_child(True)
def _on_name_entry_focus_out(self, controller):
"""Handle focus leaving the entry without explicit save/cancel."""
# Only auto-hide if user didn't click cancel/save
# The buttons will handle hiding themselves
pass
def _on_name_entry_activate(self, entry):
"""Handle Enter key press - same as clicking Save."""
self._save_changes()
@Gtk.Template.Callback() @Gtk.Template.Callback()
def on_cancel_clicked(self, button): def on_name_changed(self, entry):
"""Cancel editing and restore original name.""" """Handle variable name changes."""
self.name_entry.set_text(self.original_name) self.emit('variable-changed')
self._is_editing = False
self.edit_buttons_revealer.set_reveal_child(False)
@Gtk.Template.Callback()
def on_save_clicked(self, button):
"""Save variable name changes."""
self._save_changes()
def _save_changes(self):
"""Save the variable name change."""
new_name = self.name_entry.get_text().strip()
# Only emit if name actually changed
if new_name != self.original_name:
self.emit('variable-changed')
self._is_editing = False
self.edit_buttons_revealer.set_reveal_child(False)
self.original_name = new_name
@Gtk.Template.Callback() @Gtk.Template.Callback()
def on_delete_clicked(self, button): def on_delete_clicked(self, button):
@ -208,7 +159,7 @@ class VariableDataRow(Gtk.Box):
self.sensitive_toggle.set_tooltip_text("Sensitive (stored in keyring)\nClick to make non-sensitive") self.sensitive_toggle.set_tooltip_text("Sensitive (stored in keyring)\nClick to make non-sensitive")
self.name_entry.add_css_class("sensitive-variable-name") self.name_entry.add_css_class("sensitive-variable-name")
else: else:
self.sensitive_toggle.set_icon_name("changes-allow-symbolic") self.sensitive_toggle.set_icon_name("channel-insecure-symbolic")
self.sensitive_toggle.set_tooltip_text("Not sensitive (stored in JSON)\nClick to mark as sensitive") self.sensitive_toggle.set_tooltip_text("Not sensitive (stored in JSON)\nClick to mark as sensitive")
self.name_entry.remove_css_class("sensitive-variable-name") self.name_entry.remove_css_class("sensitive-variable-name")
@ -221,9 +172,6 @@ class VariableDataRow(Gtk.Box):
self.environments = environments self.environments = environments
self.project = project self.project = project
# Update original_name in case variable was renamed
self.original_name = self.variable_name
# Update sensitivity toggle state # Update sensitivity toggle state
is_sensitive = self.variable_name in self.project.sensitive_variables is_sensitive = self.variable_name in self.project.sensitive_variables
self._updating_toggle = True self._updating_toggle = True