fix: add edit title in right click menu
Some checks failed
Build / Flatpak (x86_64) (push) Failing after 33s

This commit is contained in:
0xMRTT 2023-09-23 07:45:32 +02:00
parent 3f77f408f0
commit fe1db5ab13
No known key found for this signature in database
2 changed files with 51 additions and 62 deletions

View File

@ -5,46 +5,11 @@ template $ThreadItem : Box {
orientation: horizontal;
styles ["toolbar"]
Stack value-stack {
styles ["flat"]
valign: center;
hhomogeneous: false;
interpolate-size: true;
transition-type: crossfade;
Gtk.Inscription label {
hexpand: true;
xalign: 0;
text-overflow: ellipsize_end;
}
Entry text-value {
styles ["flat"]
}
Gtk.Inscription label {
hexpand: true;
xalign: 0;
text-overflow: ellipsize_end;
}
Adw.SplitButton text-value-button {
valign: center;
icon-name: "document-edit-symbolic";
tooltip-text: _("Edit Title");
styles ["flat"]
clicked => $on_edit_button_clicked();
menu-model: popover-model;
}
//Button delete_button {
// styles ["flat"]
// icon-name: "user-trash-symbolic";
// clicked => $on_delete_button_clicked();
//}
//Button star_button {
// styles ["flat"]
// icon-name: "non-starred-symbolic"; // starred-symbolic
// clicked => $on_star_button_clicked();
//}
}
@ -54,6 +19,11 @@ PopoverMenu popover {
menu popover-model {
section {
item {
label: _("Edit Title");
action: "event.edit";
}
item {
label: _("Delete");
action: "event.delete";

View File

@ -7,9 +7,6 @@ class ThreadItem(Gtk.Box):
__gtype_name__ = "ThreadItem"
label = Gtk.Template.Child()
text_value = Gtk.Template.Child("text-value")
value_stack = Gtk.Template.Child("value-stack")
edit_button = Gtk.Template.Child("text-value-button")
popover = Gtk.Template.Child()
edit_mode = False
@ -50,7 +47,8 @@ class ThreadItem(Gtk.Box):
self.action_group = Gio.SimpleActionGroup()
self.create_action("delete", self.on_delete)
self.create_action("star", self.on_star)
self.insert_action_group("event", self.action_group);
self.create_action("edit", self.on_edit_button_clicked)
self.insert_action_group("event", self.action_group)
def create_action(self, name, callback, shortcuts=None):
action = Gio.SimpleAction.new(name, None)
@ -60,29 +58,50 @@ class ThreadItem(Gtk.Box):
if shortcuts:
self.set_accels_for_action(f"app.{name}", shortcuts)
@Gtk.Template.Callback()
def on_edit_button_clicked(self, *args):
if not self.edit_mode:
self.edit_button.set_icon_name("check-round-outline2-symbolic")
self.text_value.set_text(self.label_text)
widget = self.text_value
tooltip = _("Set Title")
else:
self.edit_button.set_icon_name("document-edit-symbolic")
self.label_text = self.text_value.get_text()
box = Gtk.Box(
orientation=Gtk.Orientation.VERTICAL,
margin_top=12,
spacing=24,
)
listbox = Gtk.ListBox(
selection_mode=Gtk.SelectionMode.NONE,
hexpand=True,
vexpand=True,
)
listbox.add_css_class("boxed-list")
self.row = Adw.EntryRow()
self.row.set_text(self.chat["title"])
self.row.set_title(_("Edit Title"))
listbox.append(self.row)
box.append(listbox)
dialog = Adw.MessageDialog(
heading=_("Edit Title"),
transient_for=self.win,
modal=True,
extra_child=box
)
dialog.add_response("cancel", _("Cancel"))
dialog.add_response("edit", _("Edit"))
dialog.set_response_appearance("edit", Adw.ResponseAppearance.DESTRUCTIVE)
dialog.set_default_response("cancel")
dialog.set_close_response("cancel")
dialog.connect("response", self.on_edit_response)
dialog.present()
def on_edit_response(self, _widget, response):
if response == "edit":
self.label_text = self.row.get_text()
self.chat["title"] = self.label_text
self.text_value.set_text(self.label_text)
self.win.title.set_title(self.label_text)
self.label.set_text(self.label_text)
tooltip = _("Edit Title")
widget = self.label
self.edit_mode = not self.edit_mode
self.value_stack.set_visible_child(widget)
self.edit_button.set_tooltip_text(tooltip)
self.label.set_text(self.label_text)
toast = Adw.Toast()
toast.set_title(_("Title Edited"))
self.win.toast_overlay.add_toast(toast)
def on_star(self, *args):
self.is_starred = not self.is_starred
self.update_star()