Changeset 7255


Ignore:
Timestamp:
Dec 3, 2008, 6:01:38 AM (12 years ago)
Author:
charles
Message:

(gtk) #1409: "Duplicate Torrent" error message should be more helpful

Location:
trunk/gtk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/main.c

    r7252 r7255  
    948948    GtkWidget * w;
    949949
    950     for( l = *files; l; l = l->next )
    951         g_string_append_printf( s, "%s\n", (const char*)l->data );
     950    if( g_slist_length( *files ) > 1 ) {
     951        for( l=*files; l!=NULL; l=l->next )
     952            g_string_append_printf( s, "\xE2\x88\x99 %s\n", (const char*)l->data );
     953    } else {
     954        for( l=*files; l!=NULL; l=l->next )
     955            g_string_append_printf( s, "%s\n", (const char*)l->data );
     956    }
    952957    w = gtk_message_dialog_new( window,
    953958                                GTK_DIALOG_DESTROY_WITH_PARENT,
     
    973978        flushAddTorrentErrors( GTK_WINDOW( cbdata->wind ),
    974979                               ngettext( "Couldn't add corrupt torrent",
    975                                         "Couldn't add corrupt torrents",
    976                                         g_slist_length( cbdata->errqueue ) ),
     980                                         "Couldn't add corrupt torrents",
     981                                         g_slist_length( cbdata->errqueue ) ),
    977982                               &cbdata->errqueue );
    978983
     
    980985        flushAddTorrentErrors( GTK_WINDOW( cbdata->wind ),
    981986                               ngettext( "Couldn't add duplicate torrent",
    982                                         "Couldn't add duplicate torrents",
    983                                         g_slist_length( cbdata->dupqueue ) ),
     987                                         "Couldn't add duplicate torrents",
     988                                         g_slist_length( cbdata->dupqueue ) ),
    984989                               &cbdata->dupqueue );
    985990}
     
    10011006
    10021007        case TR_EDUPLICATE:
    1003             c->dupqueue =
    1004                 g_slist_append( c->dupqueue, g_path_get_basename( msg ) );
     1008            c->dupqueue = g_slist_append( c->dupqueue, g_strdup( msg ) );
    10051009            break;
    10061010
  • trunk/gtk/tr-core.c

    r7069 r7255  
    859859    if( filename && session )
    860860    {
    861         int       err;
    862         tr_ctor * ctor = tr_ctorNew( session );
     861        tr_ctor * ctor;
     862
     863        ctor = tr_ctorNew( session );
    863864        tr_core_apply_defaults( ctor );
    864865        tr_ctorSetPaused( ctor, TR_FORCE, !doStart );
     866
    865867        if( tr_ctorSetMetainfoFromFile( ctor, filename ) )
    866868        {
     
    868870            tr_ctorFree( ctor );
    869871        }
    870         else if( ( err = tr_torrentParse( session, ctor, NULL ) ) )
    871         {
    872             /* don't complain about .torrent files in the watch directory
    873                that have already been added... that gets annoying, and we
    874                don't want to nag about cleaning up the watch dir */
    875             const gboolean quiet = ( err == TR_EDUPLICATE )
    876                                 && ( core->priv->adding_from_watch_dir );
    877             if( !quiet )
    878                 tr_core_errsig( core, err, filename );
    879 
    880             tr_ctorFree( ctor );
    881         }
    882         else if( doPrompt )
    883             g_signal_emit( core, TR_CORE_GET_CLASS(
    884                                core )->promptsig, 0, ctor );
    885872        else
    886873        {
    887             tr_torrent * tor = tr_torrentNew( session, ctor, &err );
    888             if( err )
    889                 tr_core_errsig( core, err, filename );
    890             else
    891                 tr_core_add_torrent( core, tr_torrent_new_preexisting( tor ) );
     874            tr_info inf;
     875            int err = tr_torrentParse( session, ctor, &inf );
     876
     877            switch( err )
     878            {
     879                case TR_EINVALID:
     880                    tr_core_errsig( core, err, filename );
     881                    break;
     882
     883                case TR_EDUPLICATE:
     884                    /* don't complain about .torrent files in the watch directory
     885                     * that have already been added... that gets annoying and we
     886                     * don't want to be naggign users to clean up their watch dirs */
     887                    if( !core->priv->adding_from_watch_dir )
     888                        tr_core_errsig( core, err, inf.name );
     889                    tr_metainfoFree( &inf );
     890                    break;
     891
     892                default:
     893                    if( doPrompt )
     894                        g_signal_emit( core, TR_CORE_GET_CLASS( core )->promptsig, 0, ctor );
     895                    else {
     896                        tr_torrent * tor = tr_torrentNew( session, ctor, &err );
     897                        if( err )
     898                            tr_core_errsig( core, err, filename );
     899                        else
     900                            tr_core_add_torrent( core, tr_torrent_new_preexisting( tor ) );
     901                    }
     902                    tr_metainfoFree( &inf );
     903                    break;
     904            }
    892905        }
    893906    }
     
    901914{
    902915    add_filename( core, filename,
    903                  pref_flag_get( PREF_KEY_START ),
    904                  pref_flag_get( PREF_KEY_OPTIONS_PROMPT ) );
     916                  pref_flag_get( PREF_KEY_START ),
     917                  pref_flag_get( PREF_KEY_OPTIONS_PROMPT ) );
    905918    *success = TRUE;
    906919    return TRUE;
Note: See TracChangeset for help on using the changeset viewer.