From 59d0c113fdf2e565f512c98334a1808cfd216fa9 Mon Sep 17 00:00:00 2001 From: Marco Barisione Date: Mon, 29 Jul 2013 09:32:09 +0100 Subject: time: move from Empathy to tp-account-widgets https://bugzilla.gnome.org/show_bug.cgi?id=699492 --- libempathy-gtk/empathy-contactinfo-utils.c | 4 +- libempathy-gtk/empathy-individual-widget.c | 6 +- libempathy-gtk/empathy-location-manager.c | 4 +- libempathy-gtk/empathy-theme-adium.c | 18 ++-- libempathy-gtk/empathy-user-info.c | 4 +- libempathy/Makefile.am | 2 - libempathy/empathy-ft-handler.c | 6 +- libempathy/empathy-message.c | 6 +- libempathy/empathy-time.c | 144 ----------------------------- libempathy/empathy-time.h | 48 ---------- tp-account-widgets/Makefile.am | 2 + tp-account-widgets/tpaw-time.c | 144 +++++++++++++++++++++++++++++ tp-account-widgets/tpaw-time.h | 48 ++++++++++ 13 files changed, 218 insertions(+), 218 deletions(-) delete mode 100644 libempathy/empathy-time.c delete mode 100644 libempathy/empathy-time.h create mode 100644 tp-account-widgets/tpaw-time.c create mode 100644 tp-account-widgets/tpaw-time.h diff --git a/libempathy-gtk/empathy-contactinfo-utils.c b/libempathy-gtk/empathy-contactinfo-utils.c index 38f64375a..42d03806d 100644 --- a/libempathy-gtk/empathy-contactinfo-utils.c +++ b/libempathy-gtk/empathy-contactinfo-utils.c @@ -24,10 +24,10 @@ #include "empathy-contactinfo-utils.h" #include +#include #include "empathy-request-util.h" #include "empathy-string-parser.h" -#include "empathy-time.h" #include "empathy-ui-utils.h" static gchar * @@ -45,7 +45,7 @@ format_idle_time (GStrv values) if (duration <= 0) return NULL; - return empathy_duration_to_string (duration); + return tpaw_duration_to_string (duration); } static gchar * diff --git a/libempathy-gtk/empathy-individual-widget.c b/libempathy-gtk/empathy-individual-widget.c index e24aeadab..bf0998ece 100644 --- a/libempathy-gtk/empathy-individual-widget.c +++ b/libempathy-gtk/empathy-individual-widget.c @@ -24,6 +24,7 @@ #include #include +#include #ifdef HAVE_LIBCHAMPLAIN #include @@ -35,7 +36,6 @@ #include "empathy-groups-widget.h" #include "empathy-gtk-enum-types.h" #include "empathy-location.h" -#include "empathy-time.h" #include "empathy-ui-utils.h" #include "empathy-utils.h" @@ -594,7 +594,7 @@ location_update (EmpathyIndividualWidget *self) stamp = g_value_get_int64 (value); - user_date = empathy_time_to_string_relative (stamp); + user_date = tpaw_time_to_string_relative (stamp); tmp = g_strdup_printf ("%s", _("Location")); /* translators: format is "Location, $date" */ @@ -647,7 +647,7 @@ location_update (EmpathyIndividualWidget *self) gint64 time_; time_ = g_value_get_int64 (value); - svalue = empathy_time_to_string_utc (time_, _("%B %e, %Y at %R UTC")); + svalue = tpaw_time_to_string_utc (time_, _("%B %e, %Y at %R UTC")); } if (svalue != NULL) diff --git a/libempathy-gtk/empathy-location-manager.c b/libempathy-gtk/empathy-location-manager.c index 3a97c94cf..8216cf315 100644 --- a/libempathy-gtk/empathy-location-manager.c +++ b/libempathy-gtk/empathy-location-manager.c @@ -23,10 +23,10 @@ #include "empathy-location-manager.h" #include +#include #include "empathy-gsettings.h" #include "empathy-location.h" -#include "empathy-time.h" #define DEBUG_FLAG EMPATHY_DEBUG_LOCATION #include "empathy-debug.h" @@ -244,7 +244,7 @@ update_timestamp (EmpathyLocationManager *self) { gint64 timestamp; - timestamp = empathy_time_get_current (); + timestamp = tpaw_time_get_current (); tp_asv_set_int64 (self->priv->location, EMPATHY_LOCATION_TIMESTAMP, timestamp); diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c index d5b935681..05b166180 100644 --- a/libempathy-gtk/empathy-theme-adium.c +++ b/libempathy-gtk/empathy-theme-adium.c @@ -23,13 +23,13 @@ #include "empathy-theme-adium.h" #include +#include #include #include "empathy-gsettings.h" #include "empathy-images.h" #include "empathy-plist.h" #include "empathy-smiley-manager.h" -#include "empathy-time.h" #include "empathy-ui-utils.h" #include "empathy-utils.h" #include "empathy-webkit-utils.h" @@ -648,20 +648,20 @@ theme_adium_add_html (EmpathyThemeAdium *self, strftime_format = nsdate_to_strftime (self->priv->data, format); if (is_backlog) - dup_replace = empathy_time_to_string_local (timestamp, + dup_replace = tpaw_time_to_string_local (timestamp, strftime_format ? strftime_format : - EMPATHY_TIME_DATE_FORMAT_DISPLAY_SHORT); + TPAW_TIME_DATE_FORMAT_DISPLAY_SHORT); else - dup_replace = empathy_time_to_string_local (timestamp, + dup_replace = tpaw_time_to_string_local (timestamp, strftime_format ? strftime_format : - EMPATHY_TIME_FORMAT_DISPLAY_SHORT); + TPAW_TIME_FORMAT_DISPLAY_SHORT); replace = dup_replace; } else if (theme_adium_match (&cur, "%shortTime%")) { - dup_replace = empathy_time_to_string_local (timestamp, - EMPATHY_TIME_FORMAT_DISPLAY_SHORT); + dup_replace = tpaw_time_to_string_local (timestamp, + TPAW_TIME_FORMAT_DISPLAY_SHORT); replace = dup_replace; } else if (theme_adium_match (&cur, "%service%")) @@ -746,7 +746,7 @@ theme_adium_append_event_escaped (EmpathyThemeAdium *self, { theme_adium_add_html (self, "appendMessage", self->priv->data->status_html, escaped, NULL, NULL, NULL, - NULL, "event", empathy_time_get_current (), FALSE, FALSE, direction); + NULL, "event", tpaw_time_get_current (), FALSE, FALSE, direction); /* There is no last contact */ if (self->priv->last_contact) @@ -1206,7 +1206,7 @@ empathy_theme_adium_edit_message (EmpathyThemeAdium *self, } /* set a tooltip */ - timestamp = empathy_time_to_string_local ( + timestamp = tpaw_time_to_string_local ( empathy_message_get_timestamp (message), "%H:%M:%S"); tooltip = g_strdup_printf (_("Message edited at %s"), timestamp); diff --git a/libempathy-gtk/empathy-user-info.c b/libempathy-gtk/empathy-user-info.c index a814c1545..dbb6e084c 100644 --- a/libempathy-gtk/empathy-user-info.c +++ b/libempathy-gtk/empathy-user-info.c @@ -21,11 +21,11 @@ #include "empathy-user-info.h" #include +#include #include "empathy-avatar-chooser.h" #include "empathy-calendar-button.h" #include "empathy-contactinfo-utils.h" -#include "empathy-time.h" #include "empathy-utils.h" #define DEBUG_FLAG EMPATHY_DEBUG_CONTACT @@ -93,7 +93,7 @@ bday_changed_cb (EmpathyCalendarButton *button, { gchar tmp[255]; - g_date_strftime (tmp, sizeof (tmp), EMPATHY_DATE_FORMAT_DISPLAY_SHORT, + g_date_strftime (tmp, sizeof (tmp), TPAW_DATE_FORMAT_DISPLAY_SHORT, date); strv[0] = tmp; } diff --git a/libempathy/Makefile.am b/libempathy/Makefile.am index d80c39523..b75c35a8a 100644 --- a/libempathy/Makefile.am +++ b/libempathy/Makefile.am @@ -49,7 +49,6 @@ libempathy_headers = \ empathy-server-sasl-handler.h \ empathy-server-tls-handler.h \ empathy-status-presets.h \ - empathy-time.h \ empathy-tls-verifier.h \ empathy-tp-chat.h \ empathy-types.h \ @@ -78,7 +77,6 @@ libempathy_handwritten_source = \ empathy-server-sasl-handler.c \ empathy-server-tls-handler.c \ empathy-status-presets.c \ - empathy-time.c \ empathy-tls-verifier.c \ empathy-tp-chat.c \ empathy-utils.c diff --git a/libempathy/empathy-ft-handler.c b/libempathy/empathy-ft-handler.c index 96c8e47f5..049489c4e 100644 --- a/libempathy/empathy-ft-handler.c +++ b/libempathy/empathy-ft-handler.c @@ -25,8 +25,8 @@ #include "empathy-ft-handler.h" #include +#include -#include "empathy-time.h" #include "empathy-utils.h" #define DEBUG_FLAG EMPATHY_DEBUG_FT @@ -643,7 +643,7 @@ update_remaining_time_and_speed (EmpathyFTHandler *handler, last_transferred_bytes = priv->transferred_bytes; priv->transferred_bytes = transferred_bytes; - current_time = empathy_time_get_current (); + current_time = tpaw_time_get_current (); elapsed_time = current_time - priv->last_update_time; if (elapsed_time >= 1) @@ -672,7 +672,7 @@ ft_transfer_transferred_bytes_cb (TpFileTransferChannel *channel, if (priv->transferred_bytes == 0) { - priv->last_update_time = empathy_time_get_current (); + priv->last_update_time = tpaw_time_get_current (); g_signal_emit (handler, signals[TRANSFER_STARTED], 0, channel); } diff --git a/libempathy/empathy-message.c b/libempathy/empathy-message.c index 1115eddda..d6f30a678 100644 --- a/libempathy/empathy-message.c +++ b/libempathy/empathy-message.c @@ -26,9 +26,9 @@ #include "empathy-message.h" #include +#include #include "empathy-client-factory.h" -#include "empathy-time.h" #include "empathy-utils.h" #include "empathy-enum-types.h" @@ -196,7 +196,7 @@ empathy_message_init (EmpathyMessage *message) EMPATHY_TYPE_MESSAGE, EmpathyMessagePriv); message->priv = priv; - priv->timestamp = empathy_time_get_current (); + priv->timestamp = tpaw_time_get_current (); } static void @@ -314,7 +314,7 @@ message_set_property (GObject *object, case PROP_TIMESTAMP: priv->timestamp = g_value_get_int64 (value); if (priv->timestamp <= 0) - priv->timestamp = empathy_time_get_current (); + priv->timestamp = tpaw_time_get_current (); break; case PROP_ORIGINAL_TIMESTAMP: priv->original_timestamp = g_value_get_int64 (value); diff --git a/libempathy/empathy-time.c b/libempathy/empathy-time.c deleted file mode 100644 index d14f2c4cc..000000000 --- a/libempathy/empathy-time.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 2003-2007 Imendio AB - * Copyright (C) 2007-2012 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Authors: Richard Hult - */ - -#include "config.h" -#include "empathy-time.h" - -#include - -/* Note: EmpathyTime is always in UTC. */ - -gint64 -empathy_time_get_current (void) -{ - GDateTime *now; - gint64 result; - - now = g_date_time_new_now_utc (); - result = g_date_time_to_unix (now); - g_date_time_unref (now); - - return result; -} - -/* Converts the UTC timestamp to a string, also in UTC. - * Returns NULL on failure. */ -gchar * -empathy_time_to_string_utc (gint64 t, - const gchar *format) -{ - GDateTime *d; - char *result; - - g_return_val_if_fail (format != NULL, NULL); - - d = g_date_time_new_from_unix_utc (t); - result = g_date_time_format (d, format); - g_date_time_unref (d); - - return result; -} - -/* Converts the UTC timestamp to a string, in local time. - * Returns NULL on failure. */ -gchar * -empathy_time_to_string_local (gint64 t, - const gchar *format) -{ - GDateTime *d, *local; - gchar *result; - - g_return_val_if_fail (format != NULL, NULL); - - d = g_date_time_new_from_unix_utc (t); - local = g_date_time_to_local (d); - g_date_time_unref (d); - - result = g_date_time_format (local, format); - g_date_time_unref (local); - - return result; -} - -gchar * -empathy_duration_to_string (guint seconds) -{ - if (seconds < 60) - { - return g_strdup_printf (ngettext ("%d second ago", - "%d seconds ago", seconds), seconds); - } - else if (seconds < (60 * 60)) - { - seconds /= 60; - return g_strdup_printf (ngettext ("%d minute ago", - "%d minutes ago", seconds), seconds); - } - else if (seconds < (60 * 60 * 24)) - { - seconds /= 60 * 60; - return g_strdup_printf (ngettext ("%d hour ago", - "%d hours ago", seconds), seconds); - } - else if (seconds < (60 * 60 * 24 * 7)) - { - seconds /= 60 * 60 * 24; - return g_strdup_printf (ngettext ("%d day ago", - "%d days ago", seconds), seconds); - } - else if (seconds < (60 * 60 * 24 * 30)) - { - seconds /= 60 * 60 * 24 * 7; - return g_strdup_printf (ngettext ("%d week ago", - "%d weeks ago", seconds), seconds); - } - else - { - seconds /= 60 * 60 * 24 * 30; - return g_strdup_printf (ngettext ("%d month ago", - "%d months ago", seconds), seconds); - } -} - -gchar * -empathy_time_to_string_relative (gint64 t) -{ - GDateTime *now, *then; - gint seconds; - GTimeSpan delta; - gchar *result; - - now = g_date_time_new_now_utc (); - then = g_date_time_new_from_unix_utc (t); - - delta = g_date_time_difference (now, then); - seconds = delta / G_TIME_SPAN_SECOND; - - if (seconds > 0) - result = empathy_duration_to_string (seconds); - else - result = g_strdup (_("in the future")); - - g_date_time_unref (now); - g_date_time_unref (then); - - return result; -} diff --git a/libempathy/empathy-time.h b/libempathy/empathy-time.h deleted file mode 100644 index fc7af28e3..000000000 --- a/libempathy/empathy-time.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2004 Imendio AB - * Copyright (C) 2007-2012 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __EMPATHY_TIME_H__ -#define __EMPATHY_TIME_H__ - -#ifndef __USE_XOPEN -#define __USE_XOPEN -#endif -#include -#include - -G_BEGIN_DECLS - -/* FIXME: ideally we should only display the hour and minutes but - * there is no localized format for that (bgo #668323) */ -#define EMPATHY_TIME_FORMAT_DISPLAY_SHORT "%X" -#define EMPATHY_DATE_FORMAT_DISPLAY_SHORT "%a %d %b %Y" -#define EMPATHY_TIME_DATE_FORMAT_DISPLAY_SHORT "%a %d %b %Y, %X" - -gint64 empathy_time_get_current (void); -gchar *empathy_time_to_string_utc (gint64 t, - const gchar *format); -gchar *empathy_time_to_string_local (gint64 t, - const gchar *format); -gchar *empathy_time_to_string_relative (gint64 t); -gchar *empathy_duration_to_string (guint seconds); - -G_END_DECLS - -#endif /* __EMPATHY_TIME_H__ */ - diff --git a/tp-account-widgets/Makefile.am b/tp-account-widgets/Makefile.am index 5f2f0d30f..6887ab2ca 100644 --- a/tp-account-widgets/Makefile.am +++ b/tp-account-widgets/Makefile.am @@ -31,6 +31,7 @@ libtp_account_widgets_sources = \ tpaw-irc-network.c \ tpaw-irc-server.c \ tpaw-live-search.c \ + tpaw-time.c \ tpaw-utils.c \ totem-subtitle-encoding.c \ $(NULL) @@ -50,6 +51,7 @@ libtp_account_widgets_headers = \ tpaw-irc-network.h \ tpaw-irc-server.h \ tpaw-live-search.h \ + tpaw-time.h \ tpaw-utils.h \ totem-subtitle-encoding.h \ $(NULL) diff --git a/tp-account-widgets/tpaw-time.c b/tp-account-widgets/tpaw-time.c new file mode 100644 index 000000000..d169fcb12 --- /dev/null +++ b/tp-account-widgets/tpaw-time.c @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2003-2007 Imendio AB + * Copyright (C) 2007-2012 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: Richard Hult + */ + +#include "config.h" +#include "tpaw-time.h" + +#include + +/* Note: TpawTime is always in UTC. */ + +gint64 +tpaw_time_get_current (void) +{ + GDateTime *now; + gint64 result; + + now = g_date_time_new_now_utc (); + result = g_date_time_to_unix (now); + g_date_time_unref (now); + + return result; +} + +/* Converts the UTC timestamp to a string, also in UTC. + * Returns NULL on failure. */ +gchar * +tpaw_time_to_string_utc (gint64 t, + const gchar *format) +{ + GDateTime *d; + char *result; + + g_return_val_if_fail (format != NULL, NULL); + + d = g_date_time_new_from_unix_utc (t); + result = g_date_time_format (d, format); + g_date_time_unref (d); + + return result; +} + +/* Converts the UTC timestamp to a string, in local time. + * Returns NULL on failure. */ +gchar * +tpaw_time_to_string_local (gint64 t, + const gchar *format) +{ + GDateTime *d, *local; + gchar *result; + + g_return_val_if_fail (format != NULL, NULL); + + d = g_date_time_new_from_unix_utc (t); + local = g_date_time_to_local (d); + g_date_time_unref (d); + + result = g_date_time_format (local, format); + g_date_time_unref (local); + + return result; +} + +gchar * +tpaw_duration_to_string (guint seconds) +{ + if (seconds < 60) + { + return g_strdup_printf (ngettext ("%d second ago", + "%d seconds ago", seconds), seconds); + } + else if (seconds < (60 * 60)) + { + seconds /= 60; + return g_strdup_printf (ngettext ("%d minute ago", + "%d minutes ago", seconds), seconds); + } + else if (seconds < (60 * 60 * 24)) + { + seconds /= 60 * 60; + return g_strdup_printf (ngettext ("%d hour ago", + "%d hours ago", seconds), seconds); + } + else if (seconds < (60 * 60 * 24 * 7)) + { + seconds /= 60 * 60 * 24; + return g_strdup_printf (ngettext ("%d day ago", + "%d days ago", seconds), seconds); + } + else if (seconds < (60 * 60 * 24 * 30)) + { + seconds /= 60 * 60 * 24 * 7; + return g_strdup_printf (ngettext ("%d week ago", + "%d weeks ago", seconds), seconds); + } + else + { + seconds /= 60 * 60 * 24 * 30; + return g_strdup_printf (ngettext ("%d month ago", + "%d months ago", seconds), seconds); + } +} + +gchar * +tpaw_time_to_string_relative (gint64 t) +{ + GDateTime *now, *then; + gint seconds; + GTimeSpan delta; + gchar *result; + + now = g_date_time_new_now_utc (); + then = g_date_time_new_from_unix_utc (t); + + delta = g_date_time_difference (now, then); + seconds = delta / G_TIME_SPAN_SECOND; + + if (seconds > 0) + result = tpaw_duration_to_string (seconds); + else + result = g_strdup (_("in the future")); + + g_date_time_unref (now); + g_date_time_unref (then); + + return result; +} diff --git a/tp-account-widgets/tpaw-time.h b/tp-account-widgets/tpaw-time.h new file mode 100644 index 000000000..2277483be --- /dev/null +++ b/tp-account-widgets/tpaw-time.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2004 Imendio AB + * Copyright (C) 2007-2012 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef __TPAW_TIME_H__ +#define __TPAW_TIME_H__ + +#ifndef __USE_XOPEN +#define __USE_XOPEN +#endif +#include +#include + +G_BEGIN_DECLS + +/* FIXME: ideally we should only display the hour and minutes but + * there is no localized format for that (bgo #668323) */ +#define TPAW_TIME_FORMAT_DISPLAY_SHORT "%X" +#define TPAW_DATE_FORMAT_DISPLAY_SHORT "%a %d %b %Y" +#define TPAW_TIME_DATE_FORMAT_DISPLAY_SHORT "%a %d %b %Y, %X" + +gint64 tpaw_time_get_current (void); +gchar *tpaw_time_to_string_utc (gint64 t, + const gchar *format); +gchar *tpaw_time_to_string_local (gint64 t, + const gchar *format); +gchar *tpaw_time_to_string_relative (gint64 t); +gchar *tpaw_duration_to_string (guint seconds); + +G_END_DECLS + +#endif /* __TPAW_TIME_H__ */ + -- cgit v1.2.3