[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