ENH: add a check to avoid quitting before rebuilding
This commit is contained in:
parent
df79a0bc47
commit
ae25b63b6a
|
@ -108,6 +108,7 @@ BEGIN_MESSAGE_MAP(CMakeSetupDialog, CDialog)
|
||||||
ON_WM_SYSCOMMAND()
|
ON_WM_SYSCOMMAND()
|
||||||
ON_WM_PAINT()
|
ON_WM_PAINT()
|
||||||
ON_WM_QUERYDRAGICON()
|
ON_WM_QUERYDRAGICON()
|
||||||
|
ON_BN_CLICKED(IDOK, OnOK)
|
||||||
ON_BN_CLICKED(IDC_BuildProjects, OnBuildProjects)
|
ON_BN_CLICKED(IDC_BuildProjects, OnBuildProjects)
|
||||||
ON_CBN_EDITCHANGE(IDC_WhereBuild, OnChangeWhereBuild)
|
ON_CBN_EDITCHANGE(IDC_WhereBuild, OnChangeWhereBuild)
|
||||||
ON_CBN_EDITCHANGE(IDC_WhereSource, OnChangeWhereSource)
|
ON_CBN_EDITCHANGE(IDC_WhereSource, OnChangeWhereSource)
|
||||||
|
@ -444,6 +445,7 @@ void CMakeSetupDialog::OnBuildProjects()
|
||||||
m_BuildPathChanged = false;
|
m_BuildPathChanged = false;
|
||||||
// put the cursor back
|
// put the cursor back
|
||||||
::SetCursor(LoadCursor(NULL, IDC_ARROW));
|
::SetCursor(LoadCursor(NULL, IDC_ARROW));
|
||||||
|
m_CacheEntriesList.ClearDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -658,3 +660,19 @@ void CMakeSetupDialog::OnGetMinMaxInfo( MINMAXINFO FAR* lpMMI )
|
||||||
lpMMI->ptMinTrackSize.y = 272;
|
lpMMI->ptMinTrackSize.y = 272;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMakeSetupDialog::OnOK()
|
||||||
|
{
|
||||||
|
if(m_CacheEntriesList.IsDirty())
|
||||||
|
{
|
||||||
|
if(MessageBox("You have changed options but not rebuilt, "
|
||||||
|
"are you sure you want to exit?", "Confirm Exit",
|
||||||
|
MB_YESNO) == IDYES)
|
||||||
|
{
|
||||||
|
CDialog::OnOK();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CDialog::OnOK();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -68,6 +68,7 @@ protected:
|
||||||
//{{AFX_MSG(CMakeSetupDialog)
|
//{{AFX_MSG(CMakeSetupDialog)
|
||||||
virtual BOOL OnInitDialog();
|
virtual BOOL OnInitDialog();
|
||||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||||
|
afx_msg void OnOK();
|
||||||
afx_msg void OnPaint();
|
afx_msg void OnPaint();
|
||||||
afx_msg HCURSOR OnQueryDragIcon();
|
afx_msg HCURSOR OnQueryDragIcon();
|
||||||
afx_msg void OnBrowseWhereSource();
|
afx_msg void OnBrowseWhereSource();
|
||||||
|
|
|
@ -143,8 +143,7 @@ int CPropertyList::AddProperty(const char* name,
|
||||||
{
|
{
|
||||||
pItem->m_curValue = value;
|
pItem->m_curValue = value;
|
||||||
pItem->m_HelpString = helpString;
|
pItem->m_HelpString = helpString;
|
||||||
m_Dirty = true;
|
InvalidateList();
|
||||||
Invalidate();
|
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
@ -350,8 +349,11 @@ void CPropertyList::OnChangeEditBox()
|
||||||
m_editBox.GetWindowText(newStr);
|
m_editBox.GetWindowText(newStr);
|
||||||
|
|
||||||
CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel);
|
CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel);
|
||||||
pItem->m_curValue = newStr;
|
if(pItem->m_curValue != newStr)
|
||||||
m_Dirty = true;
|
{
|
||||||
|
pItem->m_curValue = newStr;
|
||||||
|
m_Dirty = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPropertyList::OnCheckBox()
|
void CPropertyList::OnCheckBox()
|
||||||
|
@ -408,7 +410,7 @@ void CPropertyList::OnButton()
|
||||||
cmSystemTools::ConvertToUnixSlashes(path);
|
cmSystemTools::ConvertToUnixSlashes(path);
|
||||||
pItem->m_curValue = path.c_str();
|
pItem->m_curValue = path.c_str();
|
||||||
m_Dirty = true;
|
m_Dirty = true;
|
||||||
Invalidate();
|
InvalidateList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pItem->m_nItemType == CPropertyList::PATH)
|
else if (pItem->m_nItemType == CPropertyList::PATH)
|
||||||
|
@ -427,7 +429,7 @@ void CPropertyList::OnButton()
|
||||||
cmSystemTools::ConvertToUnixSlashes(path);
|
cmSystemTools::ConvertToUnixSlashes(path);
|
||||||
pItem->m_curValue = path.c_str();
|
pItem->m_curValue = path.c_str();
|
||||||
m_Dirty = true;
|
m_Dirty = true;
|
||||||
Invalidate();
|
InvalidateList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -579,7 +581,7 @@ void CPropertyList::OnDelete()
|
||||||
m_PropertyItems.erase(pItem);
|
m_PropertyItems.erase(pItem);
|
||||||
delete pItem;
|
delete pItem;
|
||||||
this->DeleteString(m_curSel);
|
this->DeleteString(m_curSel);
|
||||||
Invalidate();
|
InvalidateList();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPropertyList::OnHelp()
|
void CPropertyList::OnHelp()
|
||||||
|
@ -603,5 +605,12 @@ void CPropertyList::RemoveAll()
|
||||||
delete pItem;
|
delete pItem;
|
||||||
this->DeleteString(0);
|
this->DeleteString(0);
|
||||||
}
|
}
|
||||||
Invalidate();
|
InvalidateList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CPropertyList::InvalidateList()
|
||||||
|
{
|
||||||
|
Invalidate();
|
||||||
|
m_Dirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,9 @@ public:
|
||||||
|
|
||||||
// Operations
|
// Operations
|
||||||
public:
|
public:
|
||||||
|
bool IsDirty() { return m_Dirty; }
|
||||||
|
void ClearDirty() { m_Dirty = false; }
|
||||||
|
|
||||||
int AddItem(CString txt);
|
int AddItem(CString txt);
|
||||||
int AddProperty(const char* name,
|
int AddProperty(const char* name,
|
||||||
const char* value,
|
const char* value,
|
||||||
|
@ -107,7 +110,8 @@ protected:
|
||||||
void InvertLine(CDC* pDC,CPoint ptFrom,CPoint ptTo);
|
void InvertLine(CDC* pDC,CPoint ptFrom,CPoint ptTo);
|
||||||
void DisplayButton(CRect region);
|
void DisplayButton(CRect region);
|
||||||
int AddPropItem(CPropertyItem* pItem);
|
int AddPropItem(CPropertyItem* pItem);
|
||||||
|
void InvalidateList();
|
||||||
|
|
||||||
CComboBox m_cmbBox;
|
CComboBox m_cmbBox;
|
||||||
CEdit m_editBox;
|
CEdit m_editBox;
|
||||||
CButton m_btnCtrl;
|
CButton m_btnCtrl;
|
||||||
|
|
Loading…
Reference in New Issue