Changeset 2490


Ignore:
Timestamp:
Jul 25, 2007, 5:37:12 AM (15 years ago)
Author:
charles
Message:

"open torrent file" now works.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wx/xmission.cc

    r2483 r2490  
    4848#include "torrent-list.h"
    4949
     50/***
     51****
     52***/
     53
     54namespace
     55{
     56    int bestDecimal( double num ) {
     57        if ( num < 10 ) return 2;
     58        if ( num < 100 ) return 1;
     59        return 0;
     60    }
     61
     62    wxString toWxStr( const char * s )
     63    {
     64        return wxString( s, wxConvUTF8 );
     65    }
     66
     67    std::string toStr( const wxString& xstr )
     68    {
     69        return std::string( xstr.mb_str( *wxConvCurrent ) );
     70    }
     71
     72    wxString getReadableSize( uint64_t size )
     73    {
     74        int i;
     75        static const char *sizestrs[] = { "B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB" };
     76        for ( i=0; size>>10; ++i ) size = size>>10;
     77        char buf[512];
     78        snprintf( buf, sizeof(buf), "%.*f %s", bestDecimal(size), (double)size, sizestrs[i] );
     79        return toWxStr( buf );
     80    }
     81
     82    wxString getReadableSize( float f )
     83    {
     84        return getReadableSize( (uint64_t)f );
     85    }
     86
     87    wxString getReadableSpeed( float f )
     88    {
     89        wxString xstr = getReadableSize(f);
     90        xstr += _T("/s");
     91        return xstr;
     92    }
     93}
     94
     95/***
     96****
     97***/
     98
    5099class MyApp : public wxApp
    51100{
     
    55104namespace
    56105{
     106    const char * destination = "/home/charles/torrents";
     107
    57108    tr_handle_t * handle = NULL;
    58109
     
    72123    void OnRecheck( wxCommandEvent& );
    73124    void OnTimer( wxTimerEvent& );
    74     void OnItemSelected( wxListEvent& );
     125    void OnFilterSelected( wxListEvent& );
    75126    virtual void OnTorrentListSelectionChanged( TorrentListCtrl*, const std::set<tr_torrent_t*>& );
    76127
    77128private:
    78129    void RefreshFilterCounts( );
     130    void ApplyCurrentFilter( );
    79131
    80132protected:
     
    90142    torrents_v myTorrents;
    91143    torrents_v mySelectedTorrents;
     144    int myFilter;
    92145
    93146private:
     
    111164
    112165BEGIN_EVENT_TABLE(MyFrame, wxFrame)
    113     EVT_LIST_ITEM_SELECTED( ID_Filter, MyFrame::OnItemSelected )
     166    EVT_LIST_ITEM_SELECTED( ID_Filter, MyFrame::OnFilterSelected )
    114167    EVT_MENU( wxID_REFRESH, MyFrame::OnRecheck )
    115168END_EVENT_TABLE()
     
    135188        for( size_t i=0; i<nPaths; ++i )
    136189        {
    137             const wxString& w = paths[i];
    138             std::cerr << w.ToAscii() << std::endl;
     190            const std::string filename = toStr( paths[i] );
     191            tr_torrent_t * tor = tr_torrentInit( handle,
     192                                                 filename.c_str(),
     193                                                 destination,
     194                                                 0, NULL );
     195            if( tor )
     196                myTorrents.push_back( tor );
    139197        }
     198        ApplyCurrentFilter( );
     199
    140200        myConfig->Write( key, w->GetDirectory() );
    141201    }
     
    166226****
    167227***/
    168 
    169 namespace
    170 {
    171     int bestDecimal( double num ) {
    172         if ( num < 10 ) return 2;
    173         if ( num < 100 ) return 1;
    174         return 0;
    175     }
    176 
    177     wxString toWxStr( const char * s )
    178     {
    179         return wxString( s, wxConvUTF8 );
    180     }
    181 
    182     wxString getReadableSize( uint64_t size )
    183     {
    184         int i;
    185         static const char *sizestrs[] = { "B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB" };
    186         for ( i=0; size>>10; ++i ) size = size>>10;
    187         char buf[512];
    188         snprintf( buf, sizeof(buf), "%.*f %s", bestDecimal(size), (double)size, sizestrs[i] );
    189         return toWxStr( buf );
    190     }
    191 
    192     wxString getReadableSize( float f )
    193     {
    194         return getReadableSize( (uint64_t)f );
    195     }
    196 
    197     wxString getReadableSpeed( float f )
    198     {
    199         wxString xstr = getReadableSize(f);
    200         xstr += _T("/s");
    201         return xstr;
    202     }
    203 }
    204228
    205229void
     
    217241
    218242void
    219 MyFrame :: OnItemSelected( wxListEvent& event )
    220 {
    221     const int item = event.GetIndex ();
     243MyFrame :: ApplyCurrentFilter( )
     244{
    222245    torrents_v tmp( myTorrents );
    223     TorrentFilter :: RemoveFailures( item, tmp );
     246    TorrentFilter :: RemoveFailures( myFilter, tmp );
    224247    myTorrentList->Assign( tmp );
     248}
     249
     250void
     251MyFrame :: OnFilterSelected( wxListEvent& event )
     252{
     253    myFilter = event.GetIndex( );
     254    ApplyCurrentFilter( );
    225255}
    226256
     
    271301    myPulseTimer( this, ID_Pulse ),
    272302    myLogoIcon( transmission_xpm ),
    273     myTrayIconIcon( systray_xpm )
     303    myTrayIconIcon( systray_xpm ),
     304    myFilter( TorrentFilter::SHOW_ALL )
    274305{
    275306    /**
     
    392423
    393424    const int flags = TR_FLAG_PAUSED;
    394     const char * destination = "/home/charles/torrents";
    395425    int count = 0;
    396426    tr_torrent_t ** torrents = tr_loadTorrents ( handle, destination, flags, &count );
Note: See TracChangeset for help on using the changeset viewer.