void MainObject::Revert251() const { QString sql; QSqlQuery *q; QSqlQuery *q1; QSqlQuery *q2; if(rev_use_deadzone) { sql=QString("select NAME from CLOCKS"); q=new QSqlQuery(sql); while(q->next()) { sql=RDCreateClockTableSql(RDClock::tableName(q->value(0).toString())); q1=new QSqlQuery(sql); delete q1; sql=QString("select EVENT_NAME,START_TIME,LENGTH from CLOCK_METADATA ")+ "where CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\" "+ "order by START_TIME"; q1=new QSqlQuery(sql); while(q1->next()) { sql=QString("insert into `")+ RDClock::tableName(q->value(0).toString())+"` set "+ "EVENT_NAME=\""+RDEscapeString(q1->value(0).toString())+"\","+ QString().sprintf("START_TIME=%d,",q1->value(1).toInt())+ QString().sprintf("LENGTH=%d",q1->value(2).toInt()); q2=new QSqlQuery(sql); delete q2; } delete q1; } delete q; } SetVersion(250); }
void ListClocks::addData() { QString clockname; QString clockname_esc; QString sql; RDSqlQuery *q; RDSqlQuery *q1; std::vector<QString> new_clocks; AddClock *add_dialog=new AddClock(&clockname,this,"add_dialog"); if(add_dialog->exec()<0) { delete add_dialog; return; } delete add_dialog; sql=QString().sprintf("select NAME from CLOCKS where NAME=\"%s\"", (const char *)clockname); q=new RDSqlQuery(sql); if(q->first()) { QMessageBox:: information(this,tr("Clock Exists"), tr("An clock with that name already exists!")); delete q; return; } delete q; sql=QString().sprintf("insert into CLOCKS set NAME=\"%s\",ARTISTSEP=15", (const char *)clockname); q=new RDSqlQuery(sql); delete q; sql=RDCreateClockTableSql(RDClock::tableName(clockname)); q=new RDSqlQuery(sql); delete q; EditClock *clock_dialog=new EditClock(clockname,true,&new_clocks, this,"clock_dialog"); if(clock_dialog->exec()<0) { clockname_esc=clockname; clockname_esc.replace(" ","_"); clockname_esc+="_CLK"; sql=QString().sprintf("drop table %s",(const char *)clockname_esc); q=new RDSqlQuery(sql); delete q; sql=QString().sprintf("delete from CLOCKS where NAME=\"%s\"", (const char *)clockname); q=new RDSqlQuery(sql); delete q; } else { if(edit_filter_box->currentItem()==0) { sql="select NAME from SERVICES"; q=new RDSqlQuery(sql); while(q->next()) { // FIXME: not sure if the usersec service filter should be applied // here, or if all services should be brought over and later filtered // by edit_perms.cpp dialog. sql=QString().sprintf("insert into CLOCK_PERMS set\ CLOCK_NAME=\"%s\",SERVICE_NAME=\"%s\"", (const char *)clockname, (const char *)q->value(0).toString()); q1=new RDSqlQuery(sql); delete q1; } delete q; } else {
void EditClock::saveAsData() { QString clockname=edit_name; QString sql; RDSqlQuery *q; QString str; if(!ValidateCode()) { return; } QString old_name=edit_name; if(edit_modified) { switch(QMessageBox::question(this,tr("Clock Modified"), tr("The clock has been modified.\nDo you want to save?"),QMessageBox::Yes,QMessageBox::No,QMessageBox::Cancel)) { case QMessageBox::Yes: Save(); break; case QMessageBox::Cancel: case QMessageBox::NoButton: return; break; } } if(edit_shortname_edit->text().isEmpty()) { QMessageBox::warning(this,tr("Missing Clock Code"), tr("You must specify a clock code!")); return; } sql= QString().sprintf("select SHORT_NAME from CLOCKS where SHORT_NAME=\"%s\"", (const char *) RDEscapeString(edit_shortname_edit->text())); q=new RDSqlQuery(sql); if(q->first()) { QMessageBox::warning(this,tr("Code Exists"), tr("The clock code is already in use!")); delete q; return; } delete q; AddClock *addclock=new AddClock(&clockname,this,"addclock"); if(addclock->exec()<0) { delete addclock; return; } delete addclock; edit_name=clockname; sql=QString().sprintf("select NAME from CLOCKS where NAME=\"%s\"", (const char *)clockname); q=new RDSqlQuery(sql); if(q->first()) { if(QMessageBox::question(this,tr("Clock Exists"), tr("Clock already exists! Overwrite?"),QMessageBox::Yes,QMessageBox::No)!=QMessageBox::Yes) { delete q; return; } } delete q; edit_clock->setName(clockname); sql=RDCreateClockTableSql(RDClock::tableName(clockname)); q=new RDSqlQuery(sql); delete q; Save(); edit_new_clocks->push_back(clockname); CopyClockPerms(old_name,clockname); if(edit_new_clock) { AbandonClock(old_name); } edit_clockname_label->setText(clockname); UpdateClock(); str=QString(tr("Edit Clock:")); setCaption(QString().sprintf("%s %s",(const char *)str, (const char *)edit_name)); }