Changeset 519 for trunk


Ignore:
Timestamp:
07/23/08 18:01:39 (11 years ago)
Author:
Eoin
Message:

Adding a 'queued view' mode to main listview.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/res/Halite.rc

    r517 r519  
    794794STRINGTABLE 
    795795BEGIN 
    796         HAL_LISTVIEW_COLUMNS                    "Name;Status;Progress;Download;Upload;Peers;Seeds;ETA;Copies;Tracker;Reannounce;Ratio;Total;Completed;Remaining;Downloaded;Uploaded;Active;Seeding;Start Time;Finish Time" 
     796        HAL_LISTVIEW_COLUMNS                    "Name;Status;Progress;Download;Upload;Peers;Seeds;ETA;Copies;Tracker;Reannounce;Ratio;Total;Completed;Remaining;Downloaded;Uploaded;Active;Seeding;Start Time;Finish Time;Queue Position" 
    797797        HAL_DEBUG_LISTVIEW_COLUMNS              "Time;Message;Severity" 
    798798        HAL_TRACKER_LISTVIEW_COLUMNS    "Tracker;Tier" 
  • trunk/src/HaliteListView.cpp

    r508 r519  
    1818#include "halTorrent.hpp" 
    1919 
     20#define HAL_CUSTOMDRAW_TITLEDATA 1000000000 
     21 
    2022HaliteListViewCtrl::HaliteListViewCtrl(HaliteWindow& HalWindow) : 
    2123        halWindow_(HalWindow), 
     
    3638        boost::split(names, column_names, boost::is_any_of(L";")); 
    3739         
    38         array<int, NumberOfColumns_s> widths = {100,110,60,60,60,42,45,61,45,45,45,45,45,45,45,45,45,45,45,45,45}; 
    39         array<int, NumberOfColumns_s> order = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; 
     40        array<int, NumberOfColumns_s> widths = {100,110,60,60,60,42,45,61,45,45,45,45,45,45,45,45,45,45,45,45,45,45}; 
    4041        array<bool, NumberOfColumns_s> visible = {true,true,true,true,true,true,true,true,true,true,true,\ 
    41                 true,true,true,true,true,true,true,true,true,true}; 
     42                true,true,true,true,true,true,true,true,true,true,true}; 
    4243 
    4344        for (int i=0, e=NumberOfColumns_s; i < e; ++i) 
     
    6970        SetColumnSortType(19, WTL::LVCOLSORT_CUSTOM, new ColumnAdapters::StartTime()); 
    7071        SetColumnSortType(20, WTL::LVCOLSORT_CUSTOM, new ColumnAdapters::FinishTime()); 
     72        SetColumnSortType(21, WTL::LVCOLSORT_CUSTOM, new ColumnAdapters::QueuePosition()); 
     73 
     74         
     75        int item_pos = AddItem(0, 0, L"Unmanaged", 0); 
     76        SetItemData(item_pos, HAL_CUSTOMDRAW_TITLEDATA); 
     77                         
     78        item_pos = AddItem(0, 0, L"Downloading", 0); 
     79        SetItemData(item_pos, HAL_CUSTOMDRAW_TITLEDATA); 
     80                         
     81        item_pos = AddItem(0, 0, L"Seeding", 0); 
     82        SetItemData(item_pos, HAL_CUSTOMDRAW_TITLEDATA); 
    7183} 
    7284 
     
    8092        GetListViewDetails(); 
    8193        save_to_ini(); 
     94} 
     95 
     96DWORD HaliteListViewCtrl::OnPrePaint(int idCtrl, LPNMCUSTOMDRAW lpNMCD) 
     97{ 
     98        return CDRF_NOTIFYITEMDRAW; 
     99} 
     100 
     101DWORD HaliteListViewCtrl::OnItemPrePaint(int idCtrl, LPNMCUSTOMDRAW lpNMCD) 
     102{ 
     103        NMLVCUSTOMDRAW* pnmlv = (NMLVCUSTOMDRAW*) lpNMCD; 
     104 
     105        if (HAL_CUSTOMDRAW_TITLEDATA == pnmlv->nmcd.lItemlParam) 
     106                pnmlv->clrText = RGB(50,50,200); 
     107 
     108        return CDRF_DODEFAULT; 
    82109} 
    83110 
  • trunk/src/HaliteListView.hpp

    r507 r519  
    3131class HaliteListViewCtrl : 
    3232        public CHaliteSortListViewCtrl<HaliteListViewCtrl, const hal::torrent_details_ptr>, 
     33        public WTL::CCustomDraw<HaliteListViewCtrl>, 
    3334        private hal::IniBase<HaliteListViewCtrl>, 
    3435        private boost::noncopyable 
    3536{ 
    3637protected: 
    37         typedef hal::IniBase<HaliteListViewCtrl> iniClass; 
    38         typedef CHaliteSortListViewCtrl<HaliteListViewCtrl, const hal::torrent_details_ptr> listClass; 
     38        typedef HaliteListViewCtrl thisClass; 
     39        typedef hal::IniBase<thisClass> iniClass; 
     40        typedef CHaliteSortListViewCtrl<thisClass, const hal::torrent_details_ptr> listClass; 
     41        typedef WTL::CCustomDraw<thisClass> ownDrawClass; 
    3942        typedef const hal::torrent_details_ptr tD; 
    4043 
     
    326329        }; 
    327330         
     331        struct QueuePosition : public ColAdapter_t 
     332        { 
     333                virtual int compare(tD& l, tD& r) { return hal::compare(l->queue_position(), r->queue_position()); }             
     334                virtual std::wstring print(tD& t)  
     335                {  
     336                        if (t->queue_position() != -1) 
     337                        { 
     338                                return (wformat(L"%1%") % (t->queue_position())).str();  
     339                        } 
     340                        else 
     341                        { 
     342                                return hal::app().res_wstr(IDS_NA);              
     343                        } 
     344                }                
     345        }; 
     346         
    328347        }; 
    329348 
     
    350369                COMMAND_ID_HANDLER(ID_LVM_EDIT_FOLDERS, OnEditFolders) 
    351370 
     371        CHAIN_MSG_MAP_ALT(ownDrawClass, 1) 
    352372                CHAIN_MSG_MAP(listClass) 
    353373                DEFAULT_REFLECTION_HANDLER() 
     
    358378        void saveSettings(); 
    359379        void uiUpdate(const hal::torrent_details_manager& allTorrents);  
     380 
     381        DWORD OnPrePaint(int idCtrl, LPNMCUSTOMDRAW lpNMCD); 
     382        DWORD OnItemPrePaint(int idCtrl, LPNMCUSTOMDRAW lpNMCD); 
    360383 
    361384        LRESULT OnPause(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); 
     
    384407        void OnDetach(); 
    385408         
    386         enum { NumberOfColumns_s = 21 }; 
     409        enum { NumberOfColumns_s = 22 }; 
    387410         
    388411        HaliteWindow& halWindow_; 
  • trunk/src/HaliteSortListViewCtrl.hpp

    r508 r519  
    648648                        (listNames_.size() == listVisible_.size()); 
    649649 
    650                 assert(ret); 
    651650                return ret; 
    652651        } 
  • trunk/src/halConfig.hpp

    r518 r519  
    6161                halfConn(true), 
    6262                halfConnLimit(10), 
    63                 mappingType(0), 
    64                 peerTimeout(30), 
    65                 trackerTimeout(60) 
     63                mappingType(0) 
    6664        { 
    6765                queue_settings_ = hal::bittorrent().get_queue_settings(); 
  • trunk/src/halTorrent.hpp

    r518 r519  
    238238                        float c=0, float d=0, size_type tWD=0, size_type tW=0, size_type tU=0, size_type tpU=0, size_type tD=0, size_type tpD=0, boost::tuple<size_type, size_type, size_type, size_type> connections = boost::tuple<size_type, size_type, size_type, size_type>(0,0,0,0), float r=0,  
    239239                        boost::posix_time::time_duration eta=boost::posix_time::seconds(0), boost::posix_time::time_duration uIn=boost::posix_time::seconds(0), 
    240                         boost::posix_time::time_duration actve=boost::posix_time::seconds(0), boost::posix_time::time_duration seding=boost::posix_time::seconds(0), boost::posix_time::ptime srt=boost::posix_time::second_clock::universal_time(), boost::posix_time::ptime fin=boost::posix_time::second_clock::universal_time()) : 
     240                        boost::posix_time::time_duration actve=boost::posix_time::seconds(0), boost::posix_time::time_duration seding=boost::posix_time::seconds(0), boost::posix_time::ptime srt=boost::posix_time::second_clock::universal_time(), boost::posix_time::ptime fin=boost::posix_time::second_clock::universal_time(), int q_p=-1) : 
    241241                filename_(f), 
    242242                name_(n), 
     
    265265                seeding_(seding), 
    266266                startTime_(srt), 
    267                 finishTime_(fin) 
     267                finishTime_(fin), 
     268                queue_position_(q_p) 
    268269        {} 
    269270 
     
    316317        const boost::posix_time::ptime& startTime() { return startTime_; } 
    317318        const boost::posix_time::ptime& finishTime() { return finishTime_; } 
     319 
     320        int queue_position() const { return queue_position_; } 
    318321         
    319322public: 
     
    349352        boost::posix_time::ptime startTime_; 
    350353        boost::posix_time::ptime finishTime_; 
     354 
     355        int queue_position_; 
    351356         
    352357private: 
  • trunk/src/halTorrentInternal.hpp

    r517 r519  
    666666                        std::pair<float, float>(statusMemory_.download_payload_rate, statusMemory_.upload_payload_rate), 
    667667                        progress_, statusMemory_.distributed_copies, statusMemory_.total_wanted_done, statusMemory_.total_wanted, uploaded_, payloadUploaded_, 
    668                         downloaded_, payloadDownloaded_, connections, ratio_, td, statusMemory_.next_announce, activeDuration_, seedingDuration_, startTime_, finishTime_)); 
     668                        downloaded_, payloadDownloaded_, connections, ratio_, td, statusMemory_.next_announce, activeDuration_, seedingDuration_, startTime_, finishTime_, handle_.queue_position())); 
    669669 
    670670                } 
Note: See TracChangeset for help on using the changeset viewer.