Changeset 685 for trunk


Ignore:
Timestamp:
01/16/09 11:37:32 (11 years ago)
Author:
Eoin
Message:

Secondary sorting complete.

Location:
trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/HaliteListView.cpp

    r663 r685  
    9898        if (col_sort_index != -1) 
    9999        {                
     100                if (GetSecondarySortColumn() != -1) 
     101                { 
     102                        int index = GetColumnSortType(GetSecondarySortColumn()); 
     103                         
     104                        if (index > WTL::LVCOLSORT_LAST) 
     105                                tD.sort(index - (WTL::LVCOLSORT_LAST+1+hal::torrent_details::name_e), IsSecondarySortDescending()); 
     106                } 
     107 
    100108                int index = GetColumnSortType(col_sort_index); 
    101109                 
  • trunk/src/HaliteSortListViewCtrl.hpp

    r662 r685  
    463463                ar & make_nvp("descending", descending_); 
    464464                ar & make_nvp("sortCol", sortCol_); 
     465 
     466                ar & make_nvp("secondary_descending", listClass::bSecondaryDescending); 
     467                ar & make_nvp("secondary_sort_column", listClass::iSecondarySort);               
    465468    } 
    466469 
     
    477480                ar & make_nvp("descending", descending_); 
    478481                ar & make_nvp("sortCol", sortCol_); 
     482 
     483                ar & make_nvp("secondary_descending", listClass::bSecondaryDescending); 
     484                ar & make_nvp("secondary_sort_column", listClass::iSecondarySort);               
    479485                 
    480486                SetColumnOrderArray(list_order_.size(), &list_order_[0]); 
  • trunk/src/WTLx/ListViewSortMixin.hpp

    r684 r685  
    1010#include <boost/iterator/filter_iterator.hpp> 
    1111#include <winstl/controls/listview_sequence.hpp> 
     12 
     13#define SLVN_SECONDSORTCHANGED          SLVN_SORTCHANGED+1 
    1214 
    1315namespace WTLx 
     
    6264                if(p->iButton == 0) 
    6365                { 
    64                         if (GetKeyState(VK_LCONTROL) || GetKeyState(VK_RCONTROL)) 
     66                        if (GetKeyState(VK_CONTROL) & 0x8000) 
    6567                        { 
     68                                int iOld = iSecondarySort; 
     69 
    6670                                bSecondaryDescending = (iSecondarySort == p->iItem) ? !bSecondaryDescending : false; 
    6771                                iSecondarySort = p->iItem; 
     72 
     73                                if (DoSortItems(p->iItem, m_bSortDescending)) 
     74                                        NotifyParentSecondarySortChanged(p->iItem, iOld); 
    6875                        } 
    6976                        else 
     
    7986                bHandled = FALSE; 
    8087                return 0; 
     88        } 
     89 
     90        void NotifyParentSecondarySortChanged(int iNewSortCol, int iOldSortCol) 
     91        { 
     92                T* pT = static_cast<T*>(this); 
     93                int nID = pT->GetDlgCtrlID(); 
     94                WTL::NMSORTLISTVIEW nm = { { pT->m_hWnd, nID, SLVN_SECONDSORTCHANGED }, iNewSortCol, iOldSortCol }; 
     95                ::SendMessage(pT->GetParent(), WM_NOTIFY, (WPARAM)nID, (LPARAM)&nm); 
    8196        } 
    8297 
     
    125140        } 
    126141 
    127         const int GetSecondarySortColumn() { return iSecondarySort; } 
    128         const bool IsSecondarySortDescending() { return bSecondaryDescending; } 
     142        const int GetSecondarySortColumn() const { return iSecondarySort; } 
     143        const bool IsSecondarySortDescending() const { return bSecondaryDescending; } 
    129144 
    130 private: 
    131145        int iSecondarySort; 
    132146        bool bSecondaryDescending; 
  • trunk/src/advtabs/Files.cpp

    r665 r685  
    8181        NMLVDISPINFO* pdi = (NMLVDISPINFO*)pnmh; 
    8282 
    83         if (pdi->item.iItem < files_.size()) 
     83        if (pdi->item.iItem < static_cast<int>(files_.size())) 
    8484        { 
    8585                if (pdi->item.mask & LVIF_TEXT) 
     
    8787                        wstring str = files_[pdi->item.iItem].to_wstring(pdi->item.iSubItem); 
    8888                         
    89                         int len = str.copy(pdi->item.pszText, min(pdi->item.cchTextMax - 1, str.size())); 
     89                        size_t len = str.copy(pdi->item.pszText, min(pdi->item.cchTextMax - 1, static_cast<int>(str.size()))); 
    9090                        pdi->item.pszText[len] = '\0'; 
    9191                }        
Note: See TracChangeset for help on using the changeset viewer.