Grab pending (unsaved) wxGridCellEditor cell text and stuff into fp_lib_table.

This commit is contained in:
Dick Hollenbeck 2013-10-22 14:29:37 -05:00
parent 5862306295
commit c4d29b4258
2 changed files with 21 additions and 12 deletions

View File

@ -83,8 +83,10 @@ if( CMAKE_COMPILER_IS_GNUCXX )
OUTPUT_VARIABLE GCC_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" )
# Establish -Wall early, so specialized relaxations of this may come
# subsequently on the command line, such as in pcbnew/github/CMakeLists.txt
set( CMAKE_C_FLAGS "-Wall" )
set( CMAKE_CXX_FLAGS "-Wall" )
# The optimization level is -O1 instead of the usual -O2 level because
# boost::polygon has a function (inflate polygon) broken by the -O2 level

View File

@ -25,7 +25,6 @@
/* TODO:
*) Grab text from any pending ChoiceEditor when OK button pressed.
*) After any change to uri, reparse the environment variables.
*/
@ -251,17 +250,21 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
int selRowCount;
int selColCount;
/// If the cursor is not on a valid cell, because there are no rows at all, return -1,
/// else return a 0 based column index.
int getCursorCol() const
{
return m_cur_grid->GetGridCursorCol();
}
/// If the cursor is not on a valid cell, because there are no rows at all, return -1,
/// else return a 0 based row index.
int getCursorRow() const
{
return m_cur_grid->GetGridCursorRow();
}
/// Gets the selected area into a sensible rectangle of sel{Row,Col}{Start,Count} above.
/// Puts the selected area into a sensible rectangle of sel{Row,Col}{Start,Count} above.
void getSelectedArea()
{
wxGridCellCoordsArray topLeft = m_cur_grid->GetSelectionBlockTopLeft();
@ -374,6 +377,7 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
}
}
/**
* Function verifyTables
* trims important fields, removes blank row entries, and checks for duplicates.
@ -617,6 +621,9 @@ class DIALOG_FP_LIB_TABLE : public DIALOG_FP_LIB_TABLE_BASE
{
int dialogRet = 0;
// stuff any pending cell editor text into the table.
m_cur_grid->SaveEditControlValue();
if( verifyTables() )
{
if( m_global_model != *m_global )
@ -893,8 +900,8 @@ void DIALOG_FP_LIB_TABLE::paste()
}
else
{
const int cur_row = getCursorRow(); // -1 is ok
const int cur_col = std::max( getCursorCol(), 0 ); // no -1
const int cur_row = std::max( getCursorRow(), 0 ); // no -1
const int cur_col = std::max( getCursorCol(), 0 );
wxStringTokenizer rows( cb_text, ROW_SEP, wxTOKEN_RET_EMPTY );