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
}
}
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 <span size=\"small\">(%d)</span>";
+
+ 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),
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));