Changeset 10852


Ignore:
Timestamp:
Jun 25, 2010, 5:40:55 PM (13 years ago)
Author:
charles
Message:

(trunk gtk) #3348 "Add URL doesn't warn upon corrupt torrents" -- fixed.

Location:
trunk/gtk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/tr-core.c

    r10829 r10852  
    10191019    TrCore * core;
    10201020    tr_ctor * ctor;
    1021     GtkDialog * dialog;
     1021    char * url;
     1022    char * error;
     1023    int response_code;
    10221024};
    10231025
     
    10261028{
    10271029    struct url_dialog_data * data = vdata;
    1028     tr_core_add_ctor( data->core, data->ctor );
     1030
     1031    if( data->response_code != 200 )
     1032    {
     1033        gtr_http_failure_dialog( NULL, data->url, data->response_code );
     1034    }
     1035    else
     1036    {
     1037        const gboolean doPrompt = pref_flag_get( PREF_KEY_OPTIONS_PROMPT );
     1038        const gboolean doNotify = FALSE;
     1039        const int err = add_ctor( data->core, data->ctor, doPrompt, doNotify );
     1040
     1041        if( err == TR_PARSE_ERR )
     1042            tr_core_errsig( data->core, TR_PARSE_ERR, data->url );
     1043
     1044        tr_core_torrents_added( data->core );
     1045    }
     1046
     1047    /* cleanup */
     1048    g_free( data->url );
    10291049    g_free( data );
    10301050    return FALSE;
     
    10321052
    10331053static void
    1034 onURLDone( tr_session       * session,
    1035            long               response_code UNUSED,
    1036            const void       * response,
    1037            size_t             response_byte_count,
    1038            void             * vdata )
     1054onURLDone( tr_session   * session,
     1055           long           response_code,
     1056           const void   * response,
     1057           size_t         response_byte_count,
     1058           void         * vdata )
    10391059{
    10401060    struct url_dialog_data * data = vdata;
    1041     tr_ctor * ctor = tr_ctorNew( session );
    1042 
    1043     /* FIME: error dialog */
    1044 
    1045     if( tr_ctorSetMetainfo( ctor, response, response_byte_count ) )
    1046     {
    1047         tr_ctorFree( ctor );
    1048         g_free( data );
    1049     }
    1050     else /* move the work back to the gtk thread */
    1051     {
    1052         data->ctor = ctor;
    1053         gtr_idle_add( onURLDoneIdle, data );
    1054     }
     1061
     1062    data->response_code = response_code;
     1063    data->ctor = tr_ctorNew( session );
     1064    tr_core_apply_defaults( data->ctor );
     1065    tr_ctorSetMetainfo( data->ctor, response, response_byte_count );
     1066
     1067    gtr_idle_add( onURLDoneIdle, data );
    10551068}
    10561069
     
    10851098        struct url_dialog_data * data = g_new( struct url_dialog_data, 1 );
    10861099        data->core = core;
     1100        data->url = g_strdup( url );
    10871101        tr_webRun( session, url, NULL, onURLDone, data );
    10881102    }
  • trunk/gtk/tr-torrent.c

    r10706 r10852  
    157157completenessChangedCallback( tr_torrent       * tor,
    158158                             tr_completeness    completeness,
     159                             tr_bool            wasRunning,
    159160                             void *             user_data )
    160161{
    161     if( ( completeness != TR_LEECH ) && ( tr_torrentStat( tor )->sizeWhenDone != 0 ) )
     162    if( wasRunning && ( completeness != TR_LEECH ) && ( tr_torrentStat( tor )->sizeWhenDone != 0 ) )
    162163        gtr_idle_add( notifyInMainThread, user_data );
    163164}
  • trunk/gtk/util.c

    r10828 r10852  
    3434#include <libtransmission/transmission.h> /* TR_RATIO_NA, TR_RATIO_INF */
    3535#include <libtransmission/utils.h> /* tr_inf */
     36#include <libtransmission/web.h> /* tr_webResponseStr() */
    3637#include <libtransmission/version.h> /* tr_inf */
    3738
     
    805806
    806807void
     808gtr_http_failure_dialog( GtkWidget * parent, const char * url, long response_code )
     809{
     810    GtkWindow * window = getWindow( parent );
     811
     812    GtkWidget * w = gtk_message_dialog_new( window, 0,
     813                                            GTK_MESSAGE_ERROR,
     814                                            GTK_BUTTONS_CLOSE,
     815                                            _( "Error opening \"%s\"" ), url );
     816
     817    gtk_message_dialog_format_secondary_text( GTK_MESSAGE_DIALOG( w ),
     818                                              _( "Server returned \"%1$ld %2$s\"" ),
     819                                              response_code,
     820                                              tr_webGetResponseStr( response_code ) );
     821
     822    g_signal_connect_swapped( w, "response", G_CALLBACK( gtk_widget_destroy ), w );
     823    gtk_widget_show( w );
     824}
     825
     826void
    807827gtr_unrecognized_url_dialog( GtkWidget * parent, const char * url )
    808828{
  • trunk/gtk/util.h

    r10822 r10852  
    157157void gtr_unrecognized_url_dialog( GtkWidget * parent, const char * url );
    158158
     159void gtr_http_failure_dialog( GtkWidget * parent, const char * url, long response_code );
    159160
    160161void addTorrentErrorDialog( GtkWidget  * window_or_child,
Note: See TracChangeset for help on using the changeset viewer.