← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~mterry/indicator-datetime/fix-show-calendar into lp:indicator-datetime

 

Michael Terry has proposed merging lp:~mterry/indicator-datetime/fix-show-calendar into lp:indicator-datetime.

Requested reviews:
  Indicator Applet Developers (indicator-applet-developers)

For more details, see:
https://code.launchpad.net/~mterry/indicator-datetime/fix-show-calendar/+merge/52867

This causes the show-calendar setting to work robustly.
-- 
https://code.launchpad.net/~mterry/indicator-datetime/fix-show-calendar/+merge/52867
Your team ayatana-commits is subscribed to branch lp:indicator-datetime.
=== modified file 'src/datetime-service.c'
--- src/datetime-service.c	2011-03-04 10:35:22 +0000
+++ src/datetime-service.c	2011-03-10 15:13:21 +0000
@@ -336,8 +336,6 @@
 check_for_calendar (gpointer user_data)
 {
 	g_return_val_if_fail (calendar != NULL, FALSE);
-	
-	if (!g_settings_get_boolean(conf, SETTINGS_SHOW_CALENDAR_S)) return FALSE;
 
 	gchar *evo = g_find_program_in_path("evolution");
 	if (evo != NULL) {

=== modified file 'src/indicator-datetime.c'
--- src/indicator-datetime.c	2011-03-04 12:03:49 +0000
+++ src/indicator-datetime.c	2011-03-10 15:13:21 +0000
@@ -84,6 +84,7 @@
 	gboolean custom_show_seconds;
 
 	gboolean show_week_numbers;
+	gboolean show_calendar;
 	gint week_start;
 	
 	guint idle_measure;
@@ -110,7 +111,8 @@
 	PROP_SHOW_DAY,
 	PROP_SHOW_DATE,
 	PROP_CUSTOM_TIME_FORMAT,
-	PROP_SHOW_WEEK_NUMBERS
+	PROP_SHOW_WEEK_NUMBERS,
+	PROP_SHOW_CALENDAR
 };
 
 typedef struct _indicator_item_t indicator_item_t;
@@ -129,6 +131,7 @@
 #define PROP_SHOW_DATE_S                "show-date"
 #define PROP_CUSTOM_TIME_FORMAT_S       "custom-time-format"
 #define PROP_SHOW_WEEK_NUMBERS_S        "show-week-numbers"
+#define PROP_SHOW_CALENDAR_S            "show-calendar"
 
 #define INDICATOR_DATETIME_GET_PRIVATE(o) \
 (G_TYPE_INSTANCE_GET_PRIVATE ((o), INDICATOR_DATETIME_TYPE, IndicatorDatetimePrivate))
@@ -240,6 +243,13 @@
 	                                                      "Shows the week numbers in the monthly calendar in indicator-datetime's menu.",
 	                                                      FALSE, /* default */
 	                                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+	g_object_class_install_property (object_class,
+	                                 PROP_SHOW_CALENDAR,
+	                                 g_param_spec_boolean(PROP_SHOW_CALENDAR_S,
+	                                                      "Whether to show the calendar.",
+	                                                      "Shows the monthly calendar in indicator-datetime's menu.",
+	                                                      TRUE, /* default */
+	                                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 	return;
 }
 
@@ -303,6 +313,11 @@
 		                self,
 		                PROP_SHOW_WEEK_NUMBERS_S,
 		                G_SETTINGS_BIND_DEFAULT);
+		g_settings_bind(self->priv->settings,
+		                SETTINGS_SHOW_CALENDAR_S,
+		                self,
+		                PROP_SHOW_CALENDAR_S,
+		                G_SETTINGS_BIND_DEFAULT);
 	} else {
 		g_warning("Unable to get settings for '" SETTINGS_INTERFACE "'");
 	}
@@ -541,6 +556,13 @@
 		}
 		break;
 	}
+	case PROP_SHOW_CALENDAR: {
+		if (g_value_get_boolean(value) != self->priv->show_calendar) {
+			self->priv->show_calendar = g_value_get_boolean(value);
+			gtk_widget_set_visible (GTK_WIDGET (self->priv->ido_calendar), self->priv->show_calendar);
+		}
+		break;
+	}
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
 		return;
@@ -599,6 +621,9 @@
 	case PROP_SHOW_WEEK_NUMBERS:
 		g_value_set_boolean(value, self->priv->show_week_numbers);
 		break;
+	case PROP_SHOW_CALENDAR:
+		g_value_set_boolean(value, self->priv->show_calendar);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
 		return;
@@ -1228,7 +1253,9 @@
 	else
 		flags &= ~GTK_CALENDAR_SHOW_WEEK_NUMBERS;
 	ido_calendar_menu_item_set_display_options (self->priv->ido_calendar, flags);
-	
+
+	gtk_widget_set_visible (GTK_WIDGET (self->priv->ido_calendar), self->priv->show_calendar);
+
 	dbusmenu_gtkclient_newitem_base(DBUSMENU_GTKCLIENT(client), newitem, GTK_MENU_ITEM(ido), parent);
 	g_signal_connect_after(ido, "month-changed", G_CALLBACK(month_changed_cb), (gpointer)newitem);
 	return TRUE;


Follow ups