int CommandListEditor::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = TableEditor::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: adjustCols(); break; default: ; } _id -= 1; } return _id; }
void TableEditor::paste() { QStringList lines=QStringList::split("\n",QApplication::clipboard()->text(QClipboard::Clipboard)); setNumRows(lines.size()); int r=0; for(QStringList::Iterator i=lines.begin();i!=lines.end();i++,r++) { for(int c=0;c<numCols();c++) { QString value=(*i).section(",",c,c); /*if(!value.isEmpty()) */setText(r,c,value); } } adjustCols(); }
void PictureListEditor::edit(PictureList *l) { list=l; PictureList &pl=*l; int n=list->size(); setNumRows(n); for(int i=0;i<n;i++) { setText(i,0,QString::number(pl[i].low)); setText(i,1,QString::number(pl[i].high)); setText(i,2,pl[i].path); } addEmptyRow(); adjustCols(); }
void StringListEditor::edit(StringList *l) { list=l; StringList &sl=*l; int n=list->size(); setNumRows(n); for(int i=0;i<n;i++) { setText(i,0,QString::number(sl[i].low)); setText(i,1,QString::number(sl[i].high)); setText(i,2,sl[i].text); } addEmptyRow(); adjustCols(); }
int TableEditor::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = Q3Table::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: sorted(); break; case 1: adjustCols(); break; case 2: copy(); break; case 3: paste(); break; case 4: clear(); break; case 5: contextMenu((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< const QPoint(*)>(_a[3]))); break; default: ; } _id -= 6; } return _id; }
void CommandListEditor::edit(CommandList *l) { list=l; CommandList &pl=*l; int n=list->size(); setNumRows(n); for(int i=0;i<n;i++) { setText(i,0,QString::number(pl[i].val)); setText(i,1,pl[i].text); /* for(int k=0;k<FAST_KEYS_COUNT;k++) if(pl[i].key==FAST_KEYS[k].key) { setText(i,2,FAST_KEYS[k].name); break; } */ setText(i,2,QString::number(pl[i].filter_value)); } addEmptyRow(); adjustCols(); }
void KoCsvImportDialog::Private::fillTable() { int row, column; bool lastCharDelimiter = false; enum { Start, InQuotedField, MaybeQuotedFieldEnd, QuotedFieldEnd, MaybeInNormalField, InNormalField } state = Start; QChar x; QString field; qApp->setOverrideCursor(Qt::WaitCursor); for (row = 0; row < dialog->m_sheet->rowCount(); ++row) { for (column = 0; column < dialog->m_sheet->columnCount(); ++column) { if(QTableWidgetItem* item = dialog->m_sheet->item(row, column)) item->setText(""); } } int maxColumn = 1; row = column = 1; QTextStream inputStream(data, QIODevice::ReadOnly); kDebug(30501) <<"Encoding:" << codec->name(); inputStream.setCodec( codec ); int delimiterIndex = 0; const int delimiterLength = delimiter.size(); bool lastCharWasCr = false; // Last character was a Carriage Return while (!inputStream.atEnd()) { inputStream >> x; // read one char // ### TODO: we should perhaps skip all other control characters if ( x == '\r' ) { // We have a Carriage Return, assume that its role is the one of a LineFeed lastCharWasCr = true; x = '\n'; // Replace by Line Feed } else if ( x == '\n' && lastCharWasCr ) { // The end of line was already handled by the Carriage Return, so do nothing for this character lastCharWasCr = false; continue; } else if ( x == QChar( 0xc ) ) { // We have a FormFeed, skip it lastCharWasCr = false; continue; } else { lastCharWasCr = false; } if ( column > maxColumn ) maxColumn = column; switch (state) { case Start : if (x == textQuote) { state = InQuotedField; } else if (delimiterIndex < delimiterLength && x == delimiter.at(delimiterIndex)) { field += x; delimiterIndex++; if (field.right(delimiterIndex) == delimiter) { if ((ignoreDuplicates == false) || (lastCharDelimiter == false)) column += delimiterLength; lastCharDelimiter = true; field.clear(); delimiterIndex = 0; state = Start; } else if (delimiterIndex >= delimiterLength) delimiterIndex = 0; } else if (x == '\n') { ++row; column = 1; if ( row > ( endRow - startRow ) && endRow >= 0 ) break; } else { field += x; state = MaybeInNormalField; } break; case InQuotedField : if (x == textQuote) { state = MaybeQuotedFieldEnd; } else if (x == '\n') { setText(row - startRow, column - startCol, field); field.clear(); ++row; column = 1; if ( row > ( endRow - startRow ) && endRow >= 0 ) break; state = Start; } else { field += x; } break; case MaybeQuotedFieldEnd : if (x == textQuote) { field += x; state = InQuotedField; } else if (x == '\n') { setText(row - startRow, column - startCol, field); field.clear(); ++row; column = 1; if ( row > ( endRow - startRow ) && endRow >= 0 ) break; state = Start; } else if (delimiterIndex < delimiterLength && x == delimiter.at(delimiterIndex)) { field += x; delimiterIndex++; if (field.right(delimiterIndex) == delimiter) { setText(row - startRow, column - startCol, field.left(field.count()-delimiterIndex)); field.clear(); if ((ignoreDuplicates == false) || (lastCharDelimiter == false)) column += delimiterLength; lastCharDelimiter = true; field.clear(); delimiterIndex = 0; } else if (delimiterIndex >= delimiterLength) delimiterIndex = 0; state = Start; } else { state = QuotedFieldEnd; } break; case QuotedFieldEnd : if (x == '\n') { setText(row - startRow, column - startCol, field); field.clear(); ++row; column = 1; if ( row > ( endRow - startRow ) && endRow >= 0 ) break; state = Start; } else if (delimiterIndex < delimiterLength && x == delimiter.at(delimiterIndex)) { field += x; delimiterIndex++; if (field.right(delimiterIndex) == delimiter) { setText(row - startRow, column - startCol, field.left(field.count()-delimiterIndex)); field.clear(); if ((ignoreDuplicates == false) || (lastCharDelimiter == false)) column += delimiterLength; lastCharDelimiter = true; field.clear(); delimiterIndex = 0; } else if (delimiterIndex >= delimiterLength) delimiterIndex = 0; state = Start; } else { state = QuotedFieldEnd; } break; case MaybeInNormalField : if (x == textQuote) { field.clear(); state = InQuotedField; break; } case InNormalField : if (x == '\n') { setText(row - startRow, column - startCol, field); field.clear(); ++row; column = 1; if ( row > ( endRow - startRow ) && endRow >= 0 ) break; state = Start; } else if (delimiterIndex < delimiterLength && x == delimiter.at(delimiterIndex)) { field += x; delimiterIndex++; if (field.right(delimiterIndex) == delimiter) { setText(row - startRow, column - startCol, field.left(field.count()-delimiterIndex)); field.clear(); if ((ignoreDuplicates == false) || (lastCharDelimiter == false)) column += delimiterLength; lastCharDelimiter = true; field.clear(); delimiterIndex = 0; } else if (delimiterIndex >= delimiterLength) delimiterIndex = 0; state = Start; } else { field += x; } } if (delimiter.isEmpty() || x != delimiter.at(0)) lastCharDelimiter = false; } if ( !field.isEmpty() ) { // the last line of the file had not any line end setText(row - startRow, column - startCol, field); ++row; field.clear(); } columnsAdjusted = true; adjustRows( row - startRow ); adjustCols( maxColumn - startCol ); for (column = 0; column < dialog->m_sheet->columnCount(); ++column) { const QTableWidgetItem* headerItem = dialog->m_sheet->horizontalHeaderItem(column); if (!headerItem || !formatList.contains(headerItem->text())) { dialog->m_sheet->setHorizontalHeaderItem(column, new QTableWidgetItem(i18n("Generic"))); } } dialog->m_rowStart->setMinimum(1); dialog->m_colStart->setMinimum(1); dialog->m_rowStart->setMaximum(row); dialog->m_colStart->setMaximum(maxColumn); dialog->m_rowEnd->setMinimum(1); dialog->m_colEnd->setMinimum(1); dialog->m_rowEnd->setMaximum(row); dialog->m_colEnd->setMaximum(maxColumn); dialog->m_rowEnd->setValue(endRow == -1 ? row : endRow); dialog->m_colEnd->setValue(endCol == -1 ? maxColumn : endCol); qApp->restoreOverrideCursor(); }