Changeset 459


Ignore:
Timestamp:
05/28/08 12:46:48 (12 years ago)
Author:
Eoin
Message:

Tweaks to shutdown code.

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/res/Halite.rc

    r444 r459  
    641641        HAL_WINDOW_SOCKETS_FAILED     "The socket infrastructure failed to start so Halite is forced to close. Please ensure no program is blocking Halites network access." 
    642642        HAL_SAVE_TEXT                                   "Save" 
     643        HAL_LISTVIEW_CONFIRMDELETE              "Are you sure you wish to delete all downloaded data?" 
    643644END 
    644645 
  • trunk/sln/HalWiX/HalWiX.wixproj

    r452 r459  
    2222            /> 
    2323        </Configurations> 
    24         <WixlibReferences> 
    25             <WixlibReference 
    26                 RelativePath="..\..\..\..\..\..\..\Program%20Files%20(x86)\Windows%20Installer%20XML\bin\sca.wixlib" 
    27             /> 
    28             <WixlibReference 
    29                 RelativePath="..\..\..\..\..\..\..\Program%20Files%20(x86)\Windows%20Installer%20XML\bin\wixca.wixlib" 
    30             /> 
    31             <WixlibReference 
    32                 RelativePath="..\..\..\..\..\..\..\Program%20Files%20(x86)\Windows%20Installer%20XML\bin\WixUI.wixlib" 
    33             /> 
    34         </WixlibReferences> 
     24        <WixlibReferences /> 
    3525        <Files> 
    3626            <File 
  • trunk/sln/HalWiX/Product.wxs

    r452 r459  
    4242 
    4343    <Icon Id="HaliteIcon" SourceFile='..\..\Release\Halite.exe' /> 
    44     <UIRef Id="WixUI_Mondo" /> 
    45     <UIRef Id="WixUI_ErrorProgressText" /> 
    4644 
    4745</Product> 
  • trunk/sln/libtorrent/libtorrent.vcproj

    r423 r459  
    4545                                Optimization="0" 
    4646                                AdditionalIncludeDirectories="&quot;$(SolutionDir)lib\libtorrent\include&quot;;&quot;$(SolutionDir)lib\libtorrent\zlib&quot;;&quot;$(SolutionDir)lib\Asio\include\&quot;;&quot;$(SolutionDir)lib\Openssl\inc&quot;" 
    47                                 PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0500;__USE_W32_SOCKETS;WIN32;_WIN32;_WINDOWS;_DEBUG;TORRENT_USE_BOOST_DATE_TIME;TORRENT_USE_OPENSSL;TORRENT_LOGGING;TORRENT_VERBOSE_LOGGING;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0" 
     47                                PreprocessorDefinitions="WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0500;__USE_W32_SOCKETS;WIN32;_WIN32;_WINDOWS;_DEBUG;TORRENT_USE_BOOST_DATE_TIME;TORRENT_USE_OPENSSL;TORRENT_LOGGING;TORRENT_VERBOSE_LOGGING;TORRENT_STORAGE_DEBUG;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SECURE_SCL=0;_HAS_ITERATOR_DEBUGGING=0" 
    4848                                MinimalRebuild="true" 
    4949                                ExceptionHandling="2" 
  • trunk/src/Halite.hpp

    r429 r459  
    9393                logDebug_(false), 
    9494#endif 
    95                 showMessage(true), 
     95                showMessage_(true), 
    9696                logToFile_(true), 
    9797                logListLen_(128), 
     
    113113        ar & BOOST_SERIALIZATION_NVP(oneInst); 
    114114                ar & BOOST_SERIALIZATION_NVP(logDebug_); 
    115         ar & BOOST_SERIALIZATION_NVP(showMessage); 
     115                ar & boost::serialization::make_nvp("showMessage", showMessage_); 
     116                 
    116117                ar & BOOST_SERIALIZATION_NVP(logToFile_); 
    117118                if (version > 1) 
     
    125126        const std::wstring& dll() { return dll_; } 
    126127        const int logListLen() { return logListLen_; } 
     128        bool showMessage() { return showMessage_; } 
    127129         
    128130        friend class GeneralOptions; 
     
    135137        bool oneInst; 
    136138        bool logDebug_; 
    137         bool showMessage; 
     139        bool showMessage_; 
    138140        bool logToFile_; 
    139141        size_t logListLen_; 
     
    142144Halite& halite(); 
    143145 
    144 BOOST_CLASS_VERSION(Halite, 2) 
     146BOOST_CLASS_VERSION(Halite, 3) 
  • trunk/src/HaliteListView.cpp

    r453 r459  
    188188LRESULT HaliteListViewCtrl::OnRemoveWipeFiles(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
    189189{ 
    190         std::for_each(manager().allSelected().begin(), manager().allSelected().end(), 
    191                 bind((void (hal::bit::*)(const std::wstring&))&hal::bit::removeTorrentWipeFiles,  
    192                         &hal::bittorrent(), _1)); 
    193          
    194         clearSelected(); 
     190        if(MessageBox(hal::app().res_wstr(HAL_LISTVIEW_CONFIRMDELETE).c_str(),  
     191                                hal::app().res_wstr(HAL_HALITE).c_str(), MB_YESNO) == IDYES) 
     192        { 
     193                std::for_each(manager().allSelected().begin(), manager().allSelected().end(), 
     194                        bind((void (hal::bit::*)(const std::wstring&))&hal::bit::removeTorrentWipeFiles,  
     195                                &hal::bittorrent(), _1)); 
     196                 
     197                clearSelected(); 
     198        } 
    195199        return 0; 
    196200} 
  • trunk/src/HaliteListView.hpp

    r447 r459  
    1111#define ID_LVM_RECHECK                                  HAL_MAIN_LISTVIEW_BEGIN + 2 
    1212#define ID_LVM_EDIT_FOLDERS                             HAL_MAIN_LISTVIEW_BEGIN + 3 
     13#define HAL_LISTVIEW_CONFIRMDELETE              HAL_MAIN_LISTVIEW_BEGIN + 4 
    1314 
    1415#ifndef RC_INVOKED 
  • trunk/src/HaliteWindow.cpp

    r445 r459  
    397397        } 
    398398} 
     399 
     400void HaliteWindow::ShutdownThread() 
     401{ 
     402        hal::bittorrent().closeAll(0); 
     403        hal::bittorrent().shutDownSession(); 
     404} 
    399405  
    400406void HaliteWindow::OnDestroy() 
     
    409415        hal::config().save(); 
    410416        save(); 
    411  
    412                 hal::bittorrent().stopEventReceiver(); 
    413                  
    414 //              if (halite().showMessage) 
    415                 { 
    416                         SplashDialog splDlg; 
    417                         splDlg.DoModal(); 
    418                 } 
    419 /*              else 
    420                 { 
    421                         hal::bittorrent().closeAll(bind(&num_active, _1)); 
    422                         hal::bittorrent().shutDownSession();             
    423                 } 
    424 */                               
    425                 halite().save(); 
    426                 hal::ini().save_data(); 
    427  
    428         PostQuitMessage(0); 
     417        halite().save(); 
     418        hal::ini().save_data(); 
     419 
     420        hal::bittorrent().stopEventReceiver(); 
     421         
     422        if (halite().showMessage()) 
     423        { 
     424                SplashDialog splDlg; 
     425                splDlg.DoModal(); 
     426        } 
     427        else 
     428        { 
     429                thread shutdown(bind(& HaliteWindow::ShutdownThread, this)); 
     430                shutdown.join(); 
     431        }                
     432 
     433        PostQuitMessage(0);      
    429434} 
    430435 
  • trunk/src/HaliteWindow.hpp

    r392 r459  
    192192 
    193193private: 
     194        void ShutdownThread(); 
     195 
    194196        // These two gotta be first!!! 
    195197        boost::signal<void (const hal::TorrentDetails& tD)> ui_update_signal_; 
  • trunk/src/SplashDialog.hpp

    r441 r459  
    5757         
    5858        BEGIN_DDX_MAP(CMainDlg) 
    59         DDX_CHECK(IDC_SPLASH_MSG, halite().showMessage) 
     59        DDX_CHECK(IDC_SPLASH_MSG, halite().showMessage_) 
    6060    END_DDX_MAP() 
    6161 
     
    105105        void SplashThread() 
    106106        { 
    107                 hal::bittorrent().closeAll(bind(&SplashDialog::ReportNumActive, this, _1)); 
     107                hal::bittorrent().closeAll(boost::optional<boost::function<void (int)> >(bind(&SplashDialog::ReportNumActive, this, _1))); 
    108108                 
    109109                SetDlgItemText(HAL_CSPLASH_NUM_ACT, hal::app().res_wstr(HAL_CSPLASH_SHUTDOWN_MSG).c_str()); 
  • trunk/src/halEvent.hpp

    r404 r459  
    306306{ 
    307307public: 
    308         EventInfo(std::wstring msg) : 
     308        template<typename T> 
     309        EventInfo(T msg) : 
    309310                EventDetail(Event::info, boost::posix_time::second_clock::universal_time(), Event::infoCode), 
    310                 msg_(msg) 
     311                msg_(to_wstr_shim(msg)) 
    311312        {} 
    312313         
  • trunk/src/halTorrent.cpp

    r457 r459  
    16051605} 
    16061606 
    1607 void bit::closeAll(report_num_active fn) 
     1607void bit::closeAll(boost::optional<report_num_active> fn) 
    16081608{ 
    16091609        try { 
     
    16341634                } 
    16351635                 
    1636                 fn(num_active); 
     1636                event().post(shared_ptr<EventDetail>(new EventInfo(wformat(L"%1% still active") % num_active))); 
     1637 
     1638                if (fn) (*fn)(num_active); 
    16371639                Sleep(200); 
    16381640        } 
     
    16441646        { 
    16451647                if ((*i).torrent->in_session()) 
    1646                 { 
    1647                         (*i).torrent->remove_from_session(); 
    1648                         (*i).torrent->write_resume_data(); 
    1649                 } 
     1648                        (*i).torrent->remove_from_session(true); 
    16501649        } 
    16511650         
  • trunk/src/halTorrent.hpp

    r457 r459  
    613613         
    614614        void resumeAll(); 
    615         void closeAll(report_num_active fn); 
     615        void closeAll(boost::optional<report_num_active> fn); 
    616616         
    617617        bool isTorrent(const std::string& filename); 
  • trunk/src/halTorrentInternal.hpp

    r452 r459  
    16501650        boost::tuple<size_t, size_t, size_t, size_t> connections = updatePeers();        
    16511651 
    1652         wstring wanted = lexical_cast<wstring>(statusMemory_.total_wanted); 
    1653         HAL_DEV_MSG(wformat(L"**** wanted: %1%") % wanted);      
    1654  
    16551652        return TorrentDetail_ptr(new TorrentDetail(name_, filename_, saveDirectory().string(), state, hal::from_utf8(statusMemory_.current_tracker),  
    16561653                std::pair<float, float>(statusMemory_.download_payload_rate, statusMemory_.upload_payload_rate), 
Note: See TracChangeset for help on using the changeset viewer.