[maemo-commits] [maemo-commits] r9633 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Feb 5 14:20:34 EET 2007
- Previous message: [maemo-commits] r9632 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Next message: [maemo-commits] r9634 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart
Date: 2007-02-05 14:20:33 +0200 (Mon, 05 Feb 2007)
New Revision: 9633
Modified:
projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/statusbar-item.c
projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c
Log:
* src/hd-plugin-loader-legacy.c:
- Connect to change of "condition" property instead of
old signal.
* libhildondesktop/statusbar-item.c:
- g_object_notify "condition" property changes
* libhildondesktop/hildon-desktop-panel-expandable.c:
- Changed list of items by a hash table
* ChangeLog updated.
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-02-05 12:09:40 UTC (rev 9632)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-02-05 12:20:33 UTC (rev 9633)
@@ -1,3 +1,13 @@
+2007-02-05 Moises Martinez <moises.martinez at nokia.com>
+
+ * src/hd-plugin-loader-legacy.c:
+ - Connect to change of "condition" property instead of
+ old signal.
+ * libhildondesktop/statusbar-item.c:
+ - g_object_notify "condition" property changes
+ * libhildondesktop/hildon-desktop-panel-expandable.c:
+ - Changed list of items by a hash table
+
2007-02-02 Johan Bilien <johan.bilien at nokia.com>
* libhildondesktop/hildon-desktop-item.c: Fixed
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c 2007-02-05 12:09:40 UTC (rev 9632)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c 2007-02-05 12:20:33 UTC (rev 9633)
@@ -40,17 +40,17 @@
struct _HildonDesktopPanelExpandablePrivate
{
- guint items_p_row;
- guint n_items;
+ guint items_p_row;
+ guint n_items;
- GList *items;
+ GHashTable *items;
- GtkWindow *extension_window;
- GtkTable *extension_table;
+ GtkWindow *extension_window;
+ GtkTable *extension_table;
- gboolean extension_opened;
+ gboolean extension_opened;
- GtkWidget *arrow;
+ GtkWidget *arrow;
};
enum
@@ -132,7 +132,11 @@
panel->priv->items_p_row = 0;
panel->priv->n_items = 0;
- panel->priv->items = NULL;
+
+ panel->priv->items = g_hash_table_new_full (g_str_hash,
+ g_str_equal,
+ (GDestroyNotify) g_free,
+ (GDestroyNotify) gtk_widget_destroy);
panel->priv->extension_opened = FALSE;
@@ -192,6 +196,8 @@
gtk_widget_destroy (GTK_WIDGET (panel->priv->extension_window));
+ g_hash_table_destroy (panel->priv->items);
+
G_OBJECT_CLASS (hildon_desktop_panel_expandable_parent_class)->finalize (object);
}
@@ -258,6 +264,13 @@
}
static void
+hildon_desktop_panel_expandable_button_destroyed (GtkWidget *widget, gpointer _panel)
+{
+ g_hash_table_remove (HILDON_DESKTOP_PANEL_EXPANDABLE (_panel)->priv->items,
+ HILDON_DESKTOP_ITEM (widget)->id);
+}
+
+static void
hildon_desktop_panel_expandable_add_button (HildonDesktopPanel *panel, GtkWidget *button)
{
HildonDesktopPanelItem *item = HILDON_DESKTOP_PANEL_ITEM (button);
@@ -270,6 +283,11 @@
gtk_widget_set_size_request (button, item_width, item_height);
+ g_signal_connect (button,
+ "destroy",
+ G_CALLBACK (hildon_desktop_panel_expandable_button_destroyed),
+ (gpointer)panel);
+
if (STATUSBAR_IS_ITEM (button))
{
g_signal_connect_after (STATUSBAR_ITEM (item),
@@ -306,14 +324,17 @@
}
}
- if (g_list_find (ex_panel->priv->items, item) == NULL)
+ if (g_hash_table_lookup (ex_panel->priv->items, HILDON_DESKTOP_ITEM (item)->id) == NULL)
{
if (STATUSBAR_IS_ITEM (button) && !STATUSBAR_ITEM (button)->condition)
{
gtk_object_sink (GTK_OBJECT (item));
g_object_ref (G_OBJECT (item));
}
- ex_panel->priv->items = g_list_append (ex_panel->priv->items, item);
+
+ g_hash_table_insert (ex_panel->priv->items,
+ HILDON_DESKTOP_ITEM (item)->id,
+ (gpointer)item);
}
}
@@ -380,6 +401,21 @@
}
static void
+hildon_desktop_panel_expandable_hash_adding (gchar *key,
+ HildonDesktopItem *item,
+ HildonDesktopPanelExpandable *panel)
+{
+
+ hildon_desktop_panel_expandable_add_button (HILDON_DESKTOP_PANEL (panel),
+ GTK_WIDGET (item));
+
+ if (STATUSBAR_IS_ITEM (item) && !STATUSBAR_ITEM (item)->condition)
+ g_debug ("not unreffing");
+ else
+ g_object_unref (G_OBJECT (item));
+}
+
+static void
hildon_desktop_panel_expandable_arrange_items (HildonDesktopPanelExpandable *panel)
{
/*TODO: Improve this!! This horribly slow!!!!! */
@@ -407,21 +443,12 @@
GTK_WIDGET (l->data));
}
- for (l=panel->priv->items;l;l=g_list_next (l)){ g_debug ("2pointerrrr %p %s",l->data,HILDON_DESKTOP_ITEM (l->data)->id);}
-
panel->priv->n_items = 0;
- for (l = panel->priv->items; l ; l = g_list_next (l))
- {
- hildon_desktop_panel_expandable_add_button (HILDON_DESKTOP_PANEL (panel),
- GTK_WIDGET (l->data));
+ g_hash_table_foreach (panel->priv->items,
+ (GHFunc)hildon_desktop_panel_expandable_hash_adding,
+ (gpointer)panel);
- if (STATUSBAR_IS_ITEM (l->data) && !STATUSBAR_ITEM (l->data)->condition)
- g_debug ("not unreffing");
- else
- g_object_unref (G_OBJECT (l->data));
- }
-
g_list_free (children_panel);
g_list_free (children_table);
}
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/statusbar-item.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/statusbar-item.c 2007-02-05 12:09:40 UTC (rev 9632)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/statusbar-item.c 2007-02-05 12:20:33 UTC (rev 9633)
@@ -129,9 +129,7 @@
static void
statusbar_item_update_condition (StatusbarItem *item, gboolean condition)
{
- item->condition = condition;
-
- g_debug ("Changing condition %s %d",HILDON_DESKTOP_ITEM (item)->id, item->condition);
+ g_object_set (G_OBJECT (item), "condition", condition, NULL);
}
static void
@@ -162,6 +160,7 @@
{
case SB_PROP_CONDITION:
sbitem->condition = g_value_get_boolean (value);
+ g_object_notify (object, "condition");
break;
case SB_PROP_MANDATORY:
sbitem->mandatory = g_value_get_boolean (value);
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c 2007-02-05 12:09:40 UTC (rev 9632)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c 2007-02-05 12:20:33 UTC (rev 9633)
@@ -709,7 +709,7 @@
set_conditional_data->cb = (SBSetConditional)symbols.set_conditional;
set_conditional_data->module_data = module_data;
- g_signal_connect (item, "hildon-status-bar-update-conditional",
+ g_signal_connect (item, "notify::condition",
G_CALLBACK (hd_plugin_loader_legacy_status_bar_set_conditional),
set_conditional_data);
}
- Previous message: [maemo-commits] r9632 - in projects/haf/trunk/hildon-theme-layout-4: . rc
- Next message: [maemo-commits] r9634 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
