int main( int argc, char** argv ) { QApplication app( argc, argv ); // Create a report KDReports::Report report; QFile reportFile( ":/MailMerge.xml" ); if( !reportFile.open( QIODevice::ReadOnly ) ) { QMessageBox::warning( 0, QObject::tr( "Warning" ), QObject::tr( "Could not open report description file 'MailMerge.xml'. " "Please start this program from the HelloWorldXML directory." ) ); return -1; } TableModel members; members.setDataHasVerticalHeaders( false ); members.loadFromCSV( ":/members.csv" ); report.associateModel( QLatin1String( "members" ), &members); for (int i = 0; i < members.rowCount(); i++ ) { report.setCurrentRow(&members, i); KDReports::ErrorDetails details; if( !report.loadFromXML( &reportFile, &details ) ) { QMessageBox::warning( 0, QObject::tr( "Warning" ), QObject::tr( "Could not parse report description file:\n%1" ).arg(details.message()) ); reportFile.close(); return -2; } if ( i < members.rowCount() - 1 ) report.addPageBreak(); // show a print preview: } KDReports::PreviewDialog preview( &report ); return preview.exec(); }
bool TableView::moveSelectedDown() { QList<int> rows = getSelectedRows(); qSort(rows.begin(), rows.end(), qGreater<int>()); TableModel * currentModel = static_cast<TableModel *>(model()); for(int i = 0; i < rows.size(); i++) { if(rows[i] == currentModel->rowCount() - 1) { break; } currentModel->swapRows(rows[i], rows[i] + 1); rows[i] += 1; } setSelectedRows(rows); return true; }