Changeset 259


Ignore:
Timestamp:
08/18/07 19:35:44 (12 years ago)
Author:
Eoin
Message:

Overview Tab completely reworking.

Files:
12 edited

Legend:

Unmodified
Added
Removed
  • res/Halite.rc

    r256 r259  
    1818    GROUPBOX        "Tracker",IDC_GROUP_TRACKER,4,92,305,25 
    1919    CONTROL         "",TORRENTPROG,"msctls_progress32",WS_BORDER,10,77,291,8 
    20     LTEXT           "N/A",IDC_STATUS,10,28,175,8,SS_WORDELLIPSIS 
    21     LTEXT           "N/A",IDC_TRACKER,10,103,170,8,SS_WORDELLIPSIS 
    22     LTEXT           "N/A",IDC_NAME,10,16,175,8,SS_WORDELLIPSIS 
     20 
     21 
     22 /* RTEXT           "Name:",IDC_STATIC,10,16,40,8 
     23    RTEXT           "Tracker:",IDC_STATIC,10,28,40,8 
     24    RTEXT           "Status:",IDC_STATIC,10,27,40,8 
     25    RTEXT           "Time left:",IDC_STATIC,10,39,52,8*/ 
     26         
     27    LTEXT           "N/A",IDC_NAME_STATUS,10,16,170,8,SS_WORDELLIPSIS 
     28 // LTEXT           "N/A",IDC_SECOND,10,28,170,8,SS_WORDELLIPSIS 
     29    LTEXT           "N/A",IDC_TRANSFERED,10,40,170,8,SS_WORDELLIPSIS 
     30    LTEXT           "N/A",IDC_REMAINING,10,52,170,8,SS_WORDELLIPSIS 
     31    LTEXT           "N/A",IDC_RATE,10,64,170,8,SS_WORDELLIPSIS 
     32 
    2333    EDITTEXT        IDC_EDITTLU,267,46,34,12,ES_AUTOHSCROLL 
    24     EDITTEXT        IDC_EDITTLD,216,46,34,12,ES_AUTOHSCROLL 
    25     EDITTEXT        IDC_EDITNCD,216,22,34,12,ES_AUTOHSCROLL 
     34    EDITTEXT        IDC_EDITTLD,210,46,34,12,ES_AUTOHSCROLL 
     35    EDITTEXT        IDC_EDITNCD,210,22,34,12,ES_AUTOHSCROLL 
    2636    EDITTEXT        IDC_EDITNCU,267,22,34,12,ES_AUTOHSCROLL 
    27     LTEXT           "Connection limits:",IDC_NC,192,13,75,8 
    28     LTEXT           "Transfer rates (KB/s):",IDC_TL,192,37,75,8 
    29     RTEXT           "Total",IDC_NCD,192,25,18,8 
    30     RTEXT           "Up",IDC_NCU,251,25,12,8 
    31     RTEXT           "Up",IDC_TLU,252,49,11,8 
    32     RTEXT           "Down",IDC_TLD,192,49,20,8 
     37         
     38    LTEXT           "Torrent connection limits:",IDC_NC,185,13,115,8 
     39    LTEXT           "Torrent transfer rates (KB/s):",IDC_TL,185,37,115,8 
     40    RTEXT           "Total",IDC_NCD,182,25,25,8 
     41    RTEXT           "Up",IDC_NCU,245,25,20,8 
     42    RTEXT           "Up",IDC_TLU,245,49,20,8 
     43    RTEXT           "Down",IDC_TLD,182,49,25,8 
     44         
     45    LTEXT           "N/A",IDC_TRACKER,10,103,132,8,SS_WORDELLIPSIS 
    3346    LTEXT           "N/A",IDC_UPDATE,228,103,71,8,SS_WORDELLIPSIS 
    3447    RTEXT           "Update in:",IDC_UPDATESTAT,185,103,40,8 
    3548    EDITTEXT        IDC_EDITRATIO,267,60,34,12,ES_AUTOHSCROLL 
    36     LTEXT           "Downloaded %1%MB, Uploaded %2%MB, Ratio %3%.",IDC_TRANS_ETA,10,40,173,8,SS_WORDELLIPSIS 
    37     LTEXT           "Ratio (this session):",IDC_RATIOESTATIC,192,63,70,8,SS_WORDELLIPSIS 
    38     LTEXT           "This Session Downloaded %1%MB, Uploaded %2%MB",IDC_TRANS,10,51,173,8,SS_WORDELLIPSIS 
    39     LTEXT           "This Session Downloaded %1%MB, Uploaded %2%MB",IDC_TRANS_SES,10,63,173,8,SS_WORDELLIPSIS 
     49    LTEXT           "Ratio (this session):",IDC_RATIOESTATIC,182,63,70,8,SS_WORDELLIPSIS 
    4050END 
    4151 
     
    418428    HAL_COMPLETED_SUMMARY         "Completed %1$.2fMB of %2$.2fMB, ETA %3%." 
    419429    HAL_DOWNLOAD_SUMMARY          "This Session Downloaded %1$.2fMB, Uploaded %2$.2fMB, Ratio %3$.2f." 
    420     HAL_DOWNLOADT_SUMMARY         "Total Downloaded %1$.2fMB, Uploaded %2$.2fMB, Ratio %3$.2f." 
     430    HAL_DOWNLOADT_SUMMARY         "Downloaded %1$.2fMB, Uploaded %2$.2fMB, Ratio %3$.2f." 
     431    HAL_PAYLOAD_SUMMARY           "Total transfer including protocol overhead; %1$.2fMB down and %2$.2fMB up." 
     432        HAL_NAME_STATUS                           "Name: %1%, %2%." 
     433        HAL_SECOND                                        "" 
     434    HAL_TRANSFERED                                "Transfered (Overhead): %1$.2fMB (%2$.2fMB) Down, %3$.2fMB (%4$.2fMB) Up." 
     435    HAL_REMAINING                                 "Remaining: %1$.2fMB, ETA %2%." 
     436    HAL_RATE                                      "Downloading at %1$.2fkb/s, Uploading at %2$.2fkb/s, Ratio %3$.2f." 
    421437    HAL_DHT_ON                    "%1% DHT node(s)" 
    422438    HAL_DHT_OFF                   "DHT disabled" 
  • res/resource.h

    r255 r259  
    33#endif 
    44 
    5 #define HALITE_VERSION                                  0,2,9,255 
    6 #define HALITE_VERSION_STRING                   "v 0.2.9 dev 255" 
     5#define HALITE_VERSION                                  0,2,9,259 
     6#define HALITE_VERSION_STRING                   "v 0.2.9 dev 259" 
    77 
    88#define HALITE_LANGUAGE                                 10 
     
    246246#define ID_LVM_AUTOSORT                                 40096 
    247247#define IDR_BLANK_MENU                                  40097 
     248#define HAL_PAYLOAD_SUMMARY                             40098 
     249#define HAL_NAME_SUMMARY                                40099 
     250#define IDC_NAME_STATUS                                 40100 
     251#define IDC_SECOND                                              40101 
     252#define IDC_TRANSFERED                                  40102 
     253#define IDC_REMAINING                                   40103 
     254#define IDC_RATE                                                40104 
     255#define HAL_NAME_STATUS                                 40105 
     256#define HAL_SECOND                                              40106 
     257#define HAL_TRANSFERED                                  40107 
     258#define HAL_REMAINING                                   40108 
     259#define HAL_RATE                                                40109 
  • src/AdvHaliteDialog.hpp

    r255 r259  
    3131        typedef CDialogResize<AdvHaliteDialog> resizeClass; 
    3232        friend class resizeClass; 
     33         
    3334public: 
    3435        enum { IDD = IDD_ADVHALITEDLG }; 
  • src/HaliteDialog.cpp

    r258 r259  
    1212HaliteDialog::HaliteDialog(HaliteWindow& halWindow) : 
    1313                dialogBaseClass(halWindow) 
    14 {        
    15 //      load(); 
    16 } 
    17  
    18 void HaliteDialog::selectionChanged(const string& torrent_name) 
    19 {        
    20 #       if 0     
    21         pair<float, float> tranLimit(-1.0, -1.0); 
    22         pair<int, int> connLimit(-1, -1); 
    23          
    24         if (hal::bittorrent().isTorrent(torrent_name)) 
    25         { 
    26                 tranLimit = hal::bittorrent().getTorrentSpeed(torrent_name); 
    27                 connLimit = hal::bittorrent().getTorrentLimit(torrent_name); 
    28                  
    29                 if (!hal::bittorrent().isTorrentActive(torrent_name)) 
    30                         SetDlgItemText(BTNPAUSE, L"Resume"); 
    31                 else             
    32                         SetDlgItemText(BTNPAUSE, L"Pause"); 
    33                  
    34                 ::EnableWindow(GetDlgItem(BTNPAUSE), true); 
    35                 ::EnableWindow(GetDlgItem(BTNREANNOUNCE), true); 
    36                 ::EnableWindow(GetDlgItem(BTNREMOVE), true); 
    37                  
    38                 ::EnableWindow(GetDlgItem(IDC_EDITTLD), true); 
    39                 ::EnableWindow(GetDlgItem(IDC_EDITTLU), true); 
    40                 ::EnableWindow(GetDlgItem(IDC_EDITNCD), true); 
    41                 ::EnableWindow(GetDlgItem(IDC_EDITNCU), true); 
    42         } 
    43         else 
    44         { 
    45                 SetDlgItemText(IDC_NAME, L"N/A"); 
    46                 SetDlgItemText(IDC_TRACKER, L"N/A"); 
    47                 SetDlgItemText(IDC_STATUS, L"N/A"); 
    48                 SetDlgItemText(IDC_AVAIL, L"N/A"); 
    49                 SetDlgItemText(IDC_COMPLETE, L"N/A"); 
    50                  
    51                 SetDlgItemText(BTNPAUSE, L"Pause");              
    52                 m_prog.SetPos(0); 
    53                  
    54                 ::EnableWindow(GetDlgItem(BTNPAUSE), false); 
    55                 ::EnableWindow(GetDlgItem(BTNREANNOUNCE), false); 
    56                 ::EnableWindow(GetDlgItem(BTNREMOVE), false); 
    57                  
    58                 ::EnableWindow(GetDlgItem(IDC_EDITTLD), false); 
    59                 ::EnableWindow(GetDlgItem(IDC_EDITTLU), false); 
    60                 ::EnableWindow(GetDlgItem(IDC_EDITNCD), false); 
    61                 ::EnableWindow(GetDlgItem(IDC_EDITNCU), false); 
    62         } 
    63          
    64         NoConnDown = connLimit.first; 
    65         NoConnUp = connLimit.second; 
    66         TranLimitDown = tranLimit.first; 
    67         TranLimitUp = tranLimit.second; 
    68          
    69         DoDataExchange(false);   
    70         m_list.DeleteAllItems();         
    71         ui().update(); 
    72 #       endif 
    73 } 
    74  
    75 LRESULT HaliteDialog::onInitDialog(HWND, LPARAM) 
    76 { 
    77         dialogBaseClass::InitializeHalDialogBase(); 
     14{} 
     15 
     16LRESULT HaliteDialog::OnInitDialog(HWND, LPARAM) 
     17{ 
    7818        resizeClass::DlgResize_Init(false, true, WS_CLIPCHILDREN); 
    7919         
    80 {       m_prog.Attach(GetDlgItem(TORRENTPROG)); 
     20        m_prog.Attach(GetDlgItem(TORRENTPROG)); 
    8121        m_prog.SetRange(0, 100); 
    82 }        
     22         
    8323        m_list.SubclassWindow(GetDlgItem(LISTPEERS)); 
    8424         
     
    9737} 
    9838 
    99 void HaliteDialog::onClose() 
     39void HaliteDialog::OnClose() 
    10040{ 
    10141        saveStatus(); 
     
    10747} 
    10848 
    109 void HaliteDialog::onPause(UINT, int, HWND) 
    110 { 
    111         string torrentName = hal::to_utf8(hal::bittorrent().torrentDetails().selectedTorrent()->filename()); 
    112          
    113         if (!hal::bittorrent().isTorrentActive(torrentName)) 
    114         { 
    115                 SetDlgItemText(BTNPAUSE,L"Pause"); 
    116                 hal::bittorrent().resumeTorrent(torrentName); 
    117         } 
    118         else 
    119         { 
    120                 SetDlgItemText(BTNPAUSE,L"Resume"); 
    121                 hal::bittorrent().pauseTorrent(torrentName); 
    122         } 
    123          
    124         requestUiUpdate();       
    125 } 
    126  
    127 void HaliteDialog::onReannounce(UINT, int, HWND) 
    128 { 
    129 //      hal::event().post(boost::shared_ptr<hal::EventDetail>( 
    130 //              new hal::EventXmlException(hal::to_wstr("I'm an exception!"), hal::to_wstr("I'm a name!"))));  
    131  
    132 /*      hal::bittorrent().reannounceTorrent(selection_manager().selected()); 
    133 */ 
    134 } 
    135  
    136 void HaliteDialog::onRemove(UINT, int, HWND) 
    137 { 
    138         string torrentName = hal::to_utf8(hal::bittorrent().torrentDetails().selectedTorrent()->filename()); 
    139  
    140         hal::bittorrent().removeTorrent(torrentName); 
    141         torrentsList().clearFocused(); 
     49void HaliteDialog::OnPause(UINT, int, HWND) 
     50{ 
     51        if (hal::TorrentDetail_ptr torrent = hal::bittorrent().torrentDetails().selectedTorrent())  
     52        { 
     53                string torrentName = hal::to_utf8(torrent->filename()); 
     54                 
     55                if (!hal::bittorrent().isTorrentActive(torrentName)) 
     56                { 
     57                        SetDlgItemText(BTNPAUSE,L"Pause"); 
     58                        hal::bittorrent().resumeTorrent(torrentName); 
     59                } 
     60                else 
     61                { 
     62                        SetDlgItemText(BTNPAUSE,L"Resume"); 
     63                        hal::bittorrent().pauseTorrent(torrentName); 
     64                } 
     65                 
     66                requestUiUpdate(); 
     67        } 
     68} 
     69 
     70void HaliteDialog::OnReannounce(UINT, int, HWND) 
     71{ 
     72        if (hal::TorrentDetail_ptr torrent = hal::bittorrent().torrentDetails().selectedTorrent())  
     73                hal::bittorrent().reannounceTorrent(hal::to_utf8(torrent->filename())); 
     74} 
     75 
     76void HaliteDialog::OnRemove(UINT, int, HWND) 
     77{ 
     78        if (hal::TorrentDetail_ptr torrent = hal::bittorrent().torrentDetails().selectedTorrent())  
     79        { 
     80                string torrentName = hal::to_utf8(torrent->filename()); 
     81 
     82                hal::bittorrent().removeTorrent(torrentName); 
     83                torrentsList().clearFocused(); 
     84        } 
    14285} 
    14386 
     
    14689        DoDataExchange(true); 
    14790         
    148 /*      hal::bittorrent().setTorrentSpeed(selection_manager().selected(), TranLimitDown, TranLimitUp); 
    149         hal::bittorrent().setTorrentLimit(selection_manager().selected(), NoConnDown, NoConnUp); 
    150 */       
     91        if (hal::TorrentDetail_ptr torrent = hal::bittorrent().torrentDetails().selectedTorrent())  
     92        { 
     93                string torrentName = hal::to_utf8(torrent->filename()); 
     94                 
     95                hal::bittorrent().setTorrentSpeed(torrentName, TranLimitDown, TranLimitUp); 
     96                hal::bittorrent().setTorrentLimit(torrentName, NoConnDown, NoConnUp); 
     97        } 
     98         
    15199        return 0; 
    152100} 
     
    219167} 
    220168 
    221 void HaliteDialog::uiUpdate(const hal::TorrentDetails& tD)  
    222 {        
    223         if (tD.selectedTorrent())        
    224         { 
    225                 SetDlgItemText(IDC_NAME, tD.selectedTorrent()->filename().c_str()); 
    226                 SetDlgItemText(IDC_TRACKER, tD.selectedTorrent()->currentTracker().c_str()); 
    227                 SetDlgItemText(IDC_STATUS, tD.selectedTorrent()->state().c_str()); 
    228                 m_prog.SetPos(static_cast<int>(tD.selectedTorrent()->completion()*100)); 
    229                  
    230                 if (!tD.selectedTorrent()->estimatedTimeLeft().is_special()) 
    231                 { 
    232                         SetDlgItemText(IDC_AVAIL, 
    233                                 (hal::from_utf8(boost::posix_time::to_simple_string( 
    234                                         tD.selectedTorrent()->estimatedTimeLeft())).c_str())); 
    235                 } 
    236                 else 
    237                 { 
    238                         SetDlgItemText(IDC_AVAIL,L"∞");          
    239                 } 
    240                  
    241                 SetDlgItemText(IDC_COMPLETE, 
    242                         (wformat(L"%1$.2fmb of %2$.2fmb")  
    243                                 % (static_cast<float>(tD.selectedTorrent()->totalWantedDone())/(1024*1024)) 
    244                                 % (static_cast<float>(tD.selectedTorrent()->totalWanted())/(1024*1024)) 
    245                         ).str().c_str()); 
    246                  
    247                 m_list.uiUpdate(tD); 
     169void HaliteDialog::focusChanged(string& torrent_name)  
     170{ 
     171        pair<float, float> tranLimit(-1.0, -1.0); 
     172        pair<int, int> connLimit(-1, -1); 
     173         
     174        if (hal::bittorrent().isTorrent(torrent_name)) 
     175        { 
     176                tranLimit = hal::bittorrent().getTorrentSpeed(torrent_name); 
     177                connLimit = hal::bittorrent().getTorrentLimit(torrent_name); 
     178                 
     179                if (!hal::bittorrent().isTorrentActive(torrent_name)) 
     180                        SetDlgItemText(BTNPAUSE, L"Resume"); 
     181                else             
     182                        SetDlgItemText(BTNPAUSE, L"Pause"); 
     183                 
     184                ::EnableWindow(GetDlgItem(BTNPAUSE), true); 
     185                ::EnableWindow(GetDlgItem(BTNREANNOUNCE), true); 
     186                ::EnableWindow(GetDlgItem(BTNREMOVE), true); 
     187                 
     188                ::EnableWindow(GetDlgItem(IDC_EDITTLD), true); 
     189                ::EnableWindow(GetDlgItem(IDC_EDITTLU), true); 
     190                ::EnableWindow(GetDlgItem(IDC_EDITNCD), true); 
     191                ::EnableWindow(GetDlgItem(IDC_EDITNCU), true); 
    248192        } 
    249193        else 
    250194        { 
    251                  
    252 /*              SetDlgItemText(IDC_NAME, L"N/A"); 
     195                SetDlgItemText(IDC_NAME, L"N/A"); 
    253196                SetDlgItemText(IDC_TRACKER, L"N/A"); 
    254197                SetDlgItemText(IDC_STATUS, L"N/A"); 
     
    256199                SetDlgItemText(IDC_COMPLETE, L"N/A"); 
    257200                 
    258                 SetDlgItemText(BTNPAUSE, L"Pause"); 
     201                SetDlgItemText(BTNPAUSE, L"Pause");              
     202                m_prog.SetPos(0); 
    259203                 
    260204                ::EnableWindow(GetDlgItem(BTNPAUSE), false); 
     
    266210                ::EnableWindow(GetDlgItem(IDC_EDITNCD), false); 
    267211                ::EnableWindow(GetDlgItem(IDC_EDITNCU), false); 
    268                  
    269                 m_list.DeleteAllItems(); 
    270 */ 
    271         } 
    272 } 
    273  
    274 void HaliteDialog::updateDialog() 
    275 { 
    276 #       if 0 
    277  
    278         hal::TorrentDetail_ptr pTD = hal::bittorrent().getTorrentDetail_vec( 
    279                 selection_manager().selected()); 
    280          
    281         if (pTD)         
    282         { 
    283                 SetDlgItemText(IDC_NAME, pTD->filename().c_str()); 
    284                 SetDlgItemText(IDC_TRACKER, pTD->currentTracker().c_str()); 
    285                 SetDlgItemText(IDC_STATUS, pTD->state().c_str()); 
    286                 m_prog.SetPos(static_cast<int>(pTD->completion()*100)); 
    287                  
    288                 if (!pTD->estimatedTimeLeft().is_special()) 
     212        } 
     213         
     214        NoConnDown = connLimit.first; 
     215        NoConnUp = connLimit.second; 
     216        TranLimitDown = tranLimit.first; 
     217        TranLimitUp = tranLimit.second; 
     218                 
     219        m_list.clearAll(); 
     220                 
     221        DoDataExchange(false);   
     222} 
     223 
     224void HaliteDialog::uiUpdate(const hal::TorrentDetails& tD)  
     225{        
     226        pair<float, float> tranLimit(-1.0, -1.0); 
     227        pair<int, int> connLimit(-1, -1); 
     228         
     229        if (hal::TorrentDetail_ptr torrent = tD.selectedTorrent())       
     230        {        
     231                string torrent_name = hal::to_utf8(torrent->filename()); 
     232                 
     233                if (current_torrent_name_ != torrent_name) 
     234                {        
     235                        current_torrent_name_ = torrent_name; 
     236                        focusChanged(current_torrent_name_); 
     237                }        
     238                 
     239                SetDlgItemText(IDC_NAME, torrent->filename().c_str()); 
     240                SetDlgItemText(IDC_TRACKER, torrent->currentTracker().c_str()); 
     241                SetDlgItemText(IDC_STATUS, torrent->state().c_str()); 
     242                m_prog.SetPos(static_cast<int>(torrent->completion()*100)); 
     243                 
     244                if (!torrent->estimatedTimeLeft().is_special()) 
    289245                { 
    290246                        SetDlgItemText(IDC_AVAIL, 
    291                                 (hal::from_utf8(boost::posix_time::to_simple_string(pTD->estimatedTimeLeft())).c_str())); 
     247                                (hal::from_utf8(boost::posix_time::to_simple_string( 
     248                                        torrent->estimatedTimeLeft())).c_str())); 
    292249                } 
    293250                else 
     
    298255                SetDlgItemText(IDC_COMPLETE, 
    299256                        (wformat(L"%1$.2fmb of %2$.2fmb")  
    300                                 % (static_cast<float>(pTD->totalWantedDone())/(1024*1024)) 
    301                                 % (static_cast<float>(pTD->totalWanted())/(1024*1024)) 
     257                                % (static_cast<float>(torrent->totalWantedDone())/(1024*1024)) 
     258                                % (static_cast<float>(torrent->totalWanted())/(1024*1024)) 
    302259                        ).str().c_str()); 
    303260                 
    304                 hal::PeerDetails peerDetails; 
    305                 hal::bittorrent().getAllPeerDetails(selection_manager().selected(), peerDetails); 
    306                  
    307                 if (!peerDetails.empty()) 
    308                 { 
    309                         // Here we remove any peers no longer connected. 
    310                          
    311                         std::sort(peerDetails.begin(), peerDetails.end()); 
    312                          
    313                         for(int i = 0; i < m_list.GetItemCount(); /*nothing here*/) 
    314                         { 
    315                                 boost::array<wchar_t, MAX_PATH> ip_address; 
    316                                 m_list.GetItemText(i, 0, ip_address.c_array(), MAX_PATH); 
    317                                  
    318                                 hal::PeerDetail ip(ip_address.data()); 
    319                                 hal::PeerDetails::iterator iter =  
    320                                         std::lower_bound(peerDetails.begin(), peerDetails.end(), ip); 
    321                                  
    322                                 if (iter == peerDetails.end() || !((*iter) == ip)) 
    323                                         m_list.DeleteItem(i); 
    324                                 else 
    325                                         ++i; 
    326                         } 
    327                          
    328                         // And now here we add/update the connected peers 
    329                          
    330                         for (hal::PeerDetails::iterator i = peerDetails.begin();  
    331                                 i != peerDetails.end(); ++i) 
    332                         {                        
    333                                 LV_FINDINFO findInfo;  
    334                                 findInfo.flags = LVFI_STRING; 
    335                                 findInfo.psz = const_cast<LPTSTR>((*i).ipAddress.c_str()); 
    336                                  
    337                                 int itemPos = m_list.FindItem(&findInfo, -1); 
    338                                 if (itemPos < 0) 
    339                                         itemPos = m_list.AddItem(0, 0, (*i).ipAddress.c_str(), 0); 
    340                                  
    341                                 m_list.SetItemText(itemPos, 1, 
    342                                         (wformat(L"%1$.2fKB/s")  
    343                                                 % ((*i).speed.first/1024) 
    344                                         ).str().c_str());        
    345                                  
    346                                 m_list.SetItemText(itemPos, 2, 
    347                                         (wformat(L"%1$.2fKB/s")  
    348                                                 % ((*i).speed.second/1024) 
    349                                         ).str().c_str());        
    350                                  
    351                                 if ((*i).seed) 
    352                                         m_list.SetItemText(itemPos, 3, L"Seed"); 
    353                                  
    354                                 m_list.SetItemText(itemPos, 4, (*i).client.c_str()); 
    355                         }                        
    356                 } 
     261                m_list.uiUpdate(tD); 
    357262        } 
    358263        else 
    359         { 
    360                  
    361 /*              SetDlgItemText(IDC_NAME, L"N/A"); 
    362                 SetDlgItemText(IDC_TRACKER, L"N/A"); 
    363                 SetDlgItemText(IDC_STATUS, L"N/A"); 
    364                 SetDlgItemText(IDC_AVAIL, L"N/A"); 
    365                 SetDlgItemText(IDC_COMPLETE, L"N/A"); 
    366                  
    367                 SetDlgItemText(BTNPAUSE, L"Pause"); 
    368                  
    369                 ::EnableWindow(GetDlgItem(BTNPAUSE), false); 
    370                 ::EnableWindow(GetDlgItem(BTNREANNOUNCE), false); 
    371                 ::EnableWindow(GetDlgItem(BTNREMOVE), false); 
    372                  
    373                 ::EnableWindow(GetDlgItem(IDC_EDITTLD), false); 
    374                 ::EnableWindow(GetDlgItem(IDC_EDITTLU), false); 
    375                 ::EnableWindow(GetDlgItem(IDC_EDITNCD), false); 
    376                 ::EnableWindow(GetDlgItem(IDC_EDITNCU), false); 
    377                  
    378                 m_list.DeleteAllItems(); 
    379 */ 
    380         } 
    381 #       endif 
    382 } 
    383  
     264        {        
     265                if (current_torrent_name_ != "") 
     266                {        
     267                        current_torrent_name_ = ""; 
     268                        focusChanged(current_torrent_name_); 
     269                }        
     270        } 
     271} 
  • src/HaliteDialog.hpp

    r258 r259  
    161161 
    162162        BEGIN_MSG_MAP_EX(thisClass) 
    163                 MSG_WM_INITDIALOG(onInitDialog) 
    164                 MSG_WM_CLOSE(onClose) 
     163                MSG_WM_INITDIALOG(OnInitDialog) 
     164                MSG_WM_CLOSE(OnClose) 
    165165                COMMAND_RANGE_CODE_HANDLER_EX(IDC_EDITTLU, IDC_EDITNCU, EN_KILLFOCUS, OnEditKillFocus) 
    166166 
     
    168168                        if(PreTranslateMessage((LPMSG)lParam)) return TRUE; 
    169169 
    170                 COMMAND_ID_HANDLER_EX(BTNPAUSE, onPause) 
    171                 COMMAND_ID_HANDLER_EX(BTNREANNOUNCE, onReannounce) 
    172                 COMMAND_ID_HANDLER_EX(BTNREMOVE, onRemove) 
     170                COMMAND_ID_HANDLER_EX(BTNPAUSE, OnPause) 
     171                COMMAND_ID_HANDLER_EX(BTNREANNOUNCE, OnReannounce) 
     172                COMMAND_ID_HANDLER_EX(BTNREMOVE, OnRemove) 
    173173 
    174174        //      MSG_WM_CTLCOLORSTATIC(OnCltColor) 
     
    181181        DDX_EX_INT_POSITIVE_LIMIT(IDC_EDITNCD, NoConnDown, 2, true) 
    182182        DDX_EX_INT_POSITIVE_LIMIT(IDC_EDITNCU, NoConnUp, 2, true) 
    183         DDX_EX_FLOAT_POSITIVE(IDC_EDITTLD, TranLimitDown) 
    184         DDX_EX_FLOAT_POSITIVE(IDC_EDITTLU, TranLimitUp) 
     183        DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLD, TranLimitDown, 5, true) 
     184        DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLU, TranLimitUp, 5, true) 
    185185    END_DDX_MAP() 
    186186 
     
    213213        END_DLGRESIZE_MAP() 
    214214         
    215         void selectionChanged(const string& torrent_name); 
    216         void updateDialog(); 
    217215        void uiUpdate(const hal::TorrentDetails& allTorrents);  
     216        void focusChanged(string& torrent_name); 
    218217         
    219218protected: 
    220         LRESULT onInitDialog(HWND, LPARAM); 
    221         void onClose(); 
    222  
    223         void onPause(UINT, int, HWND); 
    224         void onReannounce(UINT, int, HWND); 
    225         void onRemove(UINT, int, HWND); 
     219        LRESULT OnInitDialog(HWND, LPARAM); 
     220        void OnClose(); 
     221 
     222        void OnPause(UINT, int, HWND); 
     223        void OnReannounce(UINT, int, HWND); 
     224        void OnRemove(UINT, int, HWND); 
    226225 
    227226        LRESULT OnEditKillFocus(UINT uCode, int nCtrlID, HWND hwndCtrl); 
     
    233232        CContainedWindow m_wndNCD; 
    234233        CProgressBarCtrl m_prog; 
     234         
     235        string current_torrent_name_; 
    235236 
    236237        int NoConnDown, NoConnUp; 
  • src/HaliteDialogBase.hpp

    r248 r259  
    2323         
    2424        void InitializeHalDialogBase() 
    25         {        
    26         //      ui_.attach(bind(&TBase::updateDialog, static_cast<TBase*>(this))); 
    27         //      selection_manager_.attach(bind(&TBase::selectionChanged, static_cast<TBase*>(this), _1)); 
    28         } 
     25        {} 
    2926         
    3027        void requestUiUpdate() 
     
    5047        } 
    5148         
    52 /*      void save() 
    53         { 
    54                 std::wstringstream xml_data; 
    55                  
    56                 boost::archive::xml_woarchive oxml(xml_data); 
    57                 T* pT = static_cast<T*>(this);   
    58                 oxml << boost::serialization::make_nvp(name_.c_str(), *pT); 
    59                  
    60                 adapter_.save_stream_data(xml_data); 
    61         } 
    62          
    63         void load() 
    64         { 
    65                 std::wstringstream xml_data;             
    66                 adapter_.load_stream_data(xml_data); 
    67                  
    68                 try  
    69                 { 
    70                  
    71                 boost::archive::xml_wiarchive ixml(xml_data);    
    72                  
    73                 T* pT = static_cast<T*>(this);   
    74                 ixml >> boost::serialization::make_nvp(name_.c_str(), *pT); 
    75                  
    76                 } 
    77                 catch (const std::exception& e) 
    78                 {                        
    79                         hal::event().post(boost::shared_ptr<hal::EventDetail>( 
    80                                 new hal::EventXmlException(hal::from_utf8(e.what()), hal::from_utf8(name_))));  
    81                 } 
    82         } 
    83 */       
    8449protected: 
    8550 
  • src/HaliteSortListViewCtrl.hpp

    r258 r259  
    348348                manager_(*this), 
    349349                updateLock_(0), 
    350                 autoSort_(false) 
     350                autoSort_(false), 
     351                descending_(false), 
     352                sortCol_(-1) 
    351353        {                
    352354                if (resMenu && TBase::LISTVIEW_ID_MENU) 
     
    496498                 
    497499                SetColumnOrderArray(listNames_.size(), &listOrder_[0]); 
     500                 
     501                m_bSortDescending = descending_; 
     502                if (sortCol_ >= 0 && sortCol_ < m_arrColSortType.GetSize()) 
     503                        SetSortColumn(sortCol_); 
    498504        } 
    499505         
     
    508514                 
    509515                GetColumnOrderArray(listNames_.size(), &listOrder_[0]); 
     516                 
     517                sortCol_ = GetSortColumn(); 
     518                descending_ = IsSortDescending();        
    510519        } 
    511520         
     
    583592                        ar & boost::serialization::make_nvp("autoSort", autoSort_); 
    584593                } 
     594                if (version >= 2) 
     595                { 
     596                        ar & boost::serialization::make_nvp("descending", descending_); 
     597                        ar & boost::serialization::make_nvp("sortCol", sortCol_); 
     598                } 
    585599    } 
    586600 
     
    690704        std::vector<bool> listVisible_; 
    691705        bool autoSort_; 
     706        bool descending_; 
     707        int sortCol_; 
    692708         
    693709        int updateLock_; 
     
    705721struct version< CHaliteSortListViewCtrl<TBase, adapterType, N> > 
    706722{ 
    707     typedef mpl::int_<1> type; 
     723    typedef mpl::int_<2> type; 
    708724    typedef mpl::integral_c_tag tag; 
    709725    BOOST_STATIC_CONSTANT(unsigned int, value = version::type::value);                                                              
  • src/advtabs/Peers.cpp

    r258 r259  
    8181} 
    8282 
    83 LRESULT AdvPeerDialog::onInitDialog(HWND, LPARAM) 
     83LRESULT AdvPeerDialog::OnInitDialog(HWND, LPARAM) 
    8484{        
    8585        peerList_.SubclassWindow(GetDlgItem(IDC_PEERLIST)); 
     
    9090} 
    9191 
    92 void AdvPeerDialog::onClose() 
     92void AdvPeerDialog::OnClose() 
    9393{ 
    9494        if(::IsWindow(m_hWnd))  
     
    9797        } 
    9898} 
    99  
  • src/advtabs/Peers.hpp

    r258 r259  
    5252public:  
    5353        enum {  
    54                 LISTVIEW_ID_MENU = IDR_LISTVIEW_MENU, 
     54                LISTVIEW_ID_MENU = 0, 
    5555                LISTVIEW_ID_COLUMNNAMES = HAL_DIALOGPEER_LISTVIEW_ADV, 
    56                 LISTVIEW_ID_COLUMNWIDTHS = HAL_DIALOGPEER_LISTVIEW_ADV_DEFAULTS 
     56                LISTVIEW_ID_COLUMNWIDTHS = 0 
    5757        }; 
    5858         
    59  
    6059        BEGIN_MSG_MAP_EX(thisClass) 
    6160                MSG_WM_DESTROY(OnDestroy) 
     
    160159 
    161160        BEGIN_MSG_MAP_EX(thisClass) 
    162                 MSG_WM_INITDIALOG(onInitDialog) 
    163                 MSG_WM_CLOSE(onClose) 
    164         //      MSG_WM_ERASEBKGND(OnEraseBkgnd) 
     161                MSG_WM_INITDIALOG(OnInitDialog) 
     162                MSG_WM_CLOSE(OnClose) 
    165163         
    166164                if (uMsg == WM_FORWARDMSG) 
     
    176174        END_DLGRESIZE_MAP() 
    177175 
    178         LRESULT onInitDialog(HWND, LPARAM); 
    179          
    180         LRESULT OnEraseBkgnd(HDC dc) 
    181         { 
    182                 return 1; 
    183         } 
    184                  
    185         void onClose(); 
    186  
    187         LRESULT OnEditKillFocus(UINT uCode, int nCtrlID, HWND hwndCtrl); 
     176        LRESULT OnInitDialog(HWND, LPARAM); 
     177        void OnClose(); 
    188178         
    189179        void uiUpdate(const hal::TorrentDetails& tD); 
  • src/advtabs/Torrent.cpp

    r246 r259  
    99 
    1010#include "Torrent.hpp" 
    11  
    12 void AdvTorrentDialog::selectionChanged(const string& torrent_name) 
    13 {        
    14         pair<float, float> tranLimit(-1.0, -1.0); 
    15         pair<int, int> connLimit(-1, -1); 
    16         float ratio = 0; 
    17  
    18 #       if 0     
    19         if (hal::bittorrent().isTorrent(torrent_name)) 
    20         { 
    21                 tranLimit = hal::bittorrent().getTorrentSpeed(torrent_name); 
    22                 connLimit = hal::bittorrent().getTorrentLimit(torrent_name); 
    23                  
    24                 ratio = hal::bittorrent().getTorrentRatio(torrent_name); 
    25                  
    26                 if (!hal::bittorrent().isTorrentActive(torrent_name)) 
    27                         SetDlgItemText(BTNPAUSE, L"Resume"); 
    28                 else             
    29                         SetDlgItemText(BTNPAUSE, L"Pause"); 
    30                  
    31                 ::EnableWindow(GetDlgItem(BTNPAUSE), true); 
    32                 ::EnableWindow(GetDlgItem(BTNREANNOUNCE), true); 
    33                 ::EnableWindow(GetDlgItem(BTNREMOVE), true); 
    34                  
    35                 ::EnableWindow(GetDlgItem(IDC_EDITTLD), true); 
    36                 ::EnableWindow(GetDlgItem(IDC_EDITTLU), true); 
    37                 ::EnableWindow(GetDlgItem(IDC_EDITNCD), true); 
    38                 ::EnableWindow(GetDlgItem(IDC_EDITNCU), true); 
    39                 ::EnableWindow(GetDlgItem(IDC_EDITRATIO), true); 
    40         } 
    41         else 
    42         { 
    43                 SetDlgItemText(IDC_NAME, L"N/A"); 
    44                 SetDlgItemText(IDC_TRACKER, L"N/A"); 
    45                 SetDlgItemText(IDC_STATUS, L"N/A"); 
    46                 SetDlgItemText(IDC_AVAIL, L"N/A"); 
    47                 SetDlgItemText(IDC_TRANS, L"N/A"); 
    48                 SetDlgItemText(IDC_COMPLETE, L"N/A"); 
    49                  
    50                 SetDlgItemText(BTNPAUSE, L"Pause");              
    51                 m_prog.SetPos(0); 
    52                  
    53                 ::EnableWindow(GetDlgItem(BTNPAUSE), false); 
    54                 ::EnableWindow(GetDlgItem(BTNREANNOUNCE), false); 
    55                 ::EnableWindow(GetDlgItem(BTNREMOVE), false); 
    56                  
    57                 ::EnableWindow(GetDlgItem(IDC_EDITTLD), false); 
    58                 ::EnableWindow(GetDlgItem(IDC_EDITTLU), false); 
    59                 ::EnableWindow(GetDlgItem(IDC_EDITNCD), false); 
    60                 ::EnableWindow(GetDlgItem(IDC_EDITNCU), false); 
    61                 ::EnableWindow(GetDlgItem(IDC_EDITRATIO), false); 
    62         } 
    63          
    64         NoConnDown = connLimit.first; 
    65         NoConnUp = connLimit.second; 
    66         TranLimitDown = tranLimit.first; 
    67         TranLimitUp = tranLimit.second; 
    68         Ratio = ratio; 
    69 #       endif    
    70  
    71         DoDataExchange(false);   
    72 //      ui().update(); 
    73 } 
    7411 
    7512LRESULT AdvTorrentDialog::onInitDialog(HWND, LPARAM) 
     
    10340        DoDataExchange(true); 
    10441         
    105 /*      hal::bittorrent().setTorrentSpeed(selection_manager().selected(), TranLimitDown, TranLimitUp); 
    106         hal::bittorrent().setTorrentLimit(selection_manager().selected(), NoConnDown, NoConnUp); 
    107         hal::bittorrent().setTorrentRatio(selection_manager().selected(), Ratio); 
    108         */ 
     42        if (hal::TorrentDetail_ptr torrent = hal::bittorrent().torrentDetails().selectedTorrent())  
     43        { 
     44                string torrentName = hal::to_utf8(torrent->filename()); 
     45                 
     46                hal::bittorrent().setTorrentSpeed(torrentName, TranLimitDown, TranLimitUp); 
     47                hal::bittorrent().setTorrentLimit(torrentName, NoConnDown, NoConnUp); 
     48                hal::bittorrent().setTorrentRatio(torrentName, Ratio); 
     49        } 
     50         
    10951        return 0; 
    11052} 
    11153 
    112 void AdvTorrentDialog::uiUpdate(const hal::TorrentDetails& tD) 
     54void AdvTorrentDialog::focusChanged(string& torrent_name)  
    11355{ 
    114         uiUpdateSingle(tD.selectedTorrent()); 
     56        pair<float, float> tranLimit(-1.0, -1.0); 
     57        pair<int, int> connLimit(-1, -1); 
     58        float ratio = 0; 
     59 
     60        if (hal::bittorrent().isTorrent(torrent_name)) 
     61        { 
     62                tranLimit = hal::bittorrent().getTorrentSpeed(torrent_name); 
     63                connLimit = hal::bittorrent().getTorrentLimit(torrent_name); 
     64                 
     65                ratio = hal::bittorrent().getTorrentRatio(torrent_name); 
     66                 
     67                ::EnableWindow(GetDlgItem(IDC_EDITTLD), true); 
     68                ::EnableWindow(GetDlgItem(IDC_EDITTLU), true); 
     69                ::EnableWindow(GetDlgItem(IDC_EDITNCD), true); 
     70                ::EnableWindow(GetDlgItem(IDC_EDITNCU), true); 
     71                ::EnableWindow(GetDlgItem(IDC_EDITRATIO), true); 
     72        } 
     73        else 
     74        { 
     75                SetDlgItemText(IDC_NAME_STATUS, L"N/A"); 
     76        //      SetDlgItemText(IDC_SECOND, L"N/A"); 
     77                SetDlgItemText(IDC_TRANSFERED, L"N/A"); 
     78                SetDlgItemText(IDC_REMAINING, L"N/A"); 
     79                SetDlgItemText(IDC_RATE, L"N/A"); 
     80                SetDlgItemText(IDC_TRACKER, L"N/A"); 
     81                SetDlgItemText(IDC_UPDATE, L"N/A"); 
     82                 
     83                m_prog.SetPos(0); 
     84                 
     85                ::EnableWindow(GetDlgItem(IDC_EDITTLD), false); 
     86                ::EnableWindow(GetDlgItem(IDC_EDITTLU), false); 
     87                ::EnableWindow(GetDlgItem(IDC_EDITNCD), false); 
     88                ::EnableWindow(GetDlgItem(IDC_EDITNCU), false); 
     89                ::EnableWindow(GetDlgItem(IDC_EDITRATIO), false); 
     90        } 
     91         
     92        NoConnDown = connLimit.first; 
     93        NoConnUp = connLimit.second; 
     94        TranLimitDown = tranLimit.first; 
     95        TranLimitUp = tranLimit.second; 
     96        Ratio = ratio; 
     97 
     98        DoDataExchange(false);   
    11599} 
    116100 
    117 void AdvTorrentDialog::uiUpdateMultiple(const hal::TorrentDetail_vec& torrents) 
    118 { 
     101void AdvTorrentDialog::uiUpdate(const hal::TorrentDetails& tD) 
     102{        
     103        if (hal::TorrentDetail_ptr torrent = tD.selectedTorrent())       
     104        {        
     105                string torrent_name = hal::to_utf8(torrent->filename()); 
     106                 
     107                if (current_torrent_name_ != torrent_name) 
     108                {        
     109                        current_torrent_name_ = torrent_name; 
     110                        focusChanged(current_torrent_name_); 
     111                } 
     112                 
     113                uiUpdateSingle(tD.selectedTorrent());    
     114        } 
     115        else 
     116        {        
     117                if (current_torrent_name_ != "") 
     118                {        
     119                        current_torrent_name_ = ""; 
     120                        focusChanged(current_torrent_name_); 
     121                }        
     122        } 
    119123} 
    120124 
     
    123127        if (torrent)     
    124128        { 
    125                 SetDlgItemText(IDC_NAME, torrent->filename().c_str()); 
     129/*              HAL_NAME_STATUS           "Name: %1%, %2%." 
     130                HAL_SECOND                        "" 
     131                HAL_TRANSFERED            "Transfered (Overhead): %1$.2fMB (%2$.2fMB) Down, %3$.2fMB (%4$.2fMB) Up." 
     132                HAL_REMAINING             "Remaining: %1$.2fMB, ETA %2%." 
     133                HAL_RATE                          "Downloading at %1$.2fkb/s, Uploading at %2$.2fkb/s, Ratio %3$.2f." 
     134*/       
     135 
     136                SetDlgItemInfo(IDC_NAME_STATUS,  
     137                        wformat(hal::app().res_wstr(HAL_NAME_STATUS))  
     138                                % torrent->filename() 
     139                                % torrent->state()); 
     140 
     141                SetDlgItemInfo(IDC_TRANSFERED, 
     142                        wformat(hal::app().res_wstr(HAL_TRANSFERED))  
     143                                % (static_cast<float>(torrent->totalPayloadDownloaded())/(1024*1024)) 
     144                                % (static_cast<float>(torrent->totalDownloaded() - torrent->totalPayloadDownloaded())/(1024*1024)) 
     145                                % (static_cast<float>(torrent->totalPayloadUploaded())/(1024*1024)) 
     146                                % (static_cast<float>(torrent->totalUploaded() - torrent->totalPayloadUploaded())/(1024*1024))); 
     147 
     148                wstring eta = L"∞";                      
     149                if (!torrent->estimatedTimeLeft().is_special()) 
     150                        eta = hal::from_utf8(boost::posix_time::to_simple_string(torrent->estimatedTimeLeft())); 
     151                         
     152                SetDlgItemInfo(IDC_REMAINING, 
     153                        wformat(hal::app().res_wstr(HAL_REMAINING)) 
     154                                % (static_cast<float>(torrent->totalWanted()-torrent->totalWantedDone())/(1024*1024)) 
     155                                % eta); 
     156 
     157                float ratio = (torrent->totalPayloadDownloaded())  
     158                        ? static_cast<float>(torrent->totalPayloadUploaded()) 
     159                                / static_cast<float>(torrent->totalPayloadDownloaded()) 
     160                        : 0; 
     161                         
     162                SetDlgItemInfo(IDC_RATE, 
     163                        wformat(hal::app().res_wstr(HAL_RATE)) 
     164                                % (torrent->speed().first/1024) 
     165                                % (torrent->speed().second/1024) 
     166                                % ratio);                
     167                 
     168                m_prog.SetPos(static_cast<int>(torrent->completion()*100));      
     169                 
    126170                SetDlgItemText(IDC_TRACKER, torrent->currentTracker().c_str()); 
    127                 SetDlgItemText(IDC_STATUS, torrent->state().c_str()); 
    128                 m_prog.SetPos(static_cast<int>(torrent->completion()*100));      
    129  
    130                 wstring eta = L"∞";      
    131171                 
    132                 if (!torrent->estimatedTimeLeft().is_special()) 
    133                 { 
    134                         eta = hal::from_utf8(boost::posix_time::to_simple_string(torrent->estimatedTimeLeft())); 
    135                 } 
    136                  
    137                 SetDlgItemText(IDC_TRANS_ETA, 
    138                         (wformat(hal::app().res_wstr(HAL_COMPLETED_SUMMARY))  
    139                                 % (static_cast<float>(torrent->totalWantedDone())/(1024*1024)) 
    140                                 % (static_cast<float>(torrent->totalWanted())/(1024*1024)) 
    141                                 % eta 
    142                         ).str().c_str()); 
    143                          
    144                 float ratio = (torrent->totalDownloaded())  
    145                         ? static_cast<float>(torrent->totalUploaded()) 
    146                                 / static_cast<float>(torrent->totalDownloaded()) 
    147                         : 0; 
    148                  
    149                 SetDlgItemInfo(IDC_TRANS, 
    150                         wformat(hal::app().res_wstr(HAL_DOWNLOADT_SUMMARY))  
    151                                 % (static_cast<float>(torrent->totalDownloaded())/(1024*1024)) 
    152                                 % (static_cast<float>(torrent->totalUploaded())/(1024*1024)) 
    153                                 % ratio);        
    154                          
    155172                if (!torrent->updateTrackerIn().is_special()) 
    156173                { 
     
    158175                                (hal::from_utf8(boost::posix_time::to_simple_string(torrent->updateTrackerIn())).c_str())); 
    159176                } 
    160                 else SetDlgItemText(IDC_UPDATE, L"N/A");         
     177                else SetDlgItemText(IDC_UPDATE, L"N/A");                 
    161178        } 
    162179} 
    163180 
     181void AdvTorrentDialog::uiUpdateMultiple(const hal::TorrentDetail_vec& torrents) 
     182{} 
     183 
    164184void AdvTorrentDialog::uiUpdateNone() 
    165 { 
    166 } 
    167  
    168 void AdvTorrentDialog::updateDialog() 
    169 { 
    170 #       if 0 
    171         hal::TorrentDetail_ptr pTD = hal::bittorrent().getTorrentDetail_vec( 
    172                 selection_manager().selected()); 
    173          
    174         if (pTD)         
    175         { 
    176                 SetDlgItemText(IDC_NAME, pTD->filename().c_str()); 
    177                 SetDlgItemText(IDC_TRACKER, pTD->currentTracker().c_str()); 
    178                 SetDlgItemText(IDC_STATUS, pTD->state().c_str()); 
    179                 m_prog.SetPos(static_cast<int>(pTD->completion()*100)); 
    180                  
    181                 if (!pTD->estimatedTimeLeft().is_special()) 
    182                 { 
    183                         SetDlgItemText(IDC_ETA, 
    184                                 (hal::from_utf8(boost::posix_time::to_simple_string(pTD->estimatedTimeLeft())).c_str())); 
    185                 } 
    186                 else SetDlgItemText(IDC_ETA,L"∞"); 
    187                  
    188 /*              SetDlgItemText(IDC_COMPLETE, 
    189                         (wformat(L"%1$.2fmb of %2$.2fmb")  
    190                                 % (static_cast<float>(pTD->totalWantedDone())/(1024*1024)) 
    191                                 % (static_cast<float>(pTD->totalWanted())/(1024*1024)) 
    192                         ).str().c_str()); 
    193 */                       
    194                 float ratio = (pTD->totalWantedDone())  
    195                         ? static_cast<float>(pTD->totalUploaded()) 
    196                                 / static_cast<float>(pTD->totalWantedDone()) 
    197                         : 0; 
    198                  
    199                 SetDlgItemText(IDC_TRANS, 
    200                         (wformat(hal::app().res_wstr(HAL_DOWNLOAD_SUMMARY))  
    201                                 % (static_cast<float>(pTD->totalWantedDone())/(1024*1024)) 
    202                                 % (static_cast<float>(pTD->totalUploaded())/(1024*1024)) 
    203                                 % (ratio) 
    204                         ).str().c_str());        
    205                          
    206                 if (!pTD->updateTrackerIn().is_special()) 
    207                 { 
    208                         SetDlgItemText(IDC_UPDATE,       
    209                                 (hal::from_utf8(boost::posix_time::to_simple_string(pTD->updateTrackerIn())).c_str())); 
    210                 } 
    211                 else SetDlgItemText(IDC_UPDATE, L"N/A");                 
    212         } 
    213 #       endif 
    214 } 
     185{} 
  • src/advtabs/Torrent.hpp

    r256 r259  
    5151        DDX_EX_INT_POSITIVE_LIMIT(IDC_EDITNCD, NoConnDown, 2, true) 
    5252        DDX_EX_INT_POSITIVE_LIMIT(IDC_EDITNCU, NoConnUp, 2, true) 
    53         DDX_EX_FLOAT_POSITIVE(IDC_EDITTLD, TranLimitDown) 
    54         DDX_EX_FLOAT_POSITIVE(IDC_EDITTLU, TranLimitUp) 
     53        DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLD, TranLimitDown, 5, true) 
     54        DDX_EX_INT_FLOAT_LIMIT(IDC_EDITTLU, TranLimitUp, 5, true) 
    5555        DDX_EX_INT_FLOAT_LIMIT(IDC_EDITRATIO, Ratio, 1, true) 
    5656    END_DDX_MAP() 
     
    8080                DLGRESIZE_CONTROL(TORRENTPROG, (DLSZ_SIZE_X)) 
    8181 
    82                 DLGRESIZE_CONTROL(IDC_NAME, (DLSZ_SIZE_X)) 
     82                DLGRESIZE_CONTROL(IDC_NAME_STATUS, (DLSZ_SIZE_X)) 
     83//              DLGRESIZE_CONTROL(IDC_SECOND, (DLSZ_SIZE_X)) 
     84                DLGRESIZE_CONTROL(IDC_TRANSFERED, (DLSZ_SIZE_X)) 
     85                DLGRESIZE_CONTROL(IDC_REMAINING, (DLSZ_SIZE_X)) 
     86                DLGRESIZE_CONTROL(IDC_RATE, (DLSZ_SIZE_X)) 
     87                 
    8388                DLGRESIZE_CONTROL(IDC_TRACKER, (DLSZ_SIZE_X)) 
    84                 DLGRESIZE_CONTROL(IDC_STATUS, (DLSZ_SIZE_X)) 
    85                 DLGRESIZE_CONTROL(IDC_TRANS, (DLSZ_SIZE_X)) 
    86                 DLGRESIZE_CONTROL(IDC_TRANS_SES, (DLSZ_SIZE_X)) 
    87                 DLGRESIZE_CONTROL(IDC_TRANS_ETA, (DLSZ_SIZE_X)) 
    88  
    8989        END_DLGRESIZE_MAP() 
    9090 
     
    9494        LRESULT OnEditKillFocus(UINT uCode, int nCtrlID, HWND hwndCtrl); 
    9595 
    96         void selectionChanged(const string& torrent_name); 
    97         void updateDialog(); 
    9896        void uiUpdate(const hal::TorrentDetails& tD); 
    9997        void uiUpdateMultiple(const hal::TorrentDetail_vec& torrents); 
    10098        void uiUpdateSingle(const hal::TorrentDetail_ptr& torrent); 
    10199        void uiUpdateNone(); 
     100        void focusChanged(string& torrent_name); 
    102101 
    103102protected: 
     
    107106        float TranLimitDown, TranLimitUp; 
    108107        float Ratio; 
     108         
     109        string current_torrent_name_; 
    109110}; 
  • src/halTorrent.cpp

    r257 r259  
    11581158        if (peerInfo.flags & lbt::peer_info::supports_extensions) 
    11591159                status_vec.push_back(app().res_wstr(HAL_PEER_SUPPORT_EXTENSIONS));       
    1160         if (peerInfo.flags & lbt::peer_info::local_connection) 
    1161                 status_vec.push_back(app().res_wstr(HAL_PEER_LOCAL_CONNECTION));                 
     1160//      if (peerInfo.flags & lbt::peer_info::local_connection)                                          // Not sure whats up here? 
     1161//              status_vec.push_back(app().res_wstr(HAL_PEER_LOCAL_CONNECTION));                 
    11621162        if (peerInfo.flags & lbt::peer_info::handshake) 
    11631163                status_vec.push_back(app().res_wstr(HAL_PEER_HANDSHAKE));                
Note: See TracChangeset for help on using the changeset viewer.