[GME-commit] GMESRC/GME/Search Search.vcproj,1.1,1.2 SearchDlg.cpp,1.16,1.17 SearchDlg.h,1.8,1.9

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Fri Mar 17 15:48:50 CST 2006


Update of /project/gme-repository/GMESRC/GME/Search
In directory escher:/tmp/cvs-serv25827

Modified Files:
	Search.vcproj SearchDlg.cpp SearchDlg.h 
Log Message:
Trying to pinpoint the misterious crash. Second attempt.

OnSize, OnSizing partly implemented, allowing the user to view results in a bigger window.


CVS User: Zoltan Molnar, ISIS (zolmol)

Index: Search.vcproj
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/Search.vcproj,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Search.vcproj	26 Jan 2005 17:31:00 -0000	1.1
--- Search.vcproj	17 Mar 2006 15:48:47 -0000	1.2
***************
*** 497,500 ****
--- 497,503 ----
  	</Files>
  	<Globals>
+ 		<Global
+ 			Name="RESOURCE_FILE"
+ 			Value="Search.rc"/>
  	</Globals>
  </VisualStudioProject>

Index: SearchDlg.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchDlg.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** SearchDlg.cpp	16 Mar 2006 17:15:26 -0000	1.16
--- SearchDlg.cpp	17 Mar 2006 15:48:47 -0000	1.17
***************
*** 9,12 ****
--- 9,13 ----
  #include "Input.h"
  #include "SearchAlg.h"
+ #include ".\searchdlg.h"
  
  #ifdef _DEBUG
***************
*** 86,89 ****
--- 87,92 ----
  	ON_BN_CLICKED(IDC_CHECKSPLSEARCH, OnCheckSplSearch)
  	//}}AFX_MSG_MAP
+ 	ON_WM_SIZE()
+ 	ON_WM_SIZING()
  END_MESSAGE_MAP()
  
***************
*** 374,379 ****
  {
  	
! 	long count;
! 	COMTHROW(results->get_Count(&count));
  
  	if(count > 0 ) //don't want to grab stuff out of an empty list
--- 377,382 ----
  {
  	
! 	long count = 0;
! 	if( results) COMTHROW(results->get_Count(&count));
  
  	if(count > 0 ) //don't want to grab stuff out of an empty list
***************
*** 383,406 ****
  
  		CSearchCtrl *TheCtrl = GetCtrl();
! 		TheCtrl->BeginTransaction();
  
- 		long selected = m_lstResults.GetSelectionMark() + 1; //IMgaFCOs 1 based, GetSelectionMark 0 based
- 		CComPtr<IMgaFCO> selectedFCO;
- 		COMTHROW(results->get_Item(selected,&selectedFCO));
- 		
- 		//want to be able to search for references to this object in the special search
- 		CBstr bstr;
- 		CString name;
- 		COMTHROW( selectedFCO->get_Name(bstr));
- 		name = CString( bstr) + " References";
- 		m_stcRefCtrl.SetWindowText(name);
- 		m_stcRefCtrl.ShowWindow(TRUE);
- 		specialSearchFCO = selectedFCO;
- 		
- 		
- 		//CComPtr<IMgaObject> selectedObject = (IMgaObject *)(selectedFCO.p); // WAS this the scapegoat?
- 		CComQIPtr<IMgaObject> selectedObject( selectedFCO);
- 		TheCtrl->CommitTransaction();
- 		TheCtrl->ClickOnObject(selectedObject);
  		*pResult = 0;
  	}
--- 386,420 ----
  
  		CSearchCtrl *TheCtrl = GetCtrl();
! 		try
! 		{
! 			TheCtrl->BeginTransaction();
! 
! 			long selected = m_lstResults.GetSelectionMark() + 1; //IMgaFCOs 1 based, GetSelectionMark 0 based
! 			CComPtr<IMgaFCO> selectedFCO;
! 			// selected might be 0 because GeSelectionMark might have returned -1
! 			if( selected >= 1 && selected <= count)
! 			{
! 				COMTHROW(results->get_Item(selected,&selectedFCO)); // crashed probably when called with 0
! 				
! 				//want to be able to search for references to this object in the special search
! 				CBstr bstr;
! 				CString name;
! 				COMTHROW( selectedFCO->get_Name(bstr));
! 				name = CString( bstr) + " References";
! 				m_stcRefCtrl.SetWindowText(name);
! 				m_stcRefCtrl.ShowWindow(TRUE);
! 				specialSearchFCO = selectedFCO;
! 			}
! 			
! 			//CComPtr<IMgaObject> selectedObject = (IMgaObject *)(selectedFCO.p); // WAS this the scapegoat?
! 			CComQIPtr<IMgaObject> selectedObject( selectedFCO);
! 			TheCtrl->CommitTransaction();
! 			if( selectedObject) TheCtrl->ClickOnObject(selectedObject);
! 		}
! 		catch( ...)
! 		{
! 			TheCtrl->AbortTransaction();
! 		}
  
  		*pResult = 0;
  	}
***************
*** 411,416 ****
  {
  
! 	long count;
! 	COMTHROW(results->get_Count(&count));
  
  
--- 425,430 ----
  {
  
! 	long count = 0;
! 	if( results) COMTHROW(results->get_Count(&count));
  
  
***************
*** 420,443 ****
  
  		CSearchCtrl *TheCtrl = GetCtrl();
! 		TheCtrl->BeginTransaction();
  
- 		long selected = m_lstResults.GetSelectionMark() + 1; //IMgaFCOs 1 based, GetSelectionMark 0 based
- 		CComPtr<IMgaFCO> selectedFCO;
- 		COMTHROW(results->get_Item(selected,&selectedFCO));
- 		
- 		//want to be able to search for references to this object in the special search
- 		CBstr bstr;
- 		CString name;
- 		COMTHROW( selectedFCO->get_Name(bstr));
- 		name = CString( bstr) + " References";
- 		m_stcRefCtrl.SetWindowText(name);
- 		m_stcRefCtrl.ShowWindow(TRUE);
- 		specialSearchFCO = selectedFCO;
- 		
- 		
- 		//CComPtr<IMgaObject> selectedObject = (IMgaObject *)(selectedFCO.p); // WAS this the scapegoat?
- 		CComQIPtr<IMgaObject> selectedObject( selectedFCO);
- 		TheCtrl->CommitTransaction();
- 		TheCtrl->DblClickOnObject(selectedObject);
  		*pResult = 0;
  	}
--- 434,468 ----
  
  		CSearchCtrl *TheCtrl = GetCtrl();
! 		try
! 		{
! 			TheCtrl->BeginTransaction();
! 
! 			long selected = m_lstResults.GetSelectionMark() + 1; //IMgaFCOs 1 based, GetSelectionMark 0 based
! 			CComPtr<IMgaFCO> selectedFCO;
! 			// selected might be 0 because GeSelectionMark might have returned -1
! 			if( selected >= 1 && selected <= count)
! 			{
! 				COMTHROW(results->get_Item(selected,&selectedFCO)); // crashed probably when called with 0
! 				
! 				//want to be able to search for references to this object in the special search
! 				CBstr bstr;
! 				CString name;
! 				COMTHROW( selectedFCO->get_Name(bstr));
! 				name = CString( bstr) + " References";
! 				m_stcRefCtrl.SetWindowText(name);
! 				m_stcRefCtrl.ShowWindow(TRUE);
! 				specialSearchFCO = selectedFCO;
! 			}
! 			
! 			//CComPtr<IMgaObject> selectedObject = (IMgaObject *)(selectedFCO.p); // WAS this the scapegoat?
! 			CComQIPtr<IMgaObject> selectedObject( selectedFCO);
! 			TheCtrl->CommitTransaction();
! 			if( selectedObject) TheCtrl->DblClickOnObject(selectedObject);
! 		}
! 		catch(...)
! 		{
! 			TheCtrl->AbortTransaction();
! 		}
  
  		*pResult = 0;
  	}
***************
*** 482,487 ****
  		CWnd::UpdateData(TRUE);
  	}
- 
  	
  	
  }
--- 507,536 ----
  		CWnd::UpdateData(TRUE);
  	}
  	
  	
+ 	
+ }
+ 
+ void CSearchDlg::OnSize(UINT nType, int cx, int cy)
+ {
+ 	CDialog::OnSize(nType, cx, cy);
+ 
+ 	if( nType == SIZE_MINIMIZED) return; 
+ 
+ 	if( cx >= 0 && cy >= 0 && m_lstResults.GetSafeHwnd())
+ 	{
+ 		CRect r0;
+ 		m_lstResults.GetWindowRect( &r0); ScreenToClient( &r0);
+ 
+ 		//presumption: r0.left is the horiz_margin on both sides
+ 		cy -= r0.top + r0.left; // we use the horiz_margin when determining height
+ 		cx -= 2 * r0.left;
+ 		m_lstResults.SetWindowPos( 0, 0, 0, cx, cy, SWP_NOMOVE|SWP_NOZORDER|SWP_SHOWWINDOW);
+ 	}
+ }
+ 
+ void CSearchDlg::OnSizing(UINT fwSide, LPRECT pRect)
+ {
+ 	CDialog::OnSizing(fwSide, pRect);
+ 	// GMESearch::OnSizing() responsible for preventing shrinking the window too much
  }

Index: SearchDlg.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchDlg.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** SearchDlg.h	14 Feb 2003 21:21:51 -0000	1.8
--- SearchDlg.h	17 Mar 2006 15:48:47 -0000	1.9
***************
*** 87,90 ****
--- 87,93 ----
  	//}}AFX_MSG
  	DECLARE_MESSAGE_MAP()
+ public:
+ 	afx_msg void OnSize(UINT nType, int cx, int cy);
+ 	afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
  };
  



More information about the GME-commit mailing list