[california] Press F2 to rename calendar: Closes bug #729306
- From: Jim Nelson <jnelson src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [california] Press F2 to rename calendar: Closes bug #729306
- Date: Thu, 1 May 2014 20:51:14 +0000 (UTC)
commit 32217b3bb2080839b9a5bf97afc1f9ae9e4cc040
Author: Jim Nelson <jim yorba org>
Date: Thu May 1 13:50:44 2014 -0700
Press F2 to rename calendar: Closes bug #729306
src/manager/manager-calendar-list-item.vala | 14 ++++++++++++++
src/manager/manager-window.vala | 18 +++++++++++++++++-
2 files changed, 31 insertions(+), 1 deletions(-)
---
diff --git a/src/manager/manager-calendar-list-item.vala b/src/manager/manager-calendar-list-item.vala
index fd62bde..027e7b7 100644
--- a/src/manager/manager-calendar-list-item.vala
+++ b/src/manager/manager-calendar-list-item.vala
@@ -78,6 +78,16 @@ internal class CalendarListItem : Gtk.Grid, Toolkit.MutableWidget {
return true;
}
+ /**
+ * Allow for the user to rename the title of the { link source}.
+ *
+ * This presents a { link Toolkit.EditableLabel} for the user to enter the new name.
+ */
+ public void rename() {
+ if (editable_label == null)
+ activate_editable_label();
+ }
+
private bool source_to_color(Binding binding, Value source_value, ref Value target_value) {
bool used_default;
target_value = Gfx.rgb_string_to_rgba(source.color, Gfx.RGBA_BLACK, out used_default);
@@ -114,6 +124,10 @@ internal class CalendarListItem : Gtk.Grid, Toolkit.MutableWidget {
if (editable_label != null || !is_selected)
return false;
+ // only interest in primary button clicks
+ if (event.button != 1)
+ return false;
+
activate_editable_label();
// don't propagate
diff --git a/src/manager/manager-window.vala b/src/manager/manager-window.vala
index ce26199..64bf98c 100644
--- a/src/manager/manager-window.vala
+++ b/src/manager/manager-window.vala
@@ -13,10 +13,12 @@ namespace California.Manager {
public class Window : Toolkit.DeckWindow {
private static Manager.Window? instance = null;
+ private CalendarList calendar_list = new CalendarList();
+
private Window(Gtk.Window? parent) {
base (parent, null);
- deck.add_cards(iterate<Toolkit.Card>(new CalendarList()).to_array_list());
+ deck.add_cards(iterate<Toolkit.Card>(calendar_list).to_array_list());
}
public static void display(Gtk.Window? parent) {
@@ -34,6 +36,20 @@ public class Window : Toolkit.DeckWindow {
instance = null;
}
+
+ public override bool key_release_event(Gdk.EventKey event) {
+ // F2 with no modifiers means rename currenly selected item
+ if (event.keyval != Gdk.Key.F2 || event.state != 0)
+ return base.key_release_event(event);
+
+ if (calendar_list.selected == null)
+ return base.key_release_event(event);
+
+ calendar_list.selected.rename();
+
+ // don't propagate
+ return true;
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]