From 3950295c0f8adbf2003eb84322fa6e7c8ba6af47 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Sun, 1 Jul 2001 06:14:59 +0000 Subject: Implemented a "Rename Shortcut" command. svn path=/trunk/; revision=10651 --- shell/e-shortcuts.c | 64 +++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 29 deletions(-) (limited to 'shell/e-shortcuts.c') diff --git a/shell/e-shortcuts.c b/shell/e-shortcuts.c index 60453eae4b..1dff42e6f7 100644 --- a/shell/e-shortcuts.c +++ b/shell/e-shortcuts.c @@ -118,6 +118,9 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; + +static void make_dirty (EShortcuts *shortcuts); + static EShortcutItem * shortcut_item_new (const char *uri, @@ -360,6 +363,7 @@ load_shortcuts (EShortcuts *shortcuts, /* After loading, we always have to re-save ourselves as we have merged the information we have with the information we got from the StorageSet. */ + /* FIXME: Obviously, this sucks. */ make_dirty (shortcuts); return TRUE; @@ -412,35 +416,6 @@ save_shortcuts (EShortcuts *shortcuts, return TRUE; } - -static EShortcutItem * -get_item (EShortcuts *shortcuts, - int group_num, - int num) -{ - EShortcutsPrivate *priv; - ShortcutGroup *group; - GSList *group_element; - GSList *shortcut_element; - - g_return_val_if_fail (shortcuts != NULL, NULL); - g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL); - - priv = shortcuts->priv; - - group_element = g_slist_nth (priv->groups, group_num); - if (group_element == NULL) - return NULL; - - group = (ShortcutGroup *) group_element->data; - - shortcut_element = g_slist_nth (group->shortcuts, num); - if (shortcut_element == NULL) - return NULL; - - return (EShortcutItem *) shortcut_element->data; -} - /* Idle function to update the file on disk. */ @@ -532,6 +507,35 @@ update_shortcuts_by_path (EShortcuts *shortcuts, make_dirty (shortcuts); } + +static EShortcutItem * +get_item (EShortcuts *shortcuts, + int group_num, + int num) +{ + EShortcutsPrivate *priv; + ShortcutGroup *group; + GSList *group_element; + GSList *shortcut_element; + + g_return_val_if_fail (shortcuts != NULL, NULL); + g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL); + + priv = shortcuts->priv; + + group_element = g_slist_nth (priv->groups, group_num); + if (group_element == NULL) + return NULL; + + group = (ShortcutGroup *) group_element->data; + + shortcut_element = g_slist_nth (group->shortcuts, num); + if (shortcut_element == NULL) + return NULL; + + return (EShortcutItem *) shortcut_element->data; +} + /* Signal handlers for the views. */ @@ -973,6 +977,8 @@ e_shortcuts_update_shortcut (EShortcuts *shortcuts, shortcut_item = get_item (shortcuts, group_num, num); update_shortcut_and_emit_signal (shortcuts, shortcut_item, group_num, num, uri, name, type); + + make_dirty (shortcuts); } -- cgit v1.2.3