Ted Gould has proposed merging
lp:~indicator-applet-developers/indicator-applet/messages-packaging into
lp:~ubuntu-core-dev/indicator-applet/messages-ubuntu.
Requested reviews:
Ubuntu Sponsors for main (ubuntu-main-sponsors)
--
https://code.launchpad.net/~indicator-applet-developers/indicator-applet/messages-packaging/+merge/4997
Your team Indicator Applet Developers is subscribed to branch
lp:~indicator-applet-developers/indicator-applet/messages-packaging.
=== modified file 'configure.ac'
--- configure.ac 2009-03-18 19:25:23 +0000
+++ configure.ac 2009-03-28 04:52:04 +0000
@@ -4,7 +4,7 @@
AC_PREREQ(2.53)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(indicator-messages, 0.1.3)
+AM_INIT_AUTOMAKE(indicator-messages, 0.1.4)
AM_MAINTAINER_MODE
=== modified file 'debian/changelog'
--- debian/changelog 2009-03-19 11:34:58 +0000
+++ debian/changelog 2009-03-28 05:05:23 +0000
@@ -1,3 +1,15 @@
+indicator-messages (0.1.4-0ubuntu1) jaunty; urgency=low
+
+ * New upstream version
+ * Adding the display of indicators that are login messages coming from
+ other applications. (LP: #345494)
+ * Making all times displayed for IM messages relative instead of
+ absolute. (LP: #346345)
+ * Cleaning up the server removal code. May fix (LP: #345599), I can't
+ recreate it anymore afterwards.
+
+ -- Ted Gould <[email protected]> Sat, 28 Mar 2009 00:05:06 -0500
+
indicator-messages (0.1.3-0ubuntu1) jaunty; urgency=low
[ Ted Gould ]
=== modified file 'src/im-menu-item.c'
--- src/im-menu-item.c 2009-03-18 18:21:21 +0000
+++ src/im-menu-item.c 2009-03-27 15:53:04 +0000
@@ -43,6 +43,9 @@
IndicateListenerIndicator * indicator;
glong seconds;
+ gboolean show_time;
+
+ guint time_update_min;
GtkHBox * hbox;
GtkLabel * user;
@@ -161,6 +164,13 @@
im_menu_item_dispose (GObject *object)
{
G_OBJECT_CLASS (im_menu_item_parent_class)->dispose (object);
+
+ ImMenuItem * self = IM_MENU_ITEM(object);
+ ImMenuItemPrivate * priv = IM_MENU_ITEM_GET_PRIVATE(self);
+
+ if (priv->time_update_min != 0) {
+ g_source_remove(priv->time_update_min);
+ }
}
static void
@@ -190,6 +200,62 @@
}
static void
+update_time (ImMenuItem * self)
+{
+ ImMenuItemPrivate * priv = IM_MENU_ITEM_GET_PRIVATE(self);
+
+ if (!priv->show_time) {
+ gtk_label_set_label(priv->time, "");
+ return;
+ }
+
+ gchar * timestring = NULL;
+
+ GTimeVal current_time;
+ g_get_current_time(¤t_time);
+
+ guint elapsed_seconds = current_time.tv_sec - priv->seconds;
+ guint elapsed_minutes = elapsed_seconds / 60;
+
+ if (elapsed_seconds % 60 > 55) {
+ /* We're using fuzzy timers, so we need fuzzy comparisons */
+ elapsed_minutes += 1;
+ }
+
+ if (elapsed_minutes < 60) {
+ timestring = g_strdup_printf(ngettext("%d m", "%d m", elapsed_minutes), elapsed_minutes);
+ } else {
+ guint elapsed_hours = elapsed_minutes / 60;
+
+ if (elapsed_minutes % 60 > 55) {
+ /* We're using fuzzy timers, so we need fuzzy comparisons */
+ elapsed_hours += 1;
+ }
+
+ timestring = g_strdup_printf(ngettext("%d h", "%d h", elapsed_hours), elapsed_hours);
+ }
+
+ if (timestring != NULL) {
+ gtk_label_set_label(priv->time, timestring);
+ gtk_widget_show(GTK_WIDGET(priv->time));
+
+ g_free(timestring);
+ }
+
+ return;
+}
+
+static gboolean
+time_update_cb (gpointer data)
+{
+ ImMenuItem * self = IM_MENU_ITEM(data);
+
+ update_time(self);
+
+ return TRUE;
+}
+
+static void
time_cb (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gchar * property, GTimeVal * propertydata, gpointer data)
{
g_debug("Got Time info");
@@ -208,18 +274,11 @@
priv->seconds = propertydata->tv_sec;
- time_t timet;
- struct tm * structtm;
-
- timet = propertydata->tv_sec;
- structtm = localtime(&timet);
-
- /* I can't imagine needing more than 80 characters */
- gchar timestring[80];
- strftime(timestring, 80, _("%I:%M"), structtm);
-
- gtk_label_set_label(priv->time, timestring);
- gtk_widget_show(GTK_WIDGET(priv->time));
+ update_time(self);
+
+ if (priv->time_update_min == 0) {
+ g_timeout_add_seconds(60, time_update_cb, self);
+ }
g_signal_emit(G_OBJECT(self), signals[TIME_CHANGED], 0, priv->seconds, TRUE);
@@ -281,7 +340,7 @@
}
ImMenuItem *
-im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator)
+im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gboolean show_time)
{
g_debug("Building a new IM Menu Item");
ImMenuItem * self = g_object_new(IM_MENU_ITEM_TYPE, NULL);
@@ -291,6 +350,8 @@
priv->listener = listener;
priv->server = server;
priv->indicator = indicator;
+ priv->show_time = show_time;
+ priv->time_update_min = 0;
indicate_listener_get_property(listener, server, indicator, "sender", sender_cb, self);
indicate_listener_get_property_time(listener, server, indicator, "time", time_cb, self);
=== modified file 'src/im-menu-item.h'
--- src/im-menu-item.h 2009-03-18 18:21:21 +0000
+++ src/im-menu-item.h 2009-03-24 21:57:06 +0000
@@ -52,7 +52,7 @@
};
GType im_menu_item_get_type (void);
-ImMenuItem * im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator);
+ImMenuItem * im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server, IndicateListenerIndicator * indicator, gboolean show_time);
glong im_menu_item_get_seconds (ImMenuItem * menuitem);
G_END_DECLS
=== modified file 'src/indicator-messages.c'
--- src/indicator-messages.c 2009-03-18 18:45:51 +0000
+++ src/indicator-messages.c 2009-03-27 15:48:54 +0000
@@ -112,7 +112,7 @@
return (gint)(im_menu_item_get_seconds(IM_MENU_ITEM(pb->menuitem)) - im_menu_item_get_seconds(IM_MENU_ITEM(pa->menuitem)));
}
-void
+static void
server_added (IndicateListener * listener, IndicateListenerServer * server, gchar * type, gpointer data)
{
g_debug("Server Added '%s' of type '%s'.", INDICATE_LISTENER_SERVER_DBUS_NAME(server), type);
@@ -227,7 +227,7 @@
return;
}
-void
+static void
server_removed (IndicateListener * listener, IndicateListenerServer * server, gchar * type, gpointer data)
{
g_debug("Removing server: %s", INDICATE_LISTENER_SERVER_DBUS_NAME(server));
@@ -342,13 +342,13 @@
g_debug("Message subtype: %s", propertydata);
- if (!strcmp(propertydata, "im")) {
+ if (!strcmp(propertydata, "im") || !strcmp(propertydata, "login")) {
imList_t * listItem = g_new(imList_t, 1);
listItem->server = server;
listItem->indicator = indicator;
g_debug("Building IM Item");
- ImMenuItem * menuitem = im_menu_item_new(listener, server, indicator);
+ ImMenuItem * menuitem = im_menu_item_new(listener, server, indicator, !strcmp(propertydata, "im"));
g_object_ref(G_OBJECT(menuitem));
listItem->menuitem = GTK_WIDGET(menuitem);
_______________________________________________
Mailing list: https://launchpad.net/~dx-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~dx-team
More help : https://help.launchpad.net/ListHelp