OSDN Git Service

PATCH: [ 802132 ] Resort dir columns after redisplay
authorPerry Rapp <elsapo@users.sourceforge.net>
Sun, 7 Sep 2003 21:14:12 +0000 (21:14 +0000)
committerPerry Rapp <elsapo@users.sourceforge.net>
Sun, 7 Sep 2003 21:14:12 +0000 (21:14 +0000)
Src/DirDoc.cpp
Src/DirView.cpp
Src/DirView.h
Src/readme.txt

index 0709f0d..6cfc05f 100644 (file)
@@ -320,6 +320,9 @@ static LPCTSTR GetItemPathIfShowable(const DIFFITEM & di, int llen, int rlen)
        return p;
 }
 
+/**
+ * @brief Empty & reload listview (of files & columns) with comparison results
+ */
 void CDirDoc::Redisplay()
 {
        m_pDirView->ToDoDeleteThisValidateColumnOrdering();
@@ -349,7 +352,7 @@ void CDirDoc::Redisplay()
                        cnt++;
                }
        }
-       m_pDirView->ToDoDeleteThisValidateColumnOrdering();
+       m_pDirView->SortColumnsAppropriately();
 }
 
 CDirView * CDirDoc::GetMainView()
index 8e7c074..cb23825 100644 (file)
@@ -494,6 +494,9 @@ void CDirView::UpdateResources()
        UpdateColumnNames();
 }
 
+/**
+ * @brief User just clicked a column, so perform sort
+ */
 void CDirView::OnColumnClick(NMHDR *pNMHDR, LRESULT *pResult)
 {
        // set sort parameters and handle ascending/descending
@@ -509,11 +512,18 @@ void CDirView::OnColumnClick(NMHDR *pNMHDR, LRESULT *pResult)
                // most columns start off ascending, but not dates
                m_bSortAscending = IsDefaultSortAscending(m_sortColumn);
        }
-       m_ctlSortHeader.SetSortImage(m_sortColumn, m_bSortAscending);
 
+       SortColumnsAppropriately();
+       *pResult = 0;
+}
+
+void CDirView::SortColumnsAppropriately()
+{
+       if (m_sortColumn == -1) return;
+
+       m_ctlSortHeader.SetSortImage(m_sortColumn, m_bSortAscending);
        //sort using static CompareFunc comparison function
        GetListCtrl ().SortItems (CompareFunc, reinterpret_cast<DWORD>(this));//pNMListView->iSubItem);
-       *pResult = 0;
 }
 
 /// Do any last minute work as view closes
index ad2f69b..3770a3f 100644 (file)
@@ -89,6 +89,8 @@ public:
        void DeleteAllDisplayItems();
        void SetColumnWidths();
 
+       void SortColumnsAppropriately();
+
        UINT GetSelectedCount() const;
        int GetFirstSelectedInd();
        DIFFITEM GetNextSelectedInd(int &ind);
index 13a42a1..dbc43f5 100644 (file)
@@ -1,3 +1,7 @@
+2003-09-07 Perry
+ PATCH: [ 802132 ] Resort dir columns after redisplay
+  WinMerge: DirView.h DirView.cpp DirDoc.cpp
+
 2003-09-07 Laoran
  PATCH: [ 799464 ] preserve positions during Rescan (2.1)
   WinMerge: GhostTextBuffer.cpp GhostTextView.cpp GhostTextView.h MergeDoc.cpp