[commit] r2673 - trunk/GME/GMEActiveBrowser
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Tue May 9 13:49:18 CDT 2017
Author: ksmyth
Date: Tue May 9 13:49:17 2017
New Revision: 2673
Log:
TreeBrowser: when sorting by name, tiebreak by RelID
Modified:
trunk/GME/GMEActiveBrowser/AggregateOptions.h
trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp
Modified: trunk/GME/GMEActiveBrowser/AggregateOptions.h
==============================================================================
--- trunk/GME/GMEActiveBrowser/AggregateOptions.h Fri May 5 16:54:15 2017 (r2672)
+++ trunk/GME/GMEActiveBrowser/AggregateOptions.h Tue May 9 13:49:17 2017 (r2673)
@@ -5,9 +5,7 @@
#if !defined(AFX_AGGREGATEOPTIONS_H__F55D03CE_8EDB_422E_905B_67B46C9E5895__INCLUDED_)
#define AFX_AGGREGATEOPTIONS_H__F55D03CE_8EDB_422E_905B_67B46C9E5895__INCLUDED_
-#if _MSC_VER > 1000
#pragma once
-#endif // _MSC_VER > 1000
enum eSortOptions{SORT_BYNAME,SORT_BYTYPE,SORT_BYCREATION};
Modified: trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp
==============================================================================
--- trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp Fri May 5 16:54:15 2017 (r2672)
+++ trunk/GME/GMEActiveBrowser/AggregateTreeCtrl.cpp Tue May 9 13:49:17 2017 (r2673)
@@ -483,7 +483,29 @@
}
+static int SortRelID(CAggregateTreeCtrl* pTreeCtrl, HTREEITEM hItem1, HTREEITEM hItem2)
+{
+ CAggregateMgaObjectProxy MgaObjectProxyItem1;
+ CAggregateMgaObjectProxy MgaObjectProxyItem2;
+
+ if (
+ pTreeCtrl->m_MgaMap.LookupObjectProxy(hItem1, MgaObjectProxyItem1) &&
+ pTreeCtrl->m_MgaMap.LookupObjectProxy(hItem2, MgaObjectProxyItem2))
+ {
+ CComQIPtr<IMgaObject>ccpItem1(MgaObjectProxyItem1.m_pMgaObject);
+ CComQIPtr<IMgaObject>ccpItem2(MgaObjectProxyItem2.m_pMgaObject);
+
+ if (ccpItem1 && ccpItem2)
+ {
+ // Query the RelativeID
+ long lRelID1, lRelID2;
+ COMTHROW(ccpItem1->get_RelID(&lRelID1));
+ COMTHROW(ccpItem2->get_RelID(&lRelID2));
+ return lRelID1 - lRelID2;
+ }
+ }
+}
int CAggregateTreeCtrl::ItemCompareProc(LPARAM lParamItem1, LPARAM lParamItem2, LPARAM lParamSort)
@@ -504,7 +526,13 @@
{
CString strItem1 = pTreeCtrl->GetItemText(hItem1);
CString strItem2 = pTreeCtrl->GetItemText(hItem2);
- return -_tcscmp(strItem2, strItem1);
+ int nameDiff = -_tcscmp(strItem2, strItem1);
+ if (nameDiff != 0)
+ {
+ return nameDiff;
+ }
+ return SortRelID(pTreeCtrl, hItem1, hItem2);
+
}break;
case SORT_BYTYPE:
{
@@ -519,7 +547,11 @@
{
CString strItem1 = pTreeCtrl->GetItemText(hItem1);
CString strItem2 = pTreeCtrl->GetItemText(hItem2);
- return -_tcscmp(strItem2, strItem1);
+ int nameDiff = -_tcscmp(strItem2, strItem1);
+ if (nameDiff != 0) {
+ return nameDiff;
+ }
+ return SortRelID(pTreeCtrl, hItem1, hItem2);
}
@@ -544,40 +576,7 @@
}break;
case SORT_BYCREATION:
- {
-
- CAggregateMgaObjectProxy MgaObjectProxyItem1;
- CAggregateMgaObjectProxy MgaObjectProxyItem2;
-
- if(
- pTreeCtrl->m_MgaMap.LookupObjectProxy(hItem1,MgaObjectProxyItem1) &&
- pTreeCtrl->m_MgaMap.LookupObjectProxy(hItem2,MgaObjectProxyItem2))
- {
- CComQIPtr<IMgaObject>ccpItem1(MgaObjectProxyItem1.m_pMgaObject);
- CComQIPtr<IMgaObject>ccpItem2(MgaObjectProxyItem2.m_pMgaObject);
-
- if(ccpItem1 &&ccpItem2)
- {
- // Query the RelativeID
- long lRelID1,lRelID2;
- COMTHROW(ccpItem1->get_RelID(&lRelID1));
- COMTHROW(ccpItem2->get_RelID(&lRelID2));
-
- return lRelID1-lRelID2;
- }
- else // Unsuccessful query of the objects
- {
- return 0;
- }
-
- }
- else
- {
- // For dummy elements that are not in the map it does not matter
- return 0;
- }
-
- }break;
+ return SortRelID(pTreeCtrl, hItem1, hItem2);
}
return 0;
}
More information about the gme-commit
mailing list