Changeset 453


Ignore:
Timestamp:
05/21/08 08:11:55 (12 years ago)
Author:
Eoin
Message:

Tracker Login details switched to properties.

Location:
trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/HaliteListView.cpp

    r447 r453  
    238238        HAL_DEV_MSG(L"OnEditFolders"); 
    239239 
    240         hal::bit::torrent t = hal::bittorrent().get(manager_.selected()); 
    241  
    242         wstring saveDirectory = static_cast<wpath>(t.save_directory).native_file_string(); 
    243         wstring moveToDirectory = static_cast<wpath>(t.move_to_directory).native_file_string(); 
    244  
    245         bool useMoveTo = (L"" != moveToDirectory); 
    246         bool disableSaveDir = !t.in_session; 
    247  
    248         HaliteListViewAdjustDlg addTorrent(hal::app().res_wstr(HAL_ADDT_TITLE), saveDirectory, moveToDirectory,  
    249                 useMoveTo, disableSaveDir);      
    250          
    251         if (IDOK == addTorrent.DoModal()) 
    252         { 
    253                 if (!disableSaveDir) t.save_directory = saveDirectory; 
    254  
    255                 if (useMoveTo) 
    256                         t.move_to_directory = moveToDirectory; 
    257                 else 
    258                         t.move_to_directory = L""; 
     240        if (hal::bit::torrent t = hal::bittorrent().get(manager_.selected())) 
     241        { 
     242                wstring saveDirectory = static_cast<wpath>(t.save_directory).native_file_string(); 
     243                wstring moveToDirectory = static_cast<wpath>(t.move_to_directory).native_file_string(); 
     244 
     245                bool useMoveTo = (L"" != moveToDirectory); 
     246                bool disableSaveDir = !t.in_session; 
     247 
     248                HaliteListViewAdjustDlg addTorrent(hal::app().res_wstr(HAL_ADDT_TITLE), saveDirectory, moveToDirectory,  
     249                        useMoveTo, disableSaveDir);      
     250                 
     251                if (IDOK == addTorrent.DoModal()) 
     252                { 
     253                        if (!disableSaveDir) t.save_directory = saveDirectory; 
     254 
     255                        if (useMoveTo) 
     256                                t.move_to_directory = moveToDirectory; 
     257                        else 
     258                                t.move_to_directory = L""; 
     259                } 
    259260        } 
    260261 
  • trunk/src/advtabs/Tracker.cpp

    r429 r453  
    3333} 
    3434 
    35 void AdvTrackerDialog::setLoginUiState(const string& torrent_name) 
     35void AdvTrackerDialog::setLoginUiState() 
    3636{ 
    3737        if (username_ == L"") 
     
    5959{ 
    6060        DoDataExchange(true); 
    61          
    62         string torrent_name;     
    63         if (hal::bittorrent().torrentDetails().focusedTorrent()) 
    64                 torrent_name = hal::to_utf8(hal::bittorrent().torrentDetails().focusedTorrent()->name()); 
    65          
    66         setLoginUiState(torrent_name); 
    67         hal::bittorrent().setTorrentLogin(torrent_name, username_, password_); 
     61                 
     62        setLoginUiState(); 
     63 
     64        if (hal::bit::torrent t = hal::bittorrent().get(focusedTorrent())) 
     65                t.tracker_login = make_pair(username_, password_); 
    6866         
    6967        return 0; 
     
    7674                ::EnableWindow(GetDlgItem(IDC_TRACKER_LOGINCHECK), true); 
    7775                ::EnableWindow(GetDlgItem(IDC_TRACKERLIST), true); 
    78                  
    79                 std::pair<wstring, wstring> details =  
    80                         hal::bittorrent().getTorrentLogin(pT->name()); 
     76 
     77                std::pair<wstring, wstring> details = hal::bittorrent().get(pT).tracker_login; 
    8178                 
    8279                username_ = details.first; 
     
    9592                         
    9693        ::EnableWindow(GetDlgItem(IDC_TRACKER_APPLY), false);    
    97         setLoginUiState(current_torrent_name_); 
     94        setLoginUiState(); 
    9895 
    9996        DoDataExchange(false); 
     
    144141                password_ = L""; 
    145142                 
    146                 if (hal::bittorrent().torrentDetails().focusedTorrent()) 
    147                         hal::bittorrent().setTorrentLogin( 
    148                                 hal::to_utf8(hal::bittorrent().torrentDetails().focusedTorrent()->name()), 
    149                                 username_, password_); 
     143                if (hal::bit::torrent t = hal::bittorrent().get(focusedTorrent())) 
     144                        t.tracker_login = make_pair(username_, password_); 
    150145                 
    151146                DoDataExchange(false);           
     
    159154        HAL_DEV_MSG(wformat(L"Apply Tracker Login User: %1%, Pass: %2%") % username_ % password_ ); 
    160155 
    161         if (hal::bittorrent().torrentDetails().focusedTorrent()) 
    162                 hal::bittorrent().setTorrentLogin(focusedTorrent()->name(), username_, password_); 
     156        if (hal::bit::torrent t = hal::bittorrent().get(focusedTorrent())) 
     157                t.tracker_login = make_pair(username_, password_); 
    163158} 
    164159 
  • trunk/src/advtabs/Tracker.hpp

    r403 r453  
    9090        void onReset(UINT, int, HWND); 
    9191 
    92         void setLoginUiState(const string& torrent_name);        
     92        void setLoginUiState();  
    9393        void uiUpdate(const hal::TorrentDetails& tD); 
    9494        void focusChanged(const hal::TorrentDetail_ptr pT); 
  • trunk/src/halTorrent.cpp

    r447 r453  
    18301830        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(filename, "reannounceTorrent") 
    18311831} 
    1832  
     1832/* 
    18331833void bit::setTorrentLogin(const std::string& filename, std::wstring username, std::wstring password) 
    18341834{ 
     
    18601860        return std::make_pair(L"", L""); 
    18611861} 
    1862  
     1862*/ 
    18631863void bit_impl::removalThread(torrent_internal_ptr pIT, bool wipeFiles) 
    18641864{ 
     
    20072007} 
    20082008 
     2009bit::torrent::torrent() 
     2010{} 
    20092011 
    20102012bit::torrent::torrent(boost::shared_ptr<torrent_internal> p) : 
     
    20122014{} 
    20132015 
     2016bool bit::torrent::is_open() const 
     2017{ 
     2018        return ptr; 
     2019} 
     2020 
    20142021bit::torrent::exec_around_ptr::proxy::proxy(torrent_internal* t) :  
    20152022        t_(t), 
     
    20822089         
    20832090        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(L"Me", "torrent::set_move_to_directory") 
     2091} 
     2092 
     2093std::pair<wstring, wstring> bit::torrent::get_tracker_login() const 
     2094{ 
     2095        try { 
     2096         
     2097        return ptr->getTrackerLogin(); 
     2098         
     2099        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(L"Me", "get_tracker_login") 
     2100         
     2101        return std::make_pair(L"!!! exception thrown !!!", L"!!! exception thrown !!!"); 
     2102} 
     2103 
     2104void bit::torrent::set_tracker_login(const std::pair<wstring, wstring>& p) 
     2105{ 
     2106        try { 
     2107         
     2108        ptr->setTrackerLogin(p.first, p.second); 
     2109         
     2110        } HAL_GENERIC_TORRENT_EXCEPTION_CATCH(L"Me", "torrent::set_tracker_login") 
    20842111} 
    20852112 
  • trunk/src/halTorrent.hpp

    r441 r453  
    3333 
    3434#include <stlsoft/properties/method_properties.hpp> 
     35#include <stlsoft/util/operator_bool_adaptor.hpp> 
     36 
    3537 
    3638#include <asio/ip/tcp.hpp> 
     
    410412typedef boost::function<bool (size_t, std::wstring)> progress_callback; 
    411413typedef boost::function<void (int)> report_num_active; 
     414typedef std::pair<wstring, wstring> wstring_pair; 
    412415 
    413416class bit_impl; 
     
    418421public:  
    419422 
    420         class torrent 
     423        class null_torrent : public std::exception 
     424        { 
     425        public: 
     426                null_torrent() {}                
     427                virtual ~null_torrent() throw () {} 
     428        }; 
     429 
     430        class torrent : public stlsoft::operator_bool_adaptor<torrent> 
    421431        { 
    422432                typedef torrent class_type; 
     
    443453                        }; 
    444454 
     455                        exec_around_ptr() {} 
    445456                        exec_around_ptr(boost::shared_ptr<torrent_internal> p) : ptr(p) {} 
    446457 
    447458                        proxy operator->() const 
    448459                        { 
     460                                if (!ptr) 
     461                                        throw null_torrent(); 
     462 
    449463                                return proxy(&(*ptr)); 
    450464                        } 
     465 
     466                        operator bool() const { return ptr; } 
    451467 
    452468                private: 
     
    454470                }; 
    455471 
     472                torrent(); 
    456473                torrent(boost::shared_ptr<torrent_internal> p); 
    457474 
     
    463480                wpath get_move_to_directory() const; 
    464481                void set_move_to_directory(const wpath&); 
     482 
     483                std::pair<wstring, wstring> get_tracker_login() const; 
     484                void set_tracker_login(const std::pair<wstring, wstring>&); 
    465485 
    466486                bool get_is_active() const; 
     
    476496                        get_move_to_directory, set_move_to_directory, move_to_directory); 
    477497 
     498                STLSOFT_METHOD_PROPERTY_GETSET_EXTERNAL(wstring_pair, const wstring_pair&,  
     499                        class_type, get_tracker_login, set_tracker_login, tracker_login); 
     500 
    478501                STLSOFT_METHOD_PROPERTY_GET_EXTERNAL(bool, class_type,  
    479502                        get_is_active, is_active); 
     
    481504                        get_in_session, in_session); 
    482505 
     506                bool is_open() const; 
     507 
    483508        private: 
    484509                exec_around_ptr ptr; 
     
    502527                return get_wstr(to_wstr_shim(t)); 
    503528        } 
     529         
     530        template<> 
     531        torrent get(const hal::TorrentDetail_ptr t) 
     532        { 
     533                if (t)  
     534                        return get_wstr(t->name()); 
     535                else 
     536                        return torrent(); 
     537        }        
    504538 
    505539        torrent get_wstr(const std::wstring& filename); 
     
    578612        void removeTorrentWipeFiles(const std::wstring&  filename); 
    579613         
    580         void setTorrentLogin(const std::string& filename, std::wstring username, std::wstring password); 
    581         void setTorrentLogin(const std::wstring& filename, std::wstring username, std::wstring password); 
    582         std::pair<std::wstring, std::wstring> getTorrentLogin(const std::string& filename); 
    583         std::pair<std::wstring, std::wstring> getTorrentLogin(const std::wstring&  filename); 
    584          
    585614        void setTorrentLimit(const std::string& filename, int maxConn, int maxUpload); 
    586615        void setTorrentLimit(const std::wstring& filename, int maxConn, int maxUpload); 
Note: See TracChangeset for help on using the changeset viewer.