[maemo-commits] [maemo-commits] r10323 - in projects/haf/trunk/hildon-desktop: . libhildondesktop
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Mar 2 15:18:47 EET 2007
- Previous message: [maemo-commits] r10322 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Next message: [maemo-commits] r10324 - projects/haf/trunk/gnome-vfs-filechooser-backend/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart Date: 2007-03-02 15:18:46 +0200 (Fri, 02 Mar 2007) New Revision: 10323 Modified: projects/haf/trunk/hildon-desktop/ChangeLog projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.c projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.h Log: * libhildondesktop/hildon-desktop-notification-manager.h: - Add flag for not removing an updated notification. * libhildondesktop/hildon-desktop-notification-manager.c: - Keep tracking of flag for not removing updated notifications in close_notification_handler. * ChangeLog updated. Modified: projects/haf/trunk/hildon-desktop/ChangeLog =================================================================== --- projects/haf/trunk/hildon-desktop/ChangeLog 2007-03-02 13:09:46 UTC (rev 10322) +++ projects/haf/trunk/hildon-desktop/ChangeLog 2007-03-02 13:18:46 UTC (rev 10323) @@ -1,3 +1,11 @@ +2007-03-02 Moises Martinez <moises.martinez at nokia.com> + + * libhildondesktop/hildon-desktop-notification-manager.h: + - Add flag for not removing an updated notification. + * libhildondesktop/hildon-desktop-notification-manager.c: + - Keep tracking of flag for not removing updated notifications in + close_notification_handler. + 2007-03-02 Lucas Rocha <lucas.rocha at nokia.com> * background-manager/fix build warning. Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.c =================================================================== --- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.c 2007-03-02 13:09:46 UTC (rev 10322) +++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.c 2007-03-02 13:18:46 UTC (rev 10323) @@ -54,7 +54,7 @@ DBusGProxy *bus_proxy; GError *error = NULL; guint request_name_result; - GType _types[9] = + GType _types[] = { G_TYPE_STRING, G_TYPE_UINT, @@ -64,7 +64,8 @@ G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_POINTER, - G_TYPE_INT + G_TYPE_INT, + G_TYPE_BOOLEAN }; nm->priv = HILDON_DESKTOP_NOTIFICATION_MANAGER_GET_PRIVATE (nm); @@ -72,7 +73,7 @@ nm->priv->current_id = 0; gtk_list_store_set_column_types (GTK_LIST_STORE (nm), - 9, + HD_NM_N_COLS, _types); @@ -194,14 +195,6 @@ GdkPixbuf *pixbuf = NULL; GtkIconTheme *icon_theme; - if (id == 0) - { - id = ++nm->priv->current_id; - - if (nm->priv->current_id == G_MAXUINT) - nm->priv->current_id = 0; - } - if (!g_str_equal (icon, "")) { if (g_file_test (icon, G_FILE_TEST_EXISTS)) @@ -234,21 +227,43 @@ } if (!hildon_desktop_notification_manager_find_by_id (nm, id, &iter)) + { gtk_list_store_append (GTK_LIST_STORE (nm), &iter); + + if (id == 0) + { + id = ++nm->priv->current_id; - gtk_list_store_set (GTK_LIST_STORE (nm), - &iter, - HD_NM_COL_APPNAME, app_name, - HD_NM_COL_ID, id, - HD_NM_COL_ICON_NAME, icon, - HD_NM_COL_ICON, pixbuf, - HD_NM_COL_SUMMARY, summary, - HD_NM_COL_BODY, body, - HD_NM_COL_ACTIONS, actions, - HD_NM_COL_HINTS, hints, - HD_NM_COL_TIMEOUT, timeout, - -1); + if (nm->priv->current_id == G_MAXUINT) + nm->priv->current_id = 0; + } + gtk_list_store_set (GTK_LIST_STORE (nm), + &iter, + HD_NM_COL_APPNAME, app_name, + HD_NM_COL_ID, id, + HD_NM_COL_ICON_NAME, icon, + HD_NM_COL_ICON, pixbuf, + HD_NM_COL_SUMMARY, summary, + HD_NM_COL_BODY, body, + HD_NM_COL_ACTIONS, actions, + HD_NM_COL_HINTS, hints, + HD_NM_COL_TIMEOUT, timeout, + HD_NM_COL_REMOVABLE, TRUE, + -1); + } + else + { + gtk_list_store_set (GTK_LIST_STORE (nm), + &iter, + HD_NM_COL_ICON_NAME, icon, + HD_NM_COL_ICON, pixbuf, + HD_NM_COL_SUMMARY, summary, + HD_NM_COL_BODY, body, + HD_NM_COL_REMOVABLE, FALSE, + -1); + } + if (timeout > 0) { iter_timeout = g_new0 (GtkTreeIter, 1); @@ -298,13 +313,30 @@ guint id, GError **error) { + GtkTreeIter iter; + gboolean removable = TRUE; if (hildon_desktop_notification_manager_find_by_id (nm,id,&iter)) { - gtk_list_store_remove (GTK_LIST_STORE (nm), &iter); + gtk_tree_model_get (GTK_TREE_MODEL (nm), + &iter, + HD_NM_COL_REMOVABLE, &removable, + -1); + + if (!removable) /*libnotify call close_notification_handler when updating a row + that we happend to not want removed + */ + gtk_list_store_set (GTK_LIST_STORE (nm), + &iter, + HD_NM_COL_REMOVABLE, TRUE, + -1); + else + gtk_list_store_remove (GTK_LIST_STORE (nm), &iter); + return TRUE; } else return FALSE; + } Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.h =================================================================== --- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.h 2007-03-02 13:09:46 UTC (rev 10322) +++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-notification-manager.h 2007-03-02 13:18:46 UTC (rev 10323) @@ -44,7 +44,9 @@ HD_NM_COL_BODY, HD_NM_COL_ACTIONS, HD_NM_COL_HINTS, - HD_NM_COL_TIMEOUT + HD_NM_COL_TIMEOUT, + HD_NM_COL_REMOVABLE, + HD_NM_N_COLS }; typedef struct _HildonDesktopNotificationManager HildonDesktopNotificationManager;
- Previous message: [maemo-commits] r10322 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Next message: [maemo-commits] r10324 - projects/haf/trunk/gnome-vfs-filechooser-backend/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]