Changeset 249


Ignore:
Timestamp:
08/05/07 21:30:50 (13 years ago)
Author:
Eoin
Message:

More sorting tweaks.

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • res/resource.h

    r246 r249  
    33#endif 
    44 
    5 #define HALITE_VERSION                                  0,2,9,243 
    6 #define HALITE_VERSION_STRING                   "v 0.2.9 dev 243" 
     5#define HALITE_VERSION                                  0,2,9,249 
     6#define HALITE_VERSION_STRING                   "v 0.2.9 dev 249" 
    77 
    88#define HALITE_LANGUAGE                                 10 
  • src/HaliteListView.cpp

    r248 r249  
    1111        load(); 
    1212         
    13         adapters_.push_back(new Adapters::Filename()); 
    14         adapters_.push_back(new Adapters::State()); 
    15         adapters_.push_back(new Adapters::Tracker()); 
     13        regColumnAdapter(0, new ColumnAdapters::Filename()); 
     14        regColumnAdapter(1, new ColumnAdapters::State()); 
     15        regColumnAdapter(2, new ColumnAdapters::Tracker()); 
    1616} 
    1717         
     
    4141        UpdateLock<listClass> rLock(*this); 
    4242         
    43         tD.sort(bind(&Adapter::less, &adapters_[1], _1, _2)); 
     43        //tD.sort(bind(&Adapter::less, &adapters_[1], _1, _2)); 
    4444         
    4545//      DeleteAllItems(); 
     
    9999        GetItemText(pItem2->iItem, 0, buffer.c_array(), buffer.size());          
    100100        wstring torrent2 = buffer.data(); 
     101         
     102        listClass::ColumnAdapter* pCA = getColumnAdapter(1); 
    101103                 
    102         bool less = adapters_[1].less(hal::bittorrent().torrentDetails().get(torrent1),  
    103                 hal::bittorrent().torrentDetails().get(torrent2)); 
     104        if (pCA) 
     105        { 
     106                bool less = pCA->less(hal::bittorrent().torrentDetails().get(torrent1),  
     107                        hal::bittorrent().torrentDetails().get(torrent2)); 
    104108                 
    105         return (less) ? 1 : -1; 
     109                return (less) ? 1 : -1; 
     110        } 
     111        else return 0; 
     112 
    106113} 
    107114 
  • src/HaliteListView.hpp

    r245 r249  
    2626        friend class listClass; 
    2727         
    28         class Adapters 
     28        struct ColumnAdapters 
    2929        { 
    3030         
    3131        typedef const hal::TorrentDetail_ptr tD; 
    32         typedef HaliteListViewCtrl::Adapter adpt; 
     32        typedef listClass::ColumnAdapter ColAdapter_t; 
    3333         
    34         class Filename : public adpt 
     34        struct Filename : public ColAdapter_t 
    3535        {        
    36         public: 
    37                 virtual bool less(tD& l, tD& r) 
    38                 { 
    39                         return l->filename() < r->filename(); 
    40                 } 
    41                  
    42                 virtual std::wstring print(tD& t) 
    43                 { 
    44                         return t->filename(); 
    45                 }                
     36                virtual bool less(tD& l, tD& r) { return l->filename() < r->filename(); }                
     37                virtual std::wstring print(tD& t) { return t->filename(); }              
    4638        }; 
    4739         
    48         class State : public adpt 
     40        struct State : public ColAdapter_t 
    4941        {        
    50         public: 
    51                 virtual bool less(tD& l, tD& r) 
    52                 { 
    53                         return l->state() < r->state(); 
    54                 } 
    55                  
    56                 virtual std::wstring print(tD& t) 
    57                 { 
    58                         return t->state(); 
    59                 }                
     42                virtual bool less(tD& l, tD& r) { return l->state() < r->state(); }              
     43                virtual std::wstring print(tD& t) { return t->state(); }                 
    6044        }; 
    6145         
    62         class Tracker : public adpt 
    63         {        
    64         public: 
    65                 virtual bool less(tD& l, tD& r) 
    66                 { 
    67                         return l->currentTracker() < r->currentTracker(); 
    68                 } 
    69                  
    70                 virtual std::wstring print(tD& t) 
    71                 { 
    72                         return t->currentTracker(); 
    73                 }                
     46        struct Tracker : public ColAdapter_t 
     47        { 
     48                virtual bool less(tD& l, tD& r) { return l->currentTracker() < r->currentTracker(); }            
     49                virtual std::wstring print(tD& t) { return t->currentTracker(); }                
    7450        }; 
    7551         
  • src/HaliteSortListViewCtrl.hpp

    r248 r249  
    77#include <boost/serialization/vector.hpp> 
    88#include <boost/serialization/split_free.hpp> 
    9 #include <boost/ptr_container/ptr_vector.hpp> 
     9#include <boost/ptr_container/ptr_map.hpp> 
    1010 
    1111#include "stdAfx.hpp" 
     
    303303        }; 
    304304         
    305         class Adapter 
    306         { 
    307         public: 
     305        struct ColumnAdapter 
     306        { 
    308307                virtual bool less(adapterType& l, adapterType& r) = 0; 
    309308                virtual std::wstring print(adapterType& t) = 0; 
     
    481480 
    482481protected: 
     482        void regColumnAdapter(size_t key, ColumnAdapter* colAdapter) 
     483        { 
     484                columnAdapters_.insert(key, colAdapter); 
     485        } 
     486         
     487        ColumnAdapter* getColumnAdapter(size_t index) 
     488        { 
     489                boost::ptr_map<size_t, ColumnAdapter>::iterator  
     490                        i = columnAdapters_.find(index); 
     491         
     492                if (i != columnAdapters_.end()) 
     493                { 
     494                        return i->second; 
     495                }                
     496                return NULL; 
     497        } 
     498 
    483499        SelectionManager manager_; 
    484         boost::ptr_vector<Adapter> adapters_; 
    485500         
    486501private: 
     
    514529         
    515530        int updateLock_; 
    516         friend class UpdateLock<thisClass>; 
     531        friend class UpdateLock<thisClass>;              
     532         
     533        boost::ptr_map<size_t, ColumnAdapter> columnAdapters_; 
    517534         
    518535        WinAPIWaitableTimer syncTimer_; 
  • src/advtabs/Debug.hpp

    r248 r249  
    8787        } 
    8888         
    89         LogListViewCtrl() 
     89        ~LogListViewCtrl() 
    9090        { 
    9191                if (conn_.connected()) conn_.disconnect(); 
Note: See TracChangeset for help on using the changeset viewer.