Exemple #1
0
void CWordsBaseFrame::OnWordLevelChange( UINT nID )
{
	auto nDelta = nID == ID_TB_WL_UP ? 1 : -1;
	set<long> setSelectedRows;

	int startCol;long startRow;int endCol;long endRow;
	int rt = m_wndGrid.EnumFirstBlock(&startCol, &startRow, &endCol, &endRow);
	while(rt == UG_SUCCESS){
		for(long i = startRow; i <= endRow; i++)
			setSelectedRows.insert(i);
		rt = m_wndGrid.EnumNextBlock(&startCol, &startRow, &endCol, &endRow);
	}
	auto nColWord = GetDataGridNewRecordInfo()[0].nCol;

	for(long row : setSelectedRows){
		auto pszWord = m_wndGrid.QuickGetText(nColWord, row);
		auto nLevel = GetWordLevel(pszWord);
		auto nNewLevel = boost::algorithm::clamp(nLevel + nDelta, -3, 3);
		if(nLevel != nNewLevel){
			CString sql;
			sql.Format(_T("UPDATE WORDSLANG SET LEVEL=%d WHERE LANGID=%d AND WORD='%s'"),
				nNewLevel, m_lbuSettings.nLangID, DoubleApostrophe(pszWord));
			m_rsWordLevel.Open(sql);
			m_mapWord2Level[pszWord] = nNewLevel;
		}
	}
	m_wndGrid.RedrawAll();
}
Exemple #2
0
int CWordsBaseFrame::GetWordLevel( LPCTSTR pszWord )
{
	if(m_mapWord2Level.count(pszWord) == 0){
		CString sql;
		sql.Format(_T("SELECT LEVEL FROM WORDSLANG WHERE LANGID=%d AND WORD='%s'"),
			m_lbuSettings.nLangID, DoubleApostrophe(pszWord));
		m_rsWordLevel.Open(sql);
		m_mapWord2Level[pszWord] = m_rsWordLevel.IsEof() ? 0 : m_rsWordLevel.GetFieldValueAsInt(_T("LEVEL"));
	}
	return m_mapWord2Level.at(pszWord);
}
Exemple #3
0
void CFilterDlg::OnOK()
{
	CDialog::OnOK();
	m_strFilter = DoubleApostrophe(theApp.AutoCorrect(m_strFilter, m_rsAutoCorrect));
}