Changeset 612


Ignore:
Timestamp:
10/31/08 21:15:46 (11 years ago)
Author:
Eoin
Message:

Allocation mode combobox.

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/res/Halite.rc

    r590 r612  
    436436    PUSHBUTTON      "Cancel",IDCANCEL,155,65,62,13 
    437437 
    438     CONTROL         "Use Compact Allocation.",HAL_CHECK_COMPACT,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,38,220,8 
     438//    CONTROL         "Use Compact Allocation.",HAL_CHECK_COMPACT,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,38,220,8|NOT WS_VISIBLE 
     439    COMBOBOX        HAL_STORAGE_TYPE_COMBO,5,38,220,58,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP 
    439440    CONTROL         "Stopped initially (Allows changing advanced setting)",HAL_CHECK_PAUSED,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,5,25,220,8 
    440441    LTEXT           "Note. Compact Allocation is incompatible with File Selection",HAL_ADDT_NOTE_TEXT,6,51,215,8,SS_WORDELLIPSIS|SS_CENTERIMAGE 
  • trunk/src/AddTorrentDialog.hpp

    r495 r612  
    99#define ID_ADD_TORRENT_BEGIN            11000 
    1010#define HAL_ADJUST_DLG_HOLDER           ID_ADD_TORRENT_BEGIN + 1 
     11#define HAL_STORAGE_TYPE_COMBO          ID_ADD_TORRENT_BEGIN + 2 
    1112 
    1213#ifndef RC_INVOKED 
     
    2829        typedef hal::IniBase<thisClass> iniClass; 
    2930 
     31        typedef std::map<wstring, hal::bit::allocations> wstr2alloc_map; 
     32 
    3033public: 
    31         AddTorrentDialog(wstring& d, wstring& m, bool& u, bool& p, bool& c) :      
     34        AddTorrentDialog(wstring& d, wstring& m, bool& u, bool& p, bool& c, hal::bit::allocations& a_t) :          
    3235                iniClass("AddTorrentDialog", "settings"), 
    3336                rect_(0,0,0,0), 
    3437                adjustDlg_(d, m, u), 
    3538                startPaused_(p), 
    36                 compactStorage_(c) 
     39                compactStorage_(c), 
     40                allocation_type_(a_t) 
    3741        {  
    3842                load_from_ini();  
     
    5357                 
    5458        CHAIN_MSG_MAP(autosizeClass) 
     59//              AddHeightToComboBox(); 
    5560    END_MSG_MAP() 
    5661         
     
    5863        DDX_CHECK(HAL_CHECK_COMPACT, compactStorage_) 
    5964        DDX_CHECK(HAL_CHECK_PAUSED, startPaused_) 
     65                DDX_EX_STDWSTRING(HAL_STORAGE_TYPE_COMBO, allocation_type_name_) 
    6066    END_DDX_MAP()        
    6167 
     
    6975                        WMB_ROW(_exp,   HAL_ADJUST_DLG),  
    7076                        WMB_ROW(_gap,   _d), 
    71                         WMB_ROW(_auto,  HAL_CHECK_COMPACT),  
     77                        WMB_ROW(_auto,  HAL_STORAGE_TYPE_COMBO),  
    7278                        WMB_ROW(_auto,  HAL_CHECK_PAUSED),  
    7379                        WMB_ROW(_auto,  HAL_ADDT_NOTE_TEXT),  
     
    95101                CtrlsInitialize(); 
    96102                CtrlsArrange(); 
     103 
     104                allocation_type_map_[L"Full Allocation"] = hal::bit::full_allocation; 
     105                allocation_type_map_[L"Compact Allocation"] = hal::bit::compact_allocation; 
     106                allocation_type_map_[L"Sparse Allocation"] = hal::bit::sparse_allocation; 
     107 
     108                allocation_type_name_ = L"Sparse Allocation"; 
     109 
     110                foreach (wstr2alloc_map::value_type i, allocation_type_map_) 
     111                { 
     112                        ::SendMessage(GetDlgItem(HAL_STORAGE_TYPE_COMBO), CB_ADDSTRING, 0, (LPARAM)i.first.c_str()); 
     113                } 
     114                ::SendMessage(GetDlgItem(HAL_STORAGE_TYPE_COMBO), CB_SELECTSTRING, 0, (LPARAM)L"Sparse"); 
    97115                 
    98116                BOOL retval =  DoAllDataxchange(false); 
     
    114132        { 
    115133                DoAllDataxchange(true); 
     134 
     135                allocation_type_ = allocation_type_map_[allocation_type_name_]; 
    116136 
    117137                GetWindowRect(rect_); 
     
    138158        bool& startPaused_; 
    139159        bool& compactStorage_; 
     160        hal::bit::allocations& allocation_type_; 
     161 
     162        wstring allocation_type_name_; 
     163        wstr2alloc_map allocation_type_map_; 
    140164}; 
    141165 
  • trunk/src/HaliteListView.cpp

    r604 r612  
    4949 
    5050//      int ret = EnableGroupView(true); 
    51         if (IsGroupViewEnabled()) 
     51/*      if (IsGroupViewEnabled()) 
    5252        { 
    5353//              RemoveAllGroups(); 
     
    6565//              MoveItemToGroup(1, 1); 
    6666        } 
    67  
     67*/ 
    6868        SafeLoadFromIni(); 
    6969         
     
    147147                if (itemPos < 0) 
    148148                { 
    149                                         LVITEM lvItem = { 0 }; 
    150                 lvItem.mask = LVIF_TEXT|LVIF_GROUPID; 
    151                 lvItem.iItem = 0; 
    152                 lvItem.iSubItem = 0; 
    153                 lvItem.pszText = (LPTSTR)td->name().c_str(); 
    154                 lvItem.iGroupId = 0; 
     149/*                      LVITEM lvItem = { 0 }; 
     150                        lvItem.mask = LVIF_TEXT|LVIF_GROUPID; 
     151                        lvItem.iItem = 0; 
     152                        lvItem.iSubItem = 0; 
     153                        lvItem.pszText = (LPTSTR)td->name().c_str(); 
     154                        lvItem.iGroupId = 0; 
    155155 
    156156                        lvItem.mask |= LVIF_IMAGE; 
     
    158158 
    159159                        itemPos =  InsertItem(&lvItem); 
    160  
    161                 //      AddItem(0, 0, td->name().c_str(), 0); 
     160*/ 
     161                        AddItem(0, 0, td->name().c_str(), 0); 
    162162                //      MoveItemToGroup(itemPos, 0); 
    163163                } 
  • trunk/src/HaliteWindow.cpp

    r582 r612  
    342342        bool startPaused = false; 
    343343        bool compactStorage = false; 
     344        hal::bit::allocations allocation_type = hal::bit::sparse_allocation; 
    344345         
    345346        if (!boost::filesystem::exists(default_save_folder)) 
     
    348349        if (hal::config().save_prompt_) 
    349350        { 
    350                 AddTorrentDialog addTorrent(default_save_folder, default_move_folder, use_move_to, startPaused, compactStorage);         
     351                AddTorrentDialog addTorrent(default_save_folder, default_move_folder, use_move_to, startPaused, compactStorage, allocation_type);        
    351352                 
    352353                if (IDOK != addTorrent.DoModal()) 
     
    355356         
    356357        wpath file(lpszPath, boost::filesystem::native);         
    357         hal::bittorrent().add_torrent(file, wpath(default_save_folder), startPaused, compactStorage,  
     358        hal::bittorrent().add_torrent(file, wpath(default_save_folder), startPaused, allocation_type,  
    358359                wpath(default_move_folder), use_move_to); 
    359360 
  • trunk/src/halSession.hpp

    r573 r612  
    711711        void alert_handler(); 
    712712 
    713         void add_torrent(wpath file, wpath saveDirectory, bool startStopped, bool compactStorage,  
     713        void add_torrent(wpath file, wpath saveDirectory, bool startStopped, bit::allocations alloc,  
    714714                        boost::filesystem::wpath moveToDirectory, bool useMoveTo)  
    715715        { 
     
    740740                { 
    741741                        if (useMoveTo) 
    742                                 TIp.reset(new torrent_internal(file, saveDirectory, compactStorage, moveToDirectory));           
     742                                TIp.reset(new torrent_internal(file, saveDirectory, alloc, moveToDirectory));            
    743743                        else 
    744                                 TIp.reset(new torrent_internal(file, saveDirectory, compactStorage)); 
     744                                TIp.reset(new torrent_internal(file, saveDirectory, alloc)); 
    745745 
    746746                        TIp->setTransferSpeed(bittorrent().defTorrentDownload(), bittorrent().defTorrentUpload()); 
  • trunk/src/halTorrent.cpp

    r590 r612  
    268268} 
    269269 
    270 void bit::add_torrent(wpath file, wpath saveDirectory, bool startStopped, bool compactStorage,  
     270void bit::add_torrent(wpath file, wpath saveDirectory, bool startStopped, allocations alloc,  
    271271                boost::filesystem::wpath moveToDirectory, bool useMoveTo)  
    272272{ 
    273         pimpl->add_torrent(file, saveDirectory, startStopped, compactStorage, moveToDirectory, useMoveTo); 
     273        pimpl->add_torrent(file, saveDirectory, startStopped, alloc, moveToDirectory, useMoveTo); 
    274274} 
    275275 
  • trunk/src/halTorrent.hpp

    r570 r612  
    734734        }; 
    735735 
     736        enum allocations 
     737        { 
     738                sparse_allocation = 1, 
     739                compact_allocation, 
     740                full_allocation 
     741        }; 
     742 
    736743        void shutDownSession(); 
    737744        void save_torrent_data(); 
     
    789796        void set_torrent_defaults(const connections& defaults);  
    790797        void add_torrent(boost::filesystem::wpath file, boost::filesystem::wpath saveDirectory,  
    791                 bool startPaused=false, bool compactStorage=false,  
     798                bool startPaused=false, allocations alloc=hal::bit::sparse_allocation,  
    792799                boost::filesystem::wpath moveToDirectory=L"", bool useMoveTo=false); 
    793800         
  • trunk/src/halTorrentInternal.hpp

    r599 r612  
    123123} 
    124124 
     125inline libt::storage_mode_t hal_allocation_to_libt(bit::allocations alloc) 
     126{ 
     127        switch (alloc) 
     128        { 
     129        case bit::full_allocation: 
     130                return libt::storage_mode_allocate; 
     131        case bit::compact_allocation: 
     132                return libt::storage_mode_compact; 
     133        case bit::sparse_allocation: 
     134        default: 
     135                return libt::storage_mode_sparse; 
     136        } 
     137} 
     138 
    125139class invalidTorrent : public std::exception 
    126140{ 
     
    324338        torrent_internal() :     
    325339                TORRENT_INTERNALS_DEFAULTS, 
    326                 compactStorage_(true), 
     340                allocation_(bit::sparse_allocation), 
    327341                state_(torrent_details::torrent_stopped) 
    328342        { 
     
    331345        } 
    332346         
    333         torrent_internal(wpath filename, wpath saveDirectory, bool compactStorage, wpath move_to_directory=L"") : 
     347                torrent_internal(wpath filename, wpath saveDirectory, bit::allocations alloc, wpath move_to_directory=L"") : 
    334348                TORRENT_INTERNALS_DEFAULTS, 
    335349                save_directory_(saveDirectory.string()), 
    336350                move_to_directory_(move_to_directory.string()), 
    337                 compactStorage_(compactStorage),         
     351                allocation_(alloc),      
    338352                state_(torrent_details::torrent_stopped) 
    339353        { 
     
    539553                        p.ti = info_memory_; 
    540554                        p.save_path = path_to_utf8(save_directory_); 
    541                         p.storage_mode = compactStorage_ ? libt::storage_mode_compact : libt::storage_mode_sparse; 
     555                        p.storage_mode = hal_allocation_to_libt(allocation_); 
    542556                        p.paused = paused; 
    543557                        p.duplicate_is_error = false; 
     
    897911                        ar & make_nvp("progress", progress_); 
    898912                        ar & make_nvp("state", state_); 
    899                         ar & make_nvp("compact_storage", compactStorage_);       
     913//                      ar & make_nvp("compact_storage", compactStorage_);       
     914                        ar & make_nvp("allocation_type", allocation_);   
    900915                        ar & make_nvp("resolve_countries", resolve_countries_);  
    901916 
     
    13351350        int queue_position_; 
    13361351        bool compactStorage_; 
     1352        bit::allocations allocation_; 
    13371353}; 
    13381354 
Note: See TracChangeset for help on using the changeset viewer.