Ejemplo n.º 1
0
static void
onOpenURLResponse (GtkDialog * dialog, int response, gpointer user_data)
{
  bool handled = false;

  if (response == GTK_RESPONSE_ACCEPT)
    {
      GtkWidget * e = GTK_WIDGET (g_object_get_data (G_OBJECT (dialog), "url-entry"));
      char * url = g_strdup (gtk_entry_get_text (GTK_ENTRY (e)));
      g_strstrip (url);

      if (url)
        {
          handled = gtr_core_add_from_url (user_data, url);
          if (!handled)
            gtr_unrecognized_url_dialog (GTK_WIDGET (dialog), url);
          g_free (url);
        }
    }
  else if (response == GTK_RESPONSE_CANCEL)
    {
      handled = TRUE;
    }

  if (handled)
    gtk_widget_destroy (GTK_WIDGET (dialog));
}
Ejemplo n.º 2
0
static void
onOpenURLResponse( GtkDialog * dialog, int response, gpointer user_data )
{
    gboolean destroy = TRUE;

    if( response == GTK_RESPONSE_ACCEPT )
    {
        GtkWidget * e = GTK_WIDGET( g_object_get_data( G_OBJECT( dialog ), "url-entry" ) );
        char * url = g_strdup( gtk_entry_get_text( GTK_ENTRY( e ) ) );
        g_strstrip( url );

        if( url && *url )
        {
            TrCore * core = user_data;

            if( gtr_is_supported_url( url ) || gtr_is_magnet_link( url )
                                            || gtr_is_hex_hashcode( url ) )
            {
                tr_core_add_from_url( core, url );
            }
            else
            {
                gtr_unrecognized_url_dialog( GTK_WIDGET( dialog ), url );
                destroy = FALSE;
            }
        }

        g_free( url );
    }

    if( destroy )
        gtk_widget_destroy( GTK_WIDGET( dialog ) );
}