Changeset 319


Ignore:
Timestamp:
10/17/07 16:32:36 (13 years ago)
Author:
Eoin
Message:

File selection dialog improved.

Location:
src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/Halite.cpp

    r317 r319  
    55//          http://www.boost.org/LICENSE_1_0.txt) 
    66 
    7 #define HALITE_GUID L"HALITE-{E3A8BF7D-962F-476E-886B-FECEDD2F0FC7}-dev" 
    8 #define WMU_ARE_YOU_ME_STRING  L"WMU_ARE_YOU_ME_HALITE-{E3A8BF7D-962F-476E-886B-FECEDD2F0FC7}-dev" 
     7#define HALITE_GUID L"HALITE-{E3A8BF7D-962F-476E-886B-FECEDD2F0FC7}" 
     8#define WMU_ARE_YOU_ME_STRING  L"WMU_ARE_YOU_ME_HALITE-{E3A8BF7D-962F-476E-886B-FECEDD2F0FC7}" 
    99#pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 
    1010 
  • src/HaliteDialogBase.hpp

    r317 r319  
    2626                connection_ = haliteWindow.connectUiUpdate(bind(&thisClass::handleUiUpdate, this, _1)); 
    2727        } 
    28  
     28         
    2929        BEGIN_MSG_MAP_EX(thisClass) 
    3030                MSG_WM_SHOWWINDOW(OnShow) 
     
    5151        {} 
    5252         
     53        HaliteListViewCtrl& torrentsList()  
     54        {  
     55                return haliteWindow_.torrentsList();  
     56        } 
     57         
    5358        void requestUiUpdate() 
    5459        { 
     
    5661        } 
    5762         
    58         HaliteListViewCtrl& torrentsList()  
    59         {  
    60                 return haliteWindow_.torrentsList();  
    61         } 
    62          
    63         void uiUpdate(const hal::TorrentDetails& tD) 
    64         {}       
     63        #define logical_xor !=0==! 
    6564         
    6665        void handleUiUpdate(const hal::TorrentDetails& tD) 
    6766        { 
    6867                TBase* pT = static_cast<TBase*>(this); 
    69                 wstring torrent_name = L""; 
    7068                 
    71                 if (hal::TorrentDetail_ptr torrent = tD.focusedTorrent())        
    72                         torrent_name = torrent->name(); 
     69                hal::TorrentDetail_ptr focused = tD.focusedTorrent(); 
    7370                 
    74                 if (current_torrent_name_ != torrent_name) 
    75                 {        
    76                         current_torrent_name_ = torrent_name; 
    77                          
    78                         pT->focusChanged(tD.focusedTorrent()); 
    79                 } 
     71                if ((focusedTorrent_ logical_xor focused) || 
     72                                (focused && focusedTorrent_->name() != focused->name())) 
     73                        pT->focusChanged(focusedTorrent_ = focused); 
     74                else 
     75                        focusedTorrent_ = focused; 
    8076         
    8177                pT->uiUpdate(tD); 
     78                focusedTorrent_.reset(); 
    8279        } 
    8380 
     81        void uiUpdate(const hal::TorrentDetails& tD) 
     82        {}       
     83         
    8484        void focusChanged(const hal::TorrentDetail_ptr pT) 
    8585        {} 
     86         
     87        const hal::TorrentDetail_ptr focusedTorrent() { return focusedTorrent_; } 
    8688         
    8789        template<typename T> 
     
    9597         
    9698protected: 
    97         wstring current_torrent_name_; 
     99//      wstring current_torrent_name_; 
     100        hal::TorrentDetail_ptr focusedTorrent_; 
    98101 
    99102private: 
  • src/advtabs/Files.cpp

    r317 r319  
    105105        hal::FileDetails fileDetails; 
    106106         
    107 //      foreach (const hal::TorrentDetail_ptr torrent, tD.selectedTorrents()) 
    108107        if (hal::TorrentDetail_ptr torrent = hal::bittorrent().torrentDetails().focusedTorrent()) 
    109108        { 
     
    234233void AdvFilesDialog::uiUpdate(const hal::TorrentDetails& tD) 
    235234{ 
    236         if (fileLinks_.empty()) return; 
     235        if (fileLinks_.empty() || !focusedTorrent()) return; 
    237236         
    238237        TryUpdateLock<FileListView::listClass> lock(list_); 
    239238        if (lock)  
    240239        {        
    241                 const hal::TorrentDetail_ptr pT = tD.focusedTorrent(); 
    242                 if (pT->fileDetails().size() != fileLinks_.size()) return; 
     240        //      const hal::TorrentDetail_ptr pT = tD.focusedTorrent(); 
     241                if (focusedTorrent()->fileDetails().size() != fileLinks_.size()) return; 
    243242                 
    244243                // Wipe details not present 
     
    254253                        if (iter == range_.second || !(FileLinkNamesEqual((*iter), file))) 
    255254                        { 
    256 /*                              if (iter == range_.second) 
    257                                         hal::event().post(shared_ptr<hal::EventDetail>(new hal::EventDebug(hal::Event::info, (wformat(L"Deleting %1%") % file.filename).str().c_str()))); 
    258                                 else 
    259                                         hal::event().post(shared_ptr<hal::EventDetail>(new hal::EventDebug(hal::Event::info, (wformat(L"Deleting %1% != %2%") % file.filename % (*iter).filename).str().c_str()))); 
    260         */                       
    261255                                list_.DeleteItem(i); 
    262256                        } 
     
    272266                        i != e; ++i) 
    273267                { 
    274                         hal::FileDetail fileD = pT->fileDetails()[(*i).order()]; 
     268                        hal::FileDetail fileD = focusedTorrent()->fileDetails()[(*i).order()]; 
    275269                         
    276270                        LV_FINDINFO findInfo;  
  • src/halTorrent.hpp

    r316 r319  
    247247}; 
    248248 
    249 typedef shared_ptr<TorrentDetail> TorrentDetail_ptr; 
     249typedef boost::shared_ptr<TorrentDetail> TorrentDetail_ptr; 
     250typedef boost::scoped_ptr<TorrentDetail> TorrentDetail_sptr; 
     251typedef boost::weak_ptr<TorrentDetail> TorrentDetail_wptr; 
    250252typedef std::vector<TorrentDetail_ptr> TorrentDetail_vec; 
    251253typedef std::map<std::wstring, TorrentDetail_ptr> TorrentDetail_map; 
Note: See TracChangeset for help on using the changeset viewer.