From: Artem Garmash Date: Sat, 6 Feb 2010 09:13:55 +0000 (+0200) Subject: Show total of conversations as well in the empty view X-Git-Url: http://vcs.maemo.org/git/?p=conv-inbox;a=commitdiff_plain;h=0e609d64ab84f367427bd7552bc2dc51aa0fedfb Show total of conversations as well in the empty view --- diff --git a/src/el-home-applet.c b/src/el-home-applet.c index d292828..582d635 100644 --- a/src/el-home-applet.c +++ b/src/el-home-applet.c @@ -1097,43 +1097,47 @@ query_unread_events (RTComEl *el) return count; } -static gint -query_read_events (RTComEl *el, const gchar *service) +static gboolean +query_read_events (RTComEl *el, const gchar *service, gint *events, gint *conversations) { sqlite3 *db; sqlite3_stmt *stmt; int ret; - gint count = -1; + gboolean result = TRUE; g_object_get (el, "db", &db, NULL); if (sqlite3_prepare_v2 (db, - "SELECT SUM(total_events) FROM GroupCache, Services " + "SELECT SUM(total_events), COUNT(group_uid) FROM GroupCache, Services " "WHERE GroupCache.service_id=Services.id AND Services.name=?;", -1, &stmt, NULL) != SQLITE_OK) { g_error ("%s: can't compile SQL", G_STRFUNC); - return -1; + return FALSE; } if (sqlite3_bind_text (stmt, 1, service, -1, SQLITE_STATIC) != SQLITE_OK) { g_error ("Failed to bind %s to SQL stmt", service); + result = FALSE; goto DONE; } while (SQLITE_BUSY == (ret = sqlite3_step (stmt))); if (ret == SQLITE_ROW) { - count = sqlite3_column_int (stmt, 0); + *events = sqlite3_column_int (stmt, 0); + *conversations = sqlite3_column_int (stmt, 1); } else { g_error ("%s: error while executing SQL", G_STRFUNC); + result = FALSE; + goto DONE; } DONE: sqlite3_finalize (stmt); - return count; + return result; } static void @@ -1174,18 +1178,24 @@ read_event (ELHomeApplet *self) } } else { - gint n_sms_events = query_read_events (priv->eventlogger, - "RTCOM_EL_SERVICE_SMS"); - gint n_chat_events = query_read_events (priv->eventlogger, - "RTCOM_EL_SERVICE_CHAT"); gchar *text; - - text = g_strdup_printf ("%d", n_sms_events); - gtk_label_set_text (GTK_LABEL (priv->sms_total), text); + gint n_sms_events = 0, n_sms_convs = 0; + gint n_chat_events = 0, n_chat_convs = 0; + const gchar *fmt = "%d (%d)"; + + query_read_events (priv->eventlogger, + "RTCOM_EL_SERVICE_SMS", + &n_sms_events, &n_sms_convs); + query_read_events (priv->eventlogger, + "RTCOM_EL_SERVICE_CHAT", + &n_chat_events, &n_chat_convs); + + text = g_strdup_printf (fmt, n_sms_convs, n_sms_events); + gtk_label_set_markup (GTK_LABEL (priv->sms_total), text); g_free (text); - text = g_strdup_printf ("%d", n_chat_events); - gtk_label_set_text (GTK_LABEL (priv->chat_total), text); + text = g_strdup_printf (fmt, n_chat_convs, n_chat_events); + gtk_label_set_markup (GTK_LABEL (priv->chat_total), text); g_free (text); gtk_label_set_text (GTK_LABEL (priv->sender), @@ -1660,13 +1670,13 @@ el_home_applet_init (ELHomeApplet *self) gtk_widget_set_name (priv->sms_total, "hildon-shadow-label"); gtk_fixed_put (GTK_FIXED (priv->empty), priv->sms_total, 5*HILDON_MARGIN_DOUBLE + HILDON_ICON_PIXEL_SIZE_FINGER, - 2*HILDON_MARGIN_DOUBLE + HILDON_MARGIN_DEFAULT); + 2*HILDON_MARGIN_DOUBLE + HILDON_MARGIN_HALF); priv->chat_total = gtk_label_new (NULL); gtk_widget_set_name (priv->chat_total, "hildon-shadow-label"); gtk_fixed_put (GTK_FIXED (priv->empty), priv->chat_total, 5*HILDON_MARGIN_DOUBLE + HILDON_ICON_PIXEL_SIZE_FINGER, - 3*HILDON_MARGIN_DOUBLE + HILDON_MARGIN_DEFAULT + HILDON_ICON_PIXEL_SIZE_FINGER); + 3*HILDON_MARGIN_DOUBLE + HILDON_MARGIN_HALF + HILDON_ICON_PIXEL_SIZE_FINGER); gtk_widget_show_all (GTK_WIDGET (priv->empty)); gtk_widget_hide (GTK_WIDGET (priv->empty));