Example #1
0
static gchar *
file_utils_uri_to_utf8_basename (const gchar *uri)
{
    gchar *filename;
    gchar *basename = NULL;

    g_return_val_if_fail (uri != NULL, NULL);

    filename = file_utils_uri_to_utf8_filename (uri);

    if (strstr (filename, G_DIR_SEPARATOR_S))
    {
        basename = g_path_get_basename (filename);
    }
    else if (strstr (filename, "://"))
    {
        basename = strrchr (uri, '/');

        if (basename)
            basename = g_strdup (basename + 1);
    }

    if (basename)
    {
        g_free (filename);
        return basename;
    }

    return filename;
}
Example #2
0
static gboolean
gimp_display_shell_close_time_changed (GimpMessageBox *box)
{
  GimpImage   *image       = g_object_get_data (G_OBJECT (box), "gimp-image");
  gint         dirty_time  = gimp_image_get_dirty_time (image);
  gchar       *time_text   = NULL;
  gchar       *export_text = NULL;

  if (dirty_time)
    {
      gint hours   = 0;
      gint minutes = 0;

      gimp_time_since (dirty_time, &hours, &minutes);

      if (hours > 0)
        {
          if (hours > 1 || minutes == 0)
            {
              time_text =
                g_strdup_printf (ngettext ("If you don't save the image, "
                                           "changes from the last hour "
                                           "will be lost.",
                                           "If you don't save the image, "
                                           "changes from the last %d "
                                           "hours will be lost.",
                                           hours), hours);
            }
          else
            {
              time_text =
                g_strdup_printf (ngettext ("If you don't save the image, "
                                           "changes from the last hour "
                                           "and %d minute will be lost.",
                                           "If you don't save the image, "
                                           "changes from the last hour "
                                           "and %d minutes will be lost.",
                                           minutes), minutes);
            }
        }
      else
        {
          time_text =
            g_strdup_printf (ngettext ("If you don't save the image, "
                                       "changes from the last minute "
                                       "will be lost.",
                                       "If you don't save the image, "
                                       "changes from the last %d "
                                       "minutes will be lost.",
                                       minutes), minutes);
        }
    }

  if (! gimp_image_is_export_dirty (image))
    {
      const gchar *uri;
      gchar       *filename;

      uri = gimp_image_get_exported_uri (image);
      if (! uri)
        uri = gimp_image_get_imported_uri (image);

      filename = file_utils_uri_to_utf8_filename (uri);

      export_text = g_strdup_printf (_("The image has been exported to '%s'."),
                                     filename);

      g_free (filename);
    }

  if (time_text && export_text)
    gimp_message_box_set_text (box, "%s\n\n%s", time_text, export_text);
  else if (time_text || export_text)
    gimp_message_box_set_text (box, "%s", time_text ? time_text : export_text);
  else
    gimp_message_box_set_text (box, "%s", time_text);

  g_free (time_text);
  g_free (export_text);

  return TRUE;
}