void TableEditor::endEdit(int row,int col,bool accept,bool replace) { Q3Table::endEdit(row,col,accept,replace); setCellContentFromEditor(row,col); if(isEmptyRow(row)) if(numRows()>1) removeRow(row); if(!isEmptyRow(numRows()-1)) addEmptyRow(); }
void Ledger::writeCsv(QTextStream &stream) { int i, j; QString field; for( i=0; i<rowCount(); i++ ){ if( i==rowCount()-1 && isEmptyRow(i) ) break; for( j=0; j<NCOL; j++ ){ if( !item(i,j) || item(i,j)->data(Qt::EditRole).isNull() ) field = ""; else if( j==COL_DATE ) field = item(i,j)->data(Qt::EditRole).toDate().toString(Qt::ISODate); else if( j==COL_PRICE ) field.setNum(item(i,j)->data(Qt::EditRole).toDouble(),'f',2); else{ field = item(i,j)->data(Qt::EditRole).toString(); if( field.contains( QRegularExpression("[\",\n]") ) ){ field.replace("\"", "\"\""); field.prepend(QChar('\"')); field.append(QChar('\"')); } } stream << field; if(j==NCOL-1) stream << '\n'; else stream << ','; } } stream.flush(); undoStack->setClean(); }
QString Matrix::saveText() { QString text = "<data>\n"; int cols=d_table->numCols(); int rows=d_table->numRows(); for (int i=0; i<rows; i++) { if (!isEmptyRow(i)) { text+=QString::number(i)+"\t"; for (int j=0; j<cols-1; j++) text+=d_table->text(i,j) + "\t"; text+=d_table->text(i,cols-1)+"\n"; } } return text + "</data>\n"; }
QString Matrix::saveText() { QString out_text = "<data>\n"; int cols = numRows(); int rows = numCols(); for(int i=0; i<rows; i++) { if (!isEmptyRow(i)) { out_text += QString::number(i)+"\t"; for(int j=0; j<cols-1; j++) out_text += text(i, j) + "\t"; out_text += text(i,cols-1)+"\n"; } } return out_text + "</data>\n"; }