Changeset 100


Ignore:
Timestamp:
11/08/06 13:13:34 (14 years ago)
Author:
Eoin
Message:

Fixed error when exiting with tray menu.

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • Halite.pnps

    r92 r100  
    1 <pd><ViewState><e p="Halite" x="true"></e><e p="Halite\res" x="true"></e><e p="Halite\src" x="true"></e><e p="Halite\src\ini" x="true"></e></ViewState></pd> 
     1<pd><ViewState><e p="Halite" x="true"></e><e p="Halite\res" x="true"></e><e p="Halite\src" x="true"></e><e p="Halite\src\ini" x="false"></e></ViewState></pd> 
  • res/Halite.rc

    r99 r100  
    178178    PUSHBUTTON      "Remove",BTNREMOVE,262,35,51,14 
    179179    RTEXT           "Name:",IDC_STATIC,8,3,30,8 
    180     LTEXT           "N/A",IDC_AVAIL,40,39,36,8 
     180    LTEXT           "N/A",IDC_AVAIL,40,39,36,8,SS_ENDELLIPSIS 
    181181    RTEXT           "Status:",IDC_STATIC,8,27,30,8 
    182182    RTEXT           "Available:",IDC_STATIC,2,39,36,8 
    183183    RTEXT           "Tracker:",IDC_STATIC,8,15,30,8 
    184     LTEXT           "N/A",IDC_STATUS,40,27,136,8 
    185     LTEXT           "N/A",IDC_TRACKER,40,15,140,8 
    186     LTEXT           "N/A",IDC_NAME,40,3,136,8 
     184    LTEXT           "N/A",IDC_STATUS,40,27,136,8,SS_ENDELLIPSIS 
     185    LTEXT           "N/A",IDC_TRACKER,40,15,136,8,SS_PATHELLIPSIS 
     186    LTEXT           "N/A",IDC_NAME,40,3,136,10,SS_ENDELLIPSIS 
    187187    CONTROL         "",LISTPEERS,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,4,64,309,6 
    188188    EDITTEXT        IDC_EDITTLU,229,36,27,12,ES_AUTOHSCROLL 
     
    197197    RTEXT           "D",IDC_TLD,179,39,8,8 
    198198    RTEXT           "Completed:",IDC_STATIC,75,39,39,8 
    199     LTEXT           "N/A",IDC_COMPLETE,116,39,62,8 
     199    LTEXT           "N/A",IDC_COMPLETE,116,39,59,8,SS_PATHELLIPSIS 
    200200    GROUPBOX        "",IDC_DETAILS_GROUP,1,-4,315,77,0,WS_EX_TRANSPARENT 
    201201END 
  • src/HaliteWindow.cpp

    r97 r100  
    4949                halite::xmlRpc().bindHost(INI().remoteConfig().port); 
    5050        } 
    51          
    5251 
    5352        RECT rc; GetClientRect(&rc); 
     
    190189{ 
    191190    halite::bittorrent().addTorrent(path(halite::wcstombs(lpszPath), boost::filesystem::native)); 
     191 
     192        updateUI(); 
    192193} 
    193194 
     
    204205void HaliteWindow::OnSize(UINT type, CSize) 
    205206{ 
    206         SetMsgHandled(false); 
    207          
    208207        if (type == SIZE_MINIMIZED) 
    209208        { 
     
    212211        } 
    213212        else 
    214         { 
    215213                GetWindowRect(INI().windowConfig().rect); 
    216         } 
     214         
     215        SetMsgHandled(false); 
    217216}        
    218217 
    219218void HaliteWindow::OnMove(CSize) 
    220219{ 
    221         SetMsgHandled(false); 
    222          
    223         GetWindowRect(INI().windowConfig().rect); 
     220        WINDOWPLACEMENT wnd = { sizeof(WINDOWPLACEMENT ) }; 
     221        GetWindowPlacement(&wnd); 
     222         
     223        if (wnd.showCmd != SW_SHOWMINIMIZED) 
     224                GetWindowRect(INI().windowConfig().rect); 
     225 
     226        SetMsgHandled(false);    
    224227} 
    225228 
     
    249252        } 
    250253        updateUI(); 
    251                  
    252         return 0; 
    253 }        
     254         
     255        return 0; 
     256         
     257} 
     258LRESULT HaliteWindow::OnFileNew(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
     259{ 
     260        CSSFileDialog dlgOpen(TRUE, NULL, NULL, OFN_HIDEREADONLY, L"Torrents (*.*)|*.torrent|", m_hWnd); 
     261 
     262        if (dlgOpen.DoModal() == IDOK)  
     263        { 
     264                wstring filename = dlgOpen.m_ofn.lpstrFile; 
     265        //      halite::bittorrent().addTorrent(path(halite::wcstombs(filename),boost::filesystem::native)); 
     266        } 
     267        updateUI(); 
     268         
     269        return 0; 
     270} 
    254271 
    255272LRESULT HaliteWindow::OnSettings(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
  • src/HaliteWindow.hpp

    r97 r100  
    4747                MSG_WM_TIMER(OnTimer)            
    4848                MESSAGE_HANDLER_EX(WM_TRAYNOTIFY, OnTrayNotification) 
     49                COMMAND_ID_HANDLER(ID_FILE_NEW, OnFileNew) 
    4950                COMMAND_ID_HANDLER(ID_FILE_OPEN, OnFileOpen) 
    5051                COMMAND_ID_HANDLER(ID_RESUME, OnResumeAll) 
     
    8182         
    8283        LRESULT OnTrayExit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
     84        LRESULT OnFileNew(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
    8385        LRESULT OnFileOpen(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
    8486        LRESULT OnPauseAll(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
  • src/halTorrent.cpp

    r98 r100  
    189189private: 
    190190        BitTorrent_impl() : 
    191                 theSession(lbt::fingerprint("HL", 0, 2, 0, 0)), 
     191                theSession(lbt::fingerprint("HL", 0, 3, 0, 0)), 
    192192                torrents(INI().torrentConfig().torrents) 
    193193        { 
     
    323323                 
    324324                MessageBox(0, mbstowcs(ex.what()).c_str(), caption.c_str(), MB_ICONERROR|MB_OK); 
     325        } 
     326} 
     327 
     328void add_files(torrent_info& t, boost::filesystem::path const& p, boost::filesystem::path const& l) 
     329{ 
     330        boost::filesystem::path f(p / l); 
     331        if (boost::filesystem::is_directory(f)) 
     332        { 
     333                for (boost::filesystem::directory_iterator i(f), end; i != end; ++i) 
     334                        add_files(t, p, l / i->leaf()); 
     335        } 
     336        else 
     337        { 
     338        //      std::cerr << "adding \"" << l.string() << "\"\n"; 
     339                boost::filesystem::file fi(f, file::in); 
     340                fi.seek(0, file::end); 
     341                libtorrent::size_type size = fi.tell(); 
     342                t.add_file(l, size); 
     343        } 
     344} 
     345 
     346void BitTorrent::newTorrent(boost::filesystem::path filename,  
     347        boost::filesystem::path files) 
     348{ 
     349        try 
     350        { 
     351        libtorrent::torrent_info t; 
     352        path full_path = boost::filesystem::initial_path() / files); 
     353        ofstream out(boost::filesystem::initial_path() / filename, std::ios_base::binary); 
     354 
     355        int piece_size = 256 * 1024; 
     356        char const* creator_str = "libtorrent"; 
     357 
     358        add_files(t, full_path.branch_path(), full_path.leaf()); 
     359        t.set_piece_size(piece_size); 
     360 
     361        libtorrent::storage st(t, full_path.branch_path()); 
     362        t.add_tracker("http://127.0.0.1:6881"); 
     363 
     364        // calculate the hash for all pieces 
     365        int num = t.num_pieces(); 
     366        std::vector<char> buf(piece_size); 
     367        for (int i = 0; i < num; ++i) 
     368        { 
     369                        st.read(&buf[0], i, 0, t.piece_size(i)); 
     370                        libtorrent::hasher h(&buf[0], t.piece_size(i)); 
     371                        t.set_hash(i, h.final()); 
     372                //      std::cerr << (i+1) << "/" << num << "\r"; 
     373        } 
     374 
     375        t.set_creator(creator_str); 
     376 
     377        // create the torrent and print it to out 
     378        lbt::entry e = t.create_torrent(); 
     379        lbt::bencode(std::ostream_iterator<char>(out), e); 
     380        } 
     381        catch (std::exception& e) 
     382        { 
     383                        std::cerr << e.what() << "\n"; 
    325384        } 
    326385} 
  • src/halTorrent.hpp

    r98 r100  
    121121        pair<double, double> sessionSpeed(); 
    122122         
     123        void newTorrent(boost::filesystem::path filename, boost::filesystem::path files); 
    123124        void addTorrent(boost::filesystem::path file); 
    124125        void getAllTorrentDetails(TorrentDetails& torrentsContainer); 
Note: See TracChangeset for help on using the changeset viewer.