diff --git a/ChangeLog b/ChangeLog index f0014448..991e2743 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14527,3 +14527,8 @@ 2014-10-08 Fred Gleason * Added code in 'utils/rdimport/rdimport.cpp' to ensure that imports do not end up with an empty cut description field. +2014-10-08 Fred Gleason + * Applied a patch from albanpeignier that adds a second scheduler + code for music events. + * Added an 'EVENTS.HAVE_CODE2' field to the database. + * Incremented the database version to 241. diff --git a/lib/dbversion.h b/lib/dbversion.h index 92c49e48..396e7e2c 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -26,7 +26,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 240 +#define RD_VERSION_DATABASE 241 #endif // DBVERSION_H diff --git a/lib/rdevent.cpp b/lib/rdevent.cpp index 0ba217b1..2933b49e 100644 --- a/lib/rdevent.cpp +++ b/lib/rdevent.cpp @@ -408,6 +408,17 @@ void RDEvent::setHaveCode(QString str) SetRow("HAVE_CODE",str,true); } +QString RDEvent::HaveCode2() +{ + bool ok; + return GetStringValue("HAVE_CODE2",&ok); +} + + +void RDEvent::setHaveCode2(QString str) +{ + SetRow("HAVE_CODE2",str,true); +} unsigned RDEvent::titleSep() { diff --git a/lib/rdevent.h b/lib/rdevent.h index e8251f87..6d4171e6 100644 --- a/lib/rdevent.h +++ b/lib/rdevent.h @@ -73,6 +73,8 @@ class RDEvent void setSchedGroup(QString str); QString HaveCode(); void setHaveCode(QString str); + QString HaveCode2(); + void setHaveCode2(QString str); unsigned titleSep(); void setTitleSep(unsigned titlesep); static QString preimportTableName(const QString event_name); diff --git a/lib/rdevent_line.cpp b/lib/rdevent_line.cpp index 40ddae7c..2842b304 100644 --- a/lib/rdevent_line.cpp +++ b/lib/rdevent_line.cpp @@ -244,6 +244,16 @@ void RDEventLine::setHaveCode(QString str) event_have_code=str; } +QString RDEventLine::HaveCode2() const +{ + return event_have_code2; +} + + +void RDEventLine::setHaveCode2(QString str) +{ + event_have_code2=str; +} unsigned RDEventLine::titleSep() const { @@ -317,6 +327,7 @@ void RDEventLine::clear() event_autofill_slop=-1; event_sched_group=""; event_have_code=""; + event_have_code2=""; event_title_sep=100; event_nested_event=""; } @@ -328,7 +339,7 @@ bool RDEventLine::load() GRACE_TIME,POST_POINT,USE_AUTOFILL,\ USE_TIMESCALE,IMPORT_SOURCE,START_SLOP,\ END_SLOP,FIRST_TRANS_TYPE,DEFAULT_TRANS_TYPE,\ - COLOR,AUTOFILL_SLOP,NESTED_EVENT,SCHED_GROUP,TITLE_SEP,HAVE_CODE \ + COLOR,AUTOFILL_SLOP,NESTED_EVENT,SCHED_GROUP,TITLE_SEP,HAVE_CODE,HAVE_CODE2 \ from EVENTS where NAME=\"%s\"", (const char *)event_name); RDSqlQuery *q=new RDSqlQuery(sql); @@ -361,7 +372,8 @@ bool RDEventLine::load() event_sched_group=q->value(15).toString(); event_title_sep=q->value(16).toUInt(); event_have_code=q->value(17).toString(); - + event_have_code2=q->value(18).toString(); + delete q; event_preimport_log->load(); event_postimport_log->load(); @@ -383,7 +395,7 @@ bool RDEventLine::save() END_SLOP=%d,FIRST_TRANS_TYPE=%d,\ DEFAULT_TRANS_TYPE=%d,COLOR=\"%s\"\ AUTOFILL_SLOP=%d,NESTED_EVENT=\"%s\",\ - SCHED_GROUP=\"%s\",TITLE_SEP=%d,HAVE_CODE=\"%s\" \ + SCHED_GROUP=\"%s\",TITLE_SEP=%d,HAVE_CODE=\"%s\",HAVE_CODE2=\"%s\" \ where NAME=\"%s\"", (const char *)RDEscapeString(event_properties), event_preposition,event_time_type, @@ -400,6 +412,7 @@ bool RDEventLine::save() (const char *)RDEscapeString(event_sched_group), event_title_sep, (const char*)event_have_code, + (const char*)event_have_code2, (const char *)RDEscapeString(event_name)); } else { @@ -696,8 +709,25 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, *errors+=QString().sprintf("%s Rule broken: Must have code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code); schedCL->restore(); } - - // Scheduler Codes + + // Must have second scheduler code + if(event_have_code2!="") + { + schedCL->save(); + for(counter=0;countergetNumberOfItems();counter++) + { + if(!schedCL->itemHasCode(counter,event_have_code2)) + { + schedCL->removeItem(counter); + counter--; + } + } + if(schedCL->getNumberOfItems()==0) + *errors+=QString().sprintf("%s Rule broken: Must have second code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code2); + schedCL->restore(); + } + + // Scheduler Codes sql=QString().sprintf("select CODE,MAX_ROW,MIN_WAIT,NOT_AFTER, OR_AFTER,OR_AFTER_II from %s_RULES",(const char *)clockname); q=new RDSqlQuery(sql); while (q->next()) diff --git a/lib/rdevent_line.h b/lib/rdevent_line.h index b34e783b..d61bce02 100644 --- a/lib/rdevent_line.h +++ b/lib/rdevent_line.h @@ -70,6 +70,8 @@ class RDEventLine void setSchedGroup(QString str); QString HaveCode() const; void setHaveCode(QString str); + QString HaveCode2() const; + void setHaveCode2(QString str); unsigned titleSep() const; void setTitleSep(unsigned titlesep); RDLogEvent *preimportCarts(); @@ -112,6 +114,7 @@ class RDEventLine QString event_nested_event; QString event_sched_group; QString event_have_code; + QString event_have_code2; unsigned event_title_sep; }; diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index c409402d..fb49a4dd 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -8051,21 +8051,28 @@ int UpdateDb(int ver) } if(ver<240) { - sql=QString("create table if not exists GPIO_EVENTS(")+ - "ID int auto_increment not null primary key,"+ - "STATION_NAME char(64) not null,"+ - "MATRIX int not null,"+ - "NUMBER int not null,"+ - "TYPE int not null,"+ - "EDGE int not null,"+ - "EVENT_DATETIME datetime not null,"+ - "index STATION_NAME_IDX(STATION_NAME,MATRIX,TYPE,EVENT_DATETIME,EDGE))"; + sql=QString("create table if not exists GPIO_EVENTS(")+ + "ID int auto_increment not null primary key,"+ + "STATION_NAME char(64) not null,"+ + "MATRIX int not null,"+ + "NUMBER int not null,"+ + "TYPE int not null,"+ + "EDGE int not null,"+ + "EVENT_DATETIME datetime not null,"+ + "index STATION_NAME_IDX(STATION_NAME,MATRIX,TYPE,EVENT_DATETIME,EDGE))"; + q=new QSqlQuery(sql); + delete q; + } + + if(ver<241) { + sql=QString("alter table EVENTS add column ")+ + "HAVE_CODE2 VARCHAR(10) after HAVE_CODE"; q=new QSqlQuery(sql); delete q; } - + // **** End of version updates **** // diff --git a/rdlogmanager/edit_event.cpp b/rdlogmanager/edit_event.cpp index 05029d9c..139f933c 100644 --- a/rdlogmanager/edit_event.cpp +++ b/rdlogmanager/edit_event.cpp @@ -529,6 +529,23 @@ EditEvent::EditEvent(QString eventname,bool new_event, } delete q2; + // And code + + event_have_code2_label= + new QLabel(tr("and code"),this,"event_have_code2_label"); + event_have_code2_label->setFont(bold_font); + event_have_code2_label->setGeometry(CENTER_LINE+420,425,100,20); + + event_have_code2_box=new QComboBox(this,"event_have_code2_box"); + event_have_code2_box->setGeometry(CENTER_LINE+510,425,100,20); + event_have_code2_box->insertItem(""); + sql2="select CODE from SCHED_CODES order by CODE"; + q2=new RDSqlQuery(sql2); + while(q2->next()) { + event_have_code2_box->insertItem(q2->value(0).toString()); + } + delete q2; + // // Start Slop Time @@ -798,6 +815,7 @@ EditEvent::EditEvent(QString eventname,bool new_event, } event_title_sep_spinbox->setValue(event_event->titleSep()); event_have_code_box->setCurrentText(event_event->HaveCode()); + event_have_code2_box->setCurrentText(event_event->HaveCode2()); QColor color=event_event->color(); if(color.isValid()) { event_color_button->setPalette(QPalette(color,backgroundColor())); @@ -1070,6 +1088,8 @@ void EditEvent::importClickedData(int id) event_title_sep_spinbox->setEnabled(stateschedinv); event_have_code_box->setEnabled(stateschedinv); event_have_code_label->setEnabled(stateschedinv); + event_have_code2_box->setEnabled(stateschedinv); + event_have_code2_label->setEnabled(stateschedinv); } @@ -1511,7 +1531,14 @@ void EditEvent::Save() event_event->setProperties(GetProperties()); event_event->setSchedGroup(event_sched_group_box->currentText()); event_event->setTitleSep(event_title_sep_spinbox->value()); - event_event->setHaveCode(event_have_code_box->currentText()); + event_event->setHaveCode(event_have_code_box->currentText()); + if (event_have_code_box->currentText() != QString("")) { + event_event->setHaveCode2(event_have_code2_box->currentText()); + } else { + // save second code as first code when first code isn't defined + event_event->setHaveCode(event_have_code2_box->currentText()); + event_event->setHaveCode2(QString("")); + } listname=event_name; listname.replace(" ","_"); event_preimport_list->logEvent()-> diff --git a/rdlogmanager/edit_event.h b/rdlogmanager/edit_event.h index 433f66e1..88adb6d5 100644 --- a/rdlogmanager/edit_event.h +++ b/rdlogmanager/edit_event.h @@ -110,6 +110,8 @@ class EditEvent : public QDialog QLabel *event_title_sep_label; QComboBox* event_have_code_box; QLabel *event_have_code_label; + QComboBox* event_have_code2_box; + QLabel *event_have_code2_label; LibListView *event_lib_list; QPixmap *event_playout_map; QPixmap *event_macro_map; diff --git a/rdlogmanager/rdlogmanager_cs.ts b/rdlogmanager/rdlogmanager_cs.ts index e6fc8f7a..2ecc2fed 100644 --- a/rdlogmanager/rdlogmanager_cs.ts +++ b/rdlogmanager/rdlogmanager_cs.ts @@ -520,6 +520,10 @@ Chcete ji přepsat? IMPORT + + and code + + EditEventLine diff --git a/rdlogmanager/rdlogmanager_de.ts b/rdlogmanager/rdlogmanager_de.ts index aca64bd7..3318329e 100644 --- a/rdlogmanager/rdlogmanager_de.ts +++ b/rdlogmanager/rdlogmanager_de.ts @@ -520,6 +520,10 @@ Wollen Sie es überschreiben? IMPORT + + and code + + EditEventLine diff --git a/rdlogmanager/rdlogmanager_es.ts b/rdlogmanager/rdlogmanager_es.ts index 163c9828..135fa886 100644 --- a/rdlogmanager/rdlogmanager_es.ts +++ b/rdlogmanager/rdlogmanager_es.ts @@ -522,6 +522,10 @@ Do you want to overwrite it? IMPORT IMPORTAR + + and code + + EditEventLine diff --git a/rdlogmanager/rdlogmanager_fr.ts b/rdlogmanager/rdlogmanager_fr.ts index f6784edc..85294697 100644 --- a/rdlogmanager/rdlogmanager_fr.ts +++ b/rdlogmanager/rdlogmanager_fr.ts @@ -515,6 +515,10 @@ Do you want to overwrite it? IMPORT + + and code + + EditEventLine diff --git a/rdlogmanager/rdlogmanager_nb.ts b/rdlogmanager/rdlogmanager_nb.ts index feeab118..499408b8 100644 --- a/rdlogmanager/rdlogmanager_nb.ts +++ b/rdlogmanager/rdlogmanager_nb.ts @@ -529,6 +529,10 @@ Vil du byta henne ut? IMPORT + + and code + + EditEventLine diff --git a/rdlogmanager/rdlogmanager_nn.ts b/rdlogmanager/rdlogmanager_nn.ts index feeab118..499408b8 100644 --- a/rdlogmanager/rdlogmanager_nn.ts +++ b/rdlogmanager/rdlogmanager_nn.ts @@ -529,6 +529,10 @@ Vil du byta henne ut? IMPORT + + and code + + EditEventLine diff --git a/rdlogmanager/rdlogmanager_pt_BR.ts b/rdlogmanager/rdlogmanager_pt_BR.ts index 8ce8afd4..29995146 100644 --- a/rdlogmanager/rdlogmanager_pt_BR.ts +++ b/rdlogmanager/rdlogmanager_pt_BR.ts @@ -522,6 +522,10 @@ Você quer sobreescrêve-lo? IMPORT + + and code + + EditEventLine