void TestPageCommands::testRemovePageCommand4() // auto remove of frames { KWDocument document; KWPageInsertCommand insertCommand(&document, 0); insertCommand.redo(); KWFrameSet *fs = new KWFrameSet(); document.addFrameSet(fs); MockShape *shape1 = new MockShape(); new KWFrame(shape1, fs); KWTextFrameSet *tfs = new KWTextFrameSet(&document, Words::MainTextFrameSet); document.addFrameSet(tfs); MockShape *shape2 = new MockShape(); shape2->setUserData(new KoTextShapeData()); new KWTextFrame(shape2, tfs); KWTextFrameSet *header = new KWTextFrameSet(&document, Words::EvenPagesHeaderTextFrameSet); document.addFrameSet(header); MockShape *shape3 = new MockShape(); shape3->setUserData(new KoTextShapeData()); new KWTextFrame(shape3, header); KWPageRemoveCommand command(&document, insertCommand.page()); QCOMPARE(document.frameSetCount(), 3); command.redo(); QCOMPARE(document.frameSetCount(), 2); // only the main&header framesets are left QVERIFY(document.frameSets().contains(tfs)); QVERIFY(document.frameSets().contains(header)); QCOMPARE(fs->frameCount(), 0); QCOMPARE(tfs->frameCount(), 0); QCOMPARE(header->frameCount(), 0); command.undo(); QCOMPARE(document.frameSetCount(), 3); QCOMPARE(fs->frameCount(), 1); QCOMPARE(tfs->frameCount(), 0); // doesn't get auto-added QCOMPARE(header->frameCount(), 0); // doesn't get auto-added }
void TestPageCommands::testRemovePageCommand3() // test restore all properties { KWDocument document; KWPageInsertCommand insertCommand(&document, 0); insertCommand.redo(); KWPage page = insertCommand.page(); KWPageStyle style = page.pageStyle(); style.setHasMainTextFrame(false); style.setFootnoteDistance(10); KoPageLayout layout; layout.width = 400; layout.height = 300; layout.leftMargin = 4; layout.rightMargin = 6; layout.topMargin = 7; layout.bottomMargin = 5; style.setPageLayout(layout); page.setPageStyle(style); KWPageRemoveCommand command(&document, page); command.redo(); QVERIFY(!page.isValid()); command.undo(); page = document.pageManager()->begin(); QVERIFY(page.isValid()); QVERIFY(insertCommand.page() != page); QCOMPARE(page.pageNumber(), 1); KWPageStyle style2 = page.pageStyle(); QCOMPARE(style2, style); QCOMPARE(style2.hasMainTextFrame(), false); QCOMPARE(style2.footnoteDistance(), 10.); KoPageLayout layout2 = style2.pageLayout(); QCOMPARE(layout2, layout); QCOMPARE(page.pageStyle(), style); QCOMPARE(page.width(), 400.); }
void TestPageCommands::testRemovePageCommand2() // auto remove of frames { // In contrary to the insert command the remove command will remove frames // of all types and reinsert only non-auto-generated ones. // lets make sure we it does that. KWDocument document; KWFrameSet *fs = new KWFrameSet(); document.addFrameSet(fs); KWTextFrameSet *tfs = new KWTextFrameSet(&document, Words::MainTextFrameSet); document.addFrameSet(tfs); KWPageInsertCommand insertCommand(&document, 0); insertCommand.redo(); MockShape *shape1 = new MockShape(); new KWFrame(shape1, fs); MockShape *shape2 = new MockShape(); shape2->setUserData(new KoTextShapeData()); new KWTextFrame(shape2, tfs); KWPageRemoveCommand command(&document, insertCommand.page()); QCOMPARE(document.frameSetCount(), 2); command.redo(); QCOMPARE(document.frameSetCount(), 1); // only the main frameset is left QCOMPARE(document.frameSets().first(), tfs); QCOMPARE(fs->frameCount(), 0); QCOMPARE(tfs->frameCount(), 0); command.undo(); QCOMPARE(document.frameSetCount(), 2); QCOMPARE(fs->frameCount(), 1); QCOMPARE(tfs->frameCount(), 0); // doesn't get auto-added }
void DataStorage::updateData(const zmq_recorder::Packet& data) { try { sqlite::command insertCommand(*connection_, "INSERT INTO Packets ( " "Data, " "Timestamp) " "VALUES ( " "?, " //Data "? " //Timestamp ");"); insertCommand.bind(1, data.Data); insertCommand.bind(2, data.Timestamp); //this gets the current timestamp //We do not use the error-code here, but it is good to know that there is one if we need it int errorNum = insertCommand.exec(); } catch (sqlite::sqlite_error& error) { std::cout << __FUNCTION__ << ": " << error.what() << std::endl; } }
void TestPageCommands::testRemovePageCommand() // move of frames { KWDocument document; KWPageInsertCommand insertCommand(&document, 0); insertCommand.redo(); KWFrameSet *fs = new KWFrameSet(); MockShape *shape = new MockShape(); KWFrame *frame = new KWFrame(shape, fs); Q_UNUSED(frame); document.addFrameSet(fs); KWPageInsertCommand insertCommand2(&document, 1); insertCommand2.redo(); MockShape *shape2 = new MockShape(); QPointF pos = QPointF(20, insertCommand2.page().offsetInDocument() + 10); shape2->setPosition(pos); KWFrame *frame2 = new KWFrame(shape2, fs); Q_UNUSED(frame2); QCOMPARE(document.pageCount(), 2); QCOMPARE(document.frameSetCount(), 1); QCOMPARE(fs->frameCount(), 2); // remove page2 KWPageRemoveCommand command1(&document, insertCommand2.page()); command1.redo(); QCOMPARE(insertCommand.page().pageNumber(), 1); QCOMPARE(insertCommand2.page().isValid(), false); QCOMPARE(document.pageCount(), 1); QCOMPARE(document.frameSetCount(), 1); QCOMPARE(fs->frameCount(), 1); QCOMPARE(shape2->position(), pos); // shapes are not deleted, just removed from the document command1.undo(); QCOMPARE(insertCommand.page().pageNumber(), 1); QCOMPARE(document.pageCount(), 2); QCOMPARE(document.frameSetCount(), 1); QCOMPARE(fs->frameCount(), 2); QCOMPARE(shape2->position(), pos); // not moved. // remove page 1 KWPageRemoveCommand command2(&document, insertCommand.page()); command2.redo(); QCOMPARE(insertCommand.page().isValid(), false); QCOMPARE(document.pageCount(), 1); QCOMPARE(document.frameSetCount(), 1); QCOMPARE(fs->frameCount(), 1); QCOMPARE(shape->position(), QPointF(0,0)); QCOMPARE(shape2->position(), QPointF(20, 10)); // moved! command2.undo(); QCOMPARE(document.pageCount(), 2); QCOMPARE(document.frameSetCount(), 1); QCOMPARE(fs->frameCount(), 2); QCOMPARE(shape->position(), QPointF(0,0)); QCOMPARE(shape2->position(), pos); // moved back! }
void TemplatesInsertCommand::slotMapped( int cmd ) { emit insertCommand( static_cast<Command>( cmd ) ); switch( cmd ) { case TemplatesInsertCommand::CQuote: emit insertCommand("%QUOTE"); break; case TemplatesInsertCommand::CText: emit insertCommand("%TEXT"); break; case TemplatesInsertCommand::COMsgId: emit insertCommand("%OMSGID"); break; case TemplatesInsertCommand::CODate: emit insertCommand("%ODATE"); break; case TemplatesInsertCommand::CODateShort: emit insertCommand("%ODATESHORT"); break; case TemplatesInsertCommand::CODateEn: emit insertCommand("%ODATEEN"); break; case TemplatesInsertCommand::CODow: emit insertCommand("%ODOW"); break; case TemplatesInsertCommand::COTime: emit insertCommand("%OTIME"); break; case TemplatesInsertCommand::COTimeLong: emit insertCommand("%OTIMELONG"); break; case TemplatesInsertCommand::COTimeLongEn: emit insertCommand("%OTIMELONGEN"); break; case TemplatesInsertCommand::COToAddr: emit insertCommand("%OTOADDR"); break; case TemplatesInsertCommand::COToName: emit insertCommand("%OTONAME"); break; case TemplatesInsertCommand::COToFName: emit insertCommand("%OTOFNAME"); break; case TemplatesInsertCommand::COToLName: emit insertCommand("%OTOLNAME"); break; case TemplatesInsertCommand::COCCAddr: emit insertCommand("%OCCADDR"); break; case TemplatesInsertCommand::COCCName: emit insertCommand("%OCCNAME"); break; case TemplatesInsertCommand::COCCFName: emit insertCommand("%OCCFNAME"); break; case TemplatesInsertCommand::COCCLName: emit insertCommand("%OCCLNAME"); break; case TemplatesInsertCommand::COFromAddr: emit insertCommand("%OFROMADDR"); break; case TemplatesInsertCommand::COFromName: emit insertCommand("%OFROMNAME"); break; case TemplatesInsertCommand::COFromFName: emit insertCommand("%OFROMFNAME"); break; case TemplatesInsertCommand::COFromLName: emit insertCommand("%OFROMLNAME"); break; case TemplatesInsertCommand::COFullSubject: emit insertCommand("%OFULLSUBJECT"); break; case TemplatesInsertCommand::CQHeaders: emit insertCommand("%QHEADERS"); break; case TemplatesInsertCommand::CHeaders: emit insertCommand("%HEADERS"); break; case TemplatesInsertCommand::COHeader: emit insertCommand("%OHEADER=\"\"", -1); break; case TemplatesInsertCommand::CMsgId: emit insertCommand("%MSGID"); break; case TemplatesInsertCommand::CDate: emit insertCommand("%DATE"); break; case TemplatesInsertCommand::CDateShort: emit insertCommand("%DATESHORT"); break; case TemplatesInsertCommand::CDateEn: emit insertCommand("%DATEEN"); break; case TemplatesInsertCommand::CDow: emit insertCommand("%DOW"); break; case TemplatesInsertCommand::CTime: emit insertCommand("%TIME"); break; case TemplatesInsertCommand::CTimeLong: emit insertCommand("%TIMELONG"); break; case TemplatesInsertCommand::CTimeLongEn: emit insertCommand("%TIMELONGEN"); break; case TemplatesInsertCommand::CToAddr: emit insertCommand("%TOADDR"); break; case TemplatesInsertCommand::CToName: emit insertCommand("%TONAME"); break; case TemplatesInsertCommand::CToFName: emit insertCommand("%TOFNAME"); break; case TemplatesInsertCommand::CToLName: emit insertCommand("%TOLNAME"); break; case TemplatesInsertCommand::CCCAddr: emit insertCommand("%CCADDR"); break; case TemplatesInsertCommand::CCCName: emit insertCommand("%CCNAME"); break; case TemplatesInsertCommand::CCCFName: emit insertCommand("%CCFNAME"); break; case TemplatesInsertCommand::CCCLName: emit insertCommand("%CCLNAME"); break; case TemplatesInsertCommand::CFromAddr: emit insertCommand("%FROMADDR"); break; case TemplatesInsertCommand::CFromName: emit insertCommand("%FROMNAME"); break; case TemplatesInsertCommand::CFromFName: emit insertCommand("%FROMFNAME"); break; case TemplatesInsertCommand::CFromLName: emit insertCommand("%FROMLNAME"); break; case TemplatesInsertCommand::CFullSubject: emit insertCommand("%FULLSUBJECT"); break; case TemplatesInsertCommand::CHeader: emit insertCommand("%HEADER=\"\"", -1); break; case TemplatesInsertCommand::CSystem: emit insertCommand("%SYSTEM=\"\"", -1); break; case TemplatesInsertCommand::CQuotePipe: emit insertCommand("%QUOTEPIPE=\"\"", -1); break; case TemplatesInsertCommand::CTextPipe: emit insertCommand("%TEXTPIPE=\"\"", -1); break; case TemplatesInsertCommand::CMsgPipe: emit insertCommand("%MSGPIPE=\"\"", -1); break; case TemplatesInsertCommand::CBodyPipe: emit insertCommand("%BODYPIPE=\"\"", -1); break; case TemplatesInsertCommand::CClearPipe: emit insertCommand("%CLEARPIPE=\"\"", -1); break; case TemplatesInsertCommand::CCursor: emit insertCommand("%CURSOR"); break; case TemplatesInsertCommand::CInsert: emit insertCommand("%INSERT=\"\"", -1); break; case TemplatesInsertCommand::CDnl: emit insertCommand("%-"); break; case TemplatesInsertCommand::CRem: emit insertCommand("%REM=\"\"", -1); break; case TemplatesInsertCommand::CNop: emit insertCommand("%NOP"); break; case TemplatesInsertCommand::CClear: emit insertCommand("%CLEAR"); break; case TemplatesInsertCommand::CDebug: emit insertCommand("%DEBUG"); break; case TemplatesInsertCommand::CDebugOff: emit insertCommand("%DEBUGOFF"); break; default: kdDebug() << "Unknown template command index: " << cmd << endl; break; } }
/*! * Saves for each photon the selected data. */ void PhotonMapExportDB::SaveSelectedData( std::vector< Photon* > raysLists ) { const char* tail = 0; sqlite3_stmt* stmt; QString insertCommand( "INSERT INTO Photons VALUES( @id" ); if( m_saveCoordinates ) insertCommand.append( ", @x, @y, @z" ); if( m_saveSide ) insertCommand.append( ", @side" ); if( m_savePrevNexID ) insertCommand.append( ", @prev, @next" ); if( m_saveSurfaceID ) insertCommand.append( ", @surfaceID" ); insertCommand.append( ")" ); sqlite3_prepare( m_pDB, insertCommand.toStdString().c_str(), 256, &stmt, &tail ); char* sErrMsg = 0; sqlite3_exec( m_pDB, "BEGIN TRANSACTION", 0, 0, &sErrMsg ); unsigned long nPhotonElements = raysLists.size(); double previousPhotonID = 0; for( unsigned int i = 0; i < raysLists.size(); i++ ) { int parameterIndex = 0; Photon* photon = raysLists[i]; if( photon->id < 1 ) previousPhotonID = 0; unsigned long urlId = 0; Transform worldToObject( 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ); if( photon->intersectedSurface ) { if( !m_surfaceIdentfier.contains( photon->intersectedSurface ) ) InsertSurface( photon->intersectedSurface ); urlId = m_surfaceIdentfier.indexOf( photon->intersectedSurface ) ; worldToObject = m_surfaceWorldToObject[urlId]; urlId++; } sqlite3_bind_text( stmt, ++parameterIndex, QString::number(++m_exportedPhoton ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); if( m_saveCoordinates && m_saveCoordinatesInGlobal ) { Point3D photonPos = m_concentratorToWorld( photon->pos ); sqlite3_bind_text( stmt, ++parameterIndex, QString::number( photonPos.x ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); sqlite3_bind_text( stmt, ++parameterIndex, QString::number( photonPos.y ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); sqlite3_bind_text( stmt, ++parameterIndex, QString::number( photonPos.z ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); } else if( m_saveCoordinates && !m_saveCoordinatesInGlobal ) { Point3D photonPos = worldToObject( photon->pos ); sqlite3_bind_text( stmt, ++parameterIndex, QString::number( photonPos.x ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); sqlite3_bind_text( stmt, ++parameterIndex, QString::number( photonPos.y ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); sqlite3_bind_text( stmt, ++parameterIndex, QString::number( photonPos.z ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); } if( m_saveSide ) sqlite3_bind_text( stmt, ++parameterIndex, QString::number( photon->side ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); if( m_savePrevNexID ) { sqlite3_bind_text( stmt, ++parameterIndex, QString::number( previousPhotonID ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); int nextPhotonID = 0; if( ( i < ( nPhotonElements - 1 ) ) && ( raysLists[i+1]->id > 0 ) ) nextPhotonID = m_exportedPhoton +1; sqlite3_bind_text( stmt, ++parameterIndex, QString::number( nextPhotonID ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); } if( m_saveSurfaceID ) sqlite3_bind_text( stmt, ++parameterIndex, QString::number( urlId ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); sqlite3_bind_text( stmt, 1, QString::number(++m_exportedPhoton ).toStdString().c_str(), -1, SQLITE_TRANSIENT ); sqlite3_step( stmt ); sqlite3_clear_bindings( stmt ); sqlite3_reset( stmt ); previousPhotonID = m_exportedPhoton; } int rc = sqlite3_exec( m_pDB, "END TRANSACTION", 0, 0, &sErrMsg ); sqlite3_finalize( stmt ); if( rc != SQLITE_OK ) { std::cout<< "SQL error: "<<sErrMsg<<"\n"<<std::endl; sqlite3_free( sErrMsg ); } }