[maemo-commits] [maemo-commits] r12728 - in projects/haf/trunk/hildon-plugins-settings: . debian src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jul 12 15:02:29 EEST 2007
- Previous message: [maemo-commits] r12727 - in projects/haf/trunk/hildon-desktop: . src
- Next message: [maemo-commits] r12730 - in projects/haf/trunk/hildon-1: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart Date: 2007-07-12 15:02:21 +0300 (Thu, 12 Jul 2007) New Revision: 12728 Added: projects/haf/trunk/hildon-plugins-settings/src/hd-marshalers.list Modified: projects/haf/trunk/hildon-plugins-settings/ChangeLog projects/haf/trunk/hildon-plugins-settings/configure.ac projects/haf/trunk/hildon-plugins-settings/debian/changelog projects/haf/trunk/hildon-plugins-settings/debian/control projects/haf/trunk/hildon-plugins-settings/src/Makefile.am projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-config-parser.c projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.c projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.h projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings.c Log: 2007-07-12 Moises Martinez <moises.martinez at nokia.com> * debian/control: * configure.ac: - Added dbus-1-glib * src/Makefile.am: - added marshalers creation * src/hd-marshalers.list: - new file with marshalers needed * src/hildon-plugin-config-parser.c: (hildon_plugin_config_parser_desktop_file): - FLAG set by default to FALSE * src/hildon-plugin-settings-dialog.[ch]: (hildon_plugin_settings_dialog_get_model_by_name): - new method * src/hildon-plugin-settings.c: (_sb_visibility_filter), (_sb_cell_condition_data_func), (_sb_update_status), (_sb_update_flag), (execute): - Implemented visibility and dimmed of different statusbar plugins conditional, temporal and permanent. * ChangeLog updated. Modified: projects/haf/trunk/hildon-plugins-settings/ChangeLog =================================================================== --- projects/haf/trunk/hildon-plugins-settings/ChangeLog 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/ChangeLog 2007-07-12 12:02:21 UTC (rev 12728) @@ -1,3 +1,24 @@ +2007-07-12 Moises Martinez <moises.martinez at nokia.com> + + * debian/control: + * configure.ac: + - Added dbus-1-glib + * src/Makefile.am: + - added marshalers creation + * src/hd-marshalers.list: + - new file with marshalers needed + * src/hildon-plugin-config-parser.c: + (hildon_plugin_config_parser_desktop_file): + - FLAG set by default to FALSE + * src/hildon-plugin-settings-dialog.[ch]: + (hildon_plugin_settings_dialog_get_model_by_name): + - new method + * src/hildon-plugin-settings.c: (_sb_visibility_filter), + (_sb_cell_condition_data_func), (_sb_update_status), + (_sb_update_flag), (execute): + - Implemented visibility and dimmed of different statusbar plugins + conditional, temporal and permanent. + 2007-07-06 Johan Bilien <johan.bilien at nokia.com> * src/hildon-plugin-module-settings.c: Modified: projects/haf/trunk/hildon-plugins-settings/configure.ac =================================================================== --- projects/haf/trunk/hildon-plugins-settings/configure.ac 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/configure.ac 2007-07-12 12:02:21 UTC (rev 12728) @@ -1,5 +1,5 @@ AC_INIT(Makefile.am) -AM_INIT_AUTOMAKE(hildon-plugins-settings, 0.0.3) +AM_INIT_AUTOMAKE(hildon-plugins-settings, 0.0.4) AM_CONFIG_HEADER(config.h) AC_ARG_ENABLE(debug, [AC_HELP_STRING([--enable-debug],[Debug (default=no)])], @@ -38,6 +38,8 @@ AM_GLIB_GNU_GETTEXT AC_DEFINE(GETTEXT_PACKAGE, ["osso-applet-tasknavigator"], [Package name for gettext]) +AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) + if test foobar${hildon_use_debug} = foobaryes then CFLAGS="$CFLAGS -ggdb -O0 -DDEBUG" @@ -81,6 +83,10 @@ AC_SUBST(LIBHILDON_LIBS) AC_SUBST(LIBHILDON_CFLAGS) +PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1) +AC_SUBST(DBUS_GLIB_LIBS) +AC_SUBST(DBUS_GLIB_CFLAGS) +_ pluginlibdir=`pkg-config hildon-control-panel --variable=pluginlibdir` AC_SUBST(pluginlibdir) desktopentrydir=`pkg-config hildon-control-panel --variable=plugindesktopentrydir` Modified: projects/haf/trunk/hildon-plugins-settings/debian/changelog =================================================================== --- projects/haf/trunk/hildon-plugins-settings/debian/changelog 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/debian/changelog 2007-07-12 12:02:21 UTC (rev 12728) @@ -1,3 +1,31 @@ +hildon-plugins-settings (0.0.4-1) unstable; urgency=low + + * debian/control: + * configure.ac: + - Added dbus-1-glib + * src/Makefile.am: + - added marshalers creation + * src/hd-marshalers.list: + - new file with marshalers needed + * src/hildon-plugin-config-parser.c: + (hildon_plugin_config_parser_desktop_file): + - FLAG set by default to FALSE + * src/hildon-plugin-settings-dialog.[ch]: + (hildon_plugin_settings_dialog_get_model_by_name): + - new method + * src/hildon-plugin-settings.c: (_sb_visibility_filter), + (_sb_cell_condition_data_func), (_sb_update_status), + (_sb_update_flag), (execute): + - Implemented visibility and dimmed of different statusbar plugins + conditional, temporal and permanent. + + * src/hildon-plugin-module-settings.c: + - pass the GModule to the callback so one can use GTypeModule + * data/hildon-plugins-settings.desktop.in: + - added X-Text-Domain key. Fixes: NB#62315 + + -- Moises Martinez <moises.martinez at nokia.com> Thu, 12 Jul 2007 14:57:59 +0300 + hildon-plugins-settings (0.0.3-1) unstable; urgency=low * src/hildon-plugin-settings-dialog.c: Modified: projects/haf/trunk/hildon-plugins-settings/debian/control =================================================================== --- projects/haf/trunk/hildon-plugins-settings/debian/control 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/debian/control 2007-07-12 12:02:21 UTC (rev 12728) @@ -2,7 +2,7 @@ Section: x11 Priority: optional Maintainer: Moises Martinez <moises.martinez at nokia.com> -Build-Depends: debhelper (>= 4.0.0), libosso-dev (>= 0.9.19), osso-af-settings, hildon-control-panel-dev, hildon-desktop-dev (>= 0.0.16), libhildondesktop-dev (>= 0.0.16), libhildon1-dev +Build-Depends: debhelper (>= 4.0.0), libosso-dev (>= 0.9.19), osso-af-settings, hildon-control-panel-dev, hildon-desktop-dev (>= 0.0.16), libhildondesktop-dev (>= 0.0.16), libhildon1-dev, libdbus-glib-1-dev Standards-Version: 3.6.1 Package: hildon-plugins-settings-cpa Modified: projects/haf/trunk/hildon-plugins-settings/src/Makefile.am =================================================================== --- projects/haf/trunk/hildon-plugins-settings/src/Makefile.am 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/src/Makefile.am 2007-07-12 12:02:21 UTC (rev 12728) @@ -21,11 +21,16 @@ hildon-plugin-cell-renderer-button.h \ hildon-plugin-cell-renderer-button.c \ hildon-plugin-settings-dialog.h \ - hildon-plugin-settings-dialog.c + hildon-plugin-settings-dialog.c pluginlib_LTLIBRARIES = libhildonpluginsettings.la +hd-marshalers.c: + $(LIBTOOL) --mode=execute $(GLIB_GENMARSHAL) hd-marshalers.list --body --header >> hd-marshalers.c +hd-marshalers.h: + $(LIBTOOL) --mode=execute $(GLIB_GENMARSHAL) hd-marshalers.list --header >| hd-marshalers.h + libhildonpluginsettings_la_CPPFLAGS = $(INCLUDES) $(LIBHILDON_CFLAGS) libhildonpluginsettings_la_LIBADD = \ @@ -34,6 +39,8 @@ libhildonpluginsettings_la_SOURCES = \ $(HILDON_PLUGIN_SOURCES) \ + hd-marshalers.h \ + hd-marshalers.c \ hildon-plugin-settings.c bin_PROGRAMS = hildon-plugin-settings Added: projects/haf/trunk/hildon-plugins-settings/src/hd-marshalers.list =================================================================== --- projects/haf/trunk/hildon-plugins-settings/src/hd-marshalers.list 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/src/hd-marshalers.list 2007-07-12 12:02:21 UTC (rev 12728) @@ -0,0 +1 @@ +VOID:STRING,BOOLEAN Modified: projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-config-parser.c =================================================================== --- projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-config-parser.c 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-config-parser.c 2007-07-12 12:02:21 UTC (rev 12728) @@ -312,7 +312,7 @@ HP_COL_DESKTOP_FILE, filename, HP_COL_CHECKBOX, FALSE, HP_COL_POSITION,0, - HP_COL_FLAG, FALSE, + HP_COL_FLAG, TRUE, -1); HPCPData *data = hildon_plugin_config_parser_new_data (0,FALSE); Modified: projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.c =================================================================== --- projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.c 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.c 2007-07-12 12:02:21 UTC (rev 12728) @@ -983,6 +983,33 @@ return names; } +GtkTreeModel * +hildon_plugin_settings_dialog_get_model_by_name (HildonPluginSettingsDialog *settings, + const gchar *name, + gboolean filter) +{ + GList *container_tab = NULL; + + + container_tab = + g_list_find_custom (settings->priv->tabs, + name, + (GCompareFunc)hildon_plugin_settings_dialog_compare_tab); + + if (!container_tab) + return NULL; + + HPSDTab *tab = (HPSDTab *)container_tab->data; + + if (filter && tab->filter) + return tab->filter; + else + if (tab->filter) + return gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (tab->filter)); + else + return gtk_tree_view_get_model (GTK_TREE_VIEW (tab->tw)); +} + void hildon_plugin_settings_dialog_set_choosing_limit (HildonPluginSettingsDialog *settings, const gchar *container_name, Modified: projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.h =================================================================== --- projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.h 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings-dialog.h 2007-07-12 12:02:21 UTC (rev 12728) @@ -94,6 +94,10 @@ GList * hildon_plugin_settings_dialog_get_container_names (HildonPluginSettingsDialog *settings); +GtkTreeModel * +hildon_plugin_settings_dialog_get_model_by_name (HildonPluginSettingsDialog *settings, + const gchar *name, + gboolean filter); void hildon_plugin_settings_dialog_set_choosing_limit (HildonPluginSettingsDialog *settings, Modified: projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings.c =================================================================== --- projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings.c 2007-07-12 12:00:12 UTC (rev 12727) +++ projects/haf/trunk/hildon-plugins-settings/src/hildon-plugin-settings.c 2007-07-12 12:02:21 UTC (rev 12728) @@ -26,8 +26,21 @@ #include <hildon-cp-plugin/hildon-cp-plugin-interface.h> #include <gtk/gtk.h> +#include <dbus/dbus-glib.h> +#include <dbus/dbus-glib-bindings.h> + +#include "hd-marshalers.h" + #include "hildon-plugin-settings-dialog.h" +#define SB_STATUS_NAME "org.hildon.Statusbar" +#define SB_STATUS_PATH "/org/hildon/Statusbar" +#define SB_STATUS_INTERFACE "org.hildon.Statusbar" +#define SB_STATUS_METHOD "RefreshItemsStatus" + +#define SB_CATEGORY_TEMPORAL "temporal" +#define SB_CATEGORY_CONDITIONAL "conditional" + #include <libintl.h> #define _(a) dgettext(PACKAGE, a) @@ -66,6 +79,31 @@ return TRUE; } +static gboolean +_sb_visibility_filter (GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + if (!model || !iter) + return TRUE; + + gboolean flag = TRUE; + gchar *category = NULL; + + gtk_tree_model_get (model,iter, + HP_COL_FLAG, &flag, + HP_COL_CATEGORY, &category, + -1); + + if (!category) + return TRUE; + + if (g_str_equal (category, SB_CATEGORY_CONDITIONAL) && !flag) + return FALSE; + + return TRUE; +} + static void _cell_mandatory_data_func (GtkTreeViewColumn *tc, GtkCellRenderer *cell, @@ -92,15 +130,105 @@ GtkTreeIter *iter, gpointer data) { + gchar *category = NULL; + gboolean status = TRUE, cb = TRUE; + + gtk_tree_model_get (tm, iter, + HP_COL_CATEGORY, &category, + HP_COL_FLAG, &status, + HP_COL_CHECKBOX, &cb, + -1); + if (!category) + return; + + if (g_str_equal (category, SB_CATEGORY_TEMPORAL) || + g_str_equal (category, SB_CATEGORY_CONDITIONAL)) + g_object_set (G_OBJECT (cell), "sensitive", status, NULL); + else + if (cb) + g_object_set (G_OBJECT (cell), "sensitive", TRUE, NULL); } +static void +_sb_update_status (DBusGProxy *proxy, + gchar *name, + gboolean status, + GtkTreeModel *tm) +{ + GtkTreeIter iter; + + gtk_tree_model_get_iter_first (tm, &iter); + + do + { + gboolean old_status = TRUE; + gchar *iter_name = NULL, *iter_category = NULL; + + gtk_tree_model_get (tm, &iter, + HP_COL_DESKTOP_FILE, &iter_name, + HP_COL_FLAG, &old_status, + HP_COL_CATEGORY, &iter_category, + -1); + + if (!iter_name && !iter_category) + continue; + + if (g_str_equal (name, iter_name)) + { + if (old_status != status) + gtk_list_store_set (GTK_LIST_STORE (tm), &iter, + HP_COL_FLAG, status, + -1); + } + + g_free (iter_name); + g_free (iter_category); + } + while (gtk_tree_model_iter_next (tm, &iter)); +} + +static void +_sb_update_flag (GtkTreeModel *tm) +{ + GtkTreeIter iter; + + gtk_tree_model_get_iter_first (tm, &iter); + + do + { + gchar *iter_category = NULL; + + gtk_tree_model_get (tm, &iter, + HP_COL_CATEGORY, &iter_category, + -1); + + if (!iter_category) + continue; + + if (g_str_equal (SB_CATEGORY_TEMPORAL, iter_category) || + g_str_equal (SB_CATEGORY_CONDITIONAL, iter_category)) + { + gtk_list_store_set (GTK_LIST_STORE (tm), &iter, + HP_COL_FLAG, FALSE, + -1); + } + + g_free (iter_category); + } + while (gtk_tree_model_iter_next (tm, &iter)); +} + + osso_return_t execute (osso_context_t *osso, gpointer user_data, gboolean user_activated) { gint ret; + DBusGConnection *conn = NULL; + GError *error = NULL; + GtkTreeModel *sbtm = NULL; GtkWidget *dialog = hildon_plugin_settings_dialog_new (); @@ -111,6 +239,13 @@ NULL, NULL); + hildon_plugin_settings_dialog_set_visibility_filter + (HILDON_PLUGIN_SETTINGS_DIALOG (dialog), + "Statusbar", + _sb_visibility_filter, + NULL, + NULL); + hildon_plugin_settings_dialog_set_cell_data_func (HILDON_PLUGIN_SETTINGS_DIALOG (dialog), HPSD_COLUMN_TOGGLE, @@ -140,6 +275,58 @@ "Tasknavigator", 3); + sbtm = hildon_plugin_settings_dialog_get_model_by_name + (HILDON_PLUGIN_SETTINGS_DIALOG (dialog), + "Statusbar", + FALSE); + + _sb_update_flag (sbtm); + + conn = dbus_g_bus_get (DBUS_BUS_SESSION, &error); + + if (!error) + { + DBusGProxy *proxy = dbus_g_proxy_new_for_name (conn, + SB_STATUS_NAME, + SB_STATUS_PATH, + SB_STATUS_INTERFACE); + + dbus_g_object_register_marshaller (g_cclosure_user_marshal_VOID__STRING_BOOLEAN, + G_TYPE_NONE, + G_TYPE_STRING, + G_TYPE_BOOLEAN, + G_TYPE_INVALID); + + dbus_g_proxy_add_signal (proxy, + "UpdateStatus", + G_TYPE_STRING, + G_TYPE_BOOLEAN, + G_TYPE_INVALID); + + dbus_g_proxy_connect_signal (proxy, + "UpdateStatus", + G_CALLBACK (_sb_update_status), + sbtm, + NULL); + + dbus_g_proxy_call (proxy, + "RefreshItemsStatus", + &error, + G_TYPE_INVALID); + + if (error) + { + g_warning ("Oops: %s", error->message); + g_error_free (error); + } + } + else + { + g_warning ("%s: I couldn't connect to the bus: %s",__FILE__,error->message); + g_error_free (error); + } + + gtk_widget_show (dialog); ret = gtk_dialog_run (GTK_DIALOG (dialog));
- Previous message: [maemo-commits] r12727 - in projects/haf/trunk/hildon-desktop: . src
- Next message: [maemo-commits] r12730 - in projects/haf/trunk/hildon-1: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]