mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-19 14:43:30 +02:00
2021-07-27 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'Edit Playout' dialog in rdcatch(1) to improve modularity. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
8496b72f13
commit
b550143d78
@ -22082,3 +22082,6 @@
|
||||
2021-07-20 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Refactored the 'Edit Switcher Event' dialog in rdcatch(1) to improve
|
||||
modularity.
|
||||
2021-07-27 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Refactored the 'Edit Playout' dialog in rdcatch(1) to improve
|
||||
modularity.
|
||||
|
@ -61,42 +61,13 @@ EditPlayout::EditPlayout(int id,std::vector<int> *adds,QString *filter,
|
||||
"RDCatch",false,this);
|
||||
|
||||
//
|
||||
// Active Button
|
||||
// Event Widget
|
||||
//
|
||||
edit_active_button=new QCheckBox(this);
|
||||
edit_active_button->setGeometry(10,11,20,20);
|
||||
QLabel *label=new QLabel(tr("Event Active"),this);
|
||||
label->setGeometry(30,11,125,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Station
|
||||
//
|
||||
edit_station_box=new RDComboBox(this);
|
||||
//
|
||||
// FIXME: Make this work with a model
|
||||
//
|
||||
// edit_station_model=new RDStationListModel(false,"",this);
|
||||
// edit_station_box->setModel(edit_station_model);
|
||||
edit_station_box->setGeometry(200,10,140,23);
|
||||
label=new QLabel(tr("Location:"),this);
|
||||
label->setGeometry(125,10,70,23);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
connect(edit_station_box,SIGNAL(activated(int)),
|
||||
this,SLOT(activateStationData(int)));
|
||||
|
||||
//
|
||||
// Start Time
|
||||
//
|
||||
edit_starttime_edit=new QTimeEdit(this);
|
||||
edit_starttime_edit->setGeometry(sizeHint().width()-90,12,80,20);
|
||||
edit_starttime_edit->setDisplayFormat("hh:mm:ss");
|
||||
label=new QLabel(tr("Start Time:"),this);
|
||||
label->setGeometry(sizeHint().width()-175,12,80,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
edit_event_widget=new EventWidget(EventWidget::PlayEvent,this);
|
||||
edit_event_widget->setGeometry(10,11,edit_event_widget->sizeHint().width(),
|
||||
edit_event_widget->sizeHint().height());
|
||||
connect(edit_event_widget,SIGNAL(locationChanged(const QString &,int)),
|
||||
this,SLOT(locationChangedData(const QString &,int)));
|
||||
|
||||
//
|
||||
// Description
|
||||
@ -104,7 +75,7 @@ EditPlayout::EditPlayout(int id,std::vector<int> *adds,QString *filter,
|
||||
edit_description_edit=new QLineEdit(this);
|
||||
edit_description_edit->setGeometry(105,43,sizeHint().width()-115,20);
|
||||
edit_description_edit->setValidator(validator);
|
||||
label=new QLabel(tr("Description:"),this);
|
||||
QLabel *label=new QLabel(tr("Description:"),this);
|
||||
label->setGeometry(10,43,90,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
@ -126,81 +97,11 @@ EditPlayout::EditPlayout(int id,std::vector<int> *adds,QString *filter,
|
||||
connect(button,SIGNAL(clicked()),this,SLOT(selectCutData()));
|
||||
|
||||
//
|
||||
// Button Label
|
||||
// DOW Selector
|
||||
//
|
||||
QGroupBox *groupbox=new QGroupBox(tr("Active Days"),this);
|
||||
groupbox->setFont(labelFont());
|
||||
groupbox->setGeometry(10,104,sizeHint().width()-20,62);
|
||||
|
||||
//
|
||||
// Monday Button
|
||||
//
|
||||
edit_mon_button=new QCheckBox(this);
|
||||
edit_mon_button->setGeometry(20,120,20,20);
|
||||
label=new QLabel(tr("Monday"),this);
|
||||
label->setGeometry(40,120,115,20);
|
||||
label->setFont(subLabelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Tuesday Button
|
||||
//
|
||||
edit_tue_button=new QCheckBox(this);
|
||||
edit_tue_button->setGeometry(115,120,20,20);
|
||||
label=new QLabel(tr("Tuesday"),this);
|
||||
label->setGeometry(135,120,115,20);
|
||||
label->setFont(subLabelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Wednesday Button
|
||||
//
|
||||
edit_wed_button=new QCheckBox(this);
|
||||
edit_wed_button->setGeometry(215,120,20,20);
|
||||
label=new QLabel(tr("Wednesday"),this);
|
||||
label->setGeometry(235,120,115,20);
|
||||
label->setFont(subLabelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Thursday Button
|
||||
//
|
||||
edit_thu_button=new QCheckBox(this);
|
||||
edit_thu_button->setGeometry(335,120,20,20);
|
||||
label=new QLabel(tr("Thursday"),this);
|
||||
label->setGeometry(355,120,115,20);
|
||||
label->setFont(subLabelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Friday Button
|
||||
//
|
||||
edit_fri_button=new QCheckBox(this);
|
||||
edit_fri_button->setGeometry(440,120,20,20);
|
||||
label=new QLabel(tr("Friday"),this);
|
||||
label->setGeometry(460,120,40,20);
|
||||
label->setFont(subLabelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Saturday Button
|
||||
//
|
||||
edit_sat_button=new QCheckBox(this);
|
||||
edit_sat_button->setGeometry(130,145,20,20);
|
||||
label=new QLabel(tr("Saturday"),this);
|
||||
label->setGeometry(150,145,60,20);
|
||||
label->setFont(subLabelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Sunday Button
|
||||
//
|
||||
edit_sun_button=new QCheckBox(this);
|
||||
edit_sun_button->setGeometry(300,145,20,20);
|
||||
label=new QLabel(tr("Sunday"),this);
|
||||
label->setGeometry(320,145,60,20);
|
||||
label->setFont(subLabelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
edit_dow_selector=new DowSelector(this);
|
||||
edit_dow_selector->setGeometry(10,104,edit_dow_selector->sizeHint().width(),
|
||||
edit_dow_selector->sizeHint().height());
|
||||
|
||||
//
|
||||
// OneShot Button
|
||||
@ -246,28 +147,22 @@ EditPlayout::EditPlayout(int id,std::vector<int> *adds,QString *filter,
|
||||
//
|
||||
// Populate Data
|
||||
//
|
||||
PopulateDecks(edit_station_box);
|
||||
edit_active_button->setChecked(edit_recording->isActive());
|
||||
edit_starttime_edit->setTime(edit_recording->startTime());
|
||||
edit_event_widget->fromRecording(edit_recording->id());
|
||||
edit_description_edit->setText(edit_recording->description());
|
||||
edit_cutname=edit_recording->cutName();
|
||||
edit_destination_edit->setText(RDCutPath(edit_cutname));
|
||||
edit_mon_button->setChecked(edit_recording->mon());
|
||||
edit_tue_button->setChecked(edit_recording->tue());
|
||||
edit_wed_button->setChecked(edit_recording->wed());
|
||||
edit_thu_button->setChecked(edit_recording->thu());
|
||||
edit_fri_button->setChecked(edit_recording->fri());
|
||||
edit_sat_button->setChecked(edit_recording->sat());
|
||||
edit_sun_button->setChecked(edit_recording->sun());
|
||||
edit_dow_selector->fromRecording(edit_recording->id());
|
||||
edit_oneshot_box->setChecked(edit_recording->oneShot());
|
||||
activateStationData(edit_station_box->currentIndex(),false);
|
||||
locationChangedData(edit_event_widget->stationName(),
|
||||
edit_event_widget->deckNumber());
|
||||
}
|
||||
|
||||
|
||||
EditPlayout::~EditPlayout()
|
||||
{
|
||||
delete edit_cut_dialog;
|
||||
delete edit_station_box;
|
||||
delete edit_event_widget;
|
||||
delete edit_dow_selector;
|
||||
if(edit_deck!=NULL) {
|
||||
delete edit_deck;
|
||||
}
|
||||
@ -286,16 +181,12 @@ QSizePolicy EditPlayout::sizePolicy() const
|
||||
}
|
||||
|
||||
|
||||
void EditPlayout::activateStationData(int id,bool use_temp)
|
||||
void EditPlayout::locationChangedData(const QString &station,int decknum)
|
||||
{
|
||||
if(edit_station_box->currentText().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
QStringList f0=edit_station_box->currentText().split(":");
|
||||
if(edit_deck!=NULL) {
|
||||
delete edit_deck;
|
||||
}
|
||||
edit_deck=new RDDeck(f0[0].trimmed(),f0[1].toInt());
|
||||
edit_deck=new RDDeck(station,decknum);
|
||||
}
|
||||
|
||||
|
||||
@ -351,70 +242,12 @@ void EditPlayout::closeEvent(QCloseEvent *e)
|
||||
}
|
||||
|
||||
|
||||
void EditPlayout::PopulateDecks(QComboBox *box)
|
||||
{
|
||||
int count=0;
|
||||
|
||||
box->clear();
|
||||
QString sql=QString("select ")+
|
||||
"`STATION_NAME`,"+ // 00
|
||||
"`CHANNEL` "+ // 01
|
||||
"from `DECKS` where "+
|
||||
"(`CARD_NUMBER`!=-1)&&"+
|
||||
"(`PORT_NUMBER`!=-1)&&"+
|
||||
"(`CHANNEL`>128) order by `STATION_NAME`,`CHANNEL`";
|
||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
box->insertItem(box->count(),q->value(0).toString()+
|
||||
QString().sprintf(" : %dP",q->value(1).toInt()-128));
|
||||
if((q->value(0).toString()==edit_recording->station())&&
|
||||
(q->value(1).toUInt()==edit_recording->channel())) {
|
||||
box->setCurrentIndex(count);
|
||||
}
|
||||
count++;
|
||||
}
|
||||
if(q->size()>0) {
|
||||
if(edit_deck!=NULL) {
|
||||
delete edit_deck;
|
||||
}
|
||||
q->first();
|
||||
edit_deck=new RDDeck(q->value(0).toString(),q->value(1).toUInt());
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
|
||||
|
||||
void EditPlayout::Save()
|
||||
{
|
||||
int chan=-1;
|
||||
QString station=GetLocation(&chan);
|
||||
edit_recording->setIsActive(edit_active_button->isChecked());
|
||||
edit_recording->setStation(station);
|
||||
edit_event_widget->toRecording(edit_recording->id());
|
||||
edit_recording->setType(RDRecording::Playout);
|
||||
edit_recording->setChannel(chan+128);
|
||||
if(edit_starttime_edit->time().isNull()) {
|
||||
edit_recording->setStartTime(edit_starttime_edit->time().addMSecs(1));
|
||||
}
|
||||
else {
|
||||
edit_recording->setStartTime(edit_starttime_edit->time());
|
||||
}
|
||||
edit_recording->setDescription(edit_description_edit->text());
|
||||
edit_recording->setCutName(edit_cutname);
|
||||
edit_recording->setMon(edit_mon_button->isChecked());
|
||||
edit_recording->setTue(edit_tue_button->isChecked());
|
||||
edit_recording->setWed(edit_wed_button->isChecked());
|
||||
edit_recording->setThu(edit_thu_button->isChecked());
|
||||
edit_recording->setFri(edit_fri_button->isChecked());
|
||||
edit_recording->setSat(edit_sat_button->isChecked());
|
||||
edit_recording->setSun(edit_sun_button->isChecked());
|
||||
edit_dow_selector->toRecording(edit_recording->id());
|
||||
edit_recording->setOneShot(edit_oneshot_box->isChecked());
|
||||
}
|
||||
|
||||
|
||||
QString EditPlayout::GetLocation(int *chan) const
|
||||
{
|
||||
QStringList f0=edit_station_box->currentText().split(":");
|
||||
*chan=
|
||||
f0[1].trimmed().left(f0[1].trimmed().length()-1).toInt();
|
||||
return f0[0].trimmed();
|
||||
}
|
||||
|
@ -31,6 +31,9 @@
|
||||
#include <rdrecording.h>
|
||||
#include <rdstationlistmodel.h>
|
||||
|
||||
#include "eventwidget.h"
|
||||
#include "dowselector.h"
|
||||
|
||||
class EditPlayout : public RDDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -41,7 +44,7 @@ class EditPlayout : public RDDialog
|
||||
QSizePolicy sizePolicy() const;
|
||||
|
||||
private slots:
|
||||
void activateStationData(int,bool use_temp=true);
|
||||
void locationChangedData(const QString &station,int decknum);
|
||||
void selectCutData();
|
||||
void saveasData();
|
||||
void okData();
|
||||
@ -52,31 +55,19 @@ class EditPlayout : public RDDialog
|
||||
void closeEvent(QCloseEvent *e);
|
||||
|
||||
private:
|
||||
void PopulateDecks(QComboBox *box);
|
||||
void Save();
|
||||
QString GetLocation(int *chan) const;
|
||||
RDDeck *edit_deck;
|
||||
RDCutDialog *edit_cut_dialog;
|
||||
RDRecording *edit_recording;
|
||||
QCheckBox *edit_active_button;
|
||||
RDComboBox *edit_station_box;
|
||||
// RDStationListModel *edit_station_model;
|
||||
QTimeEdit *edit_starttime_edit;
|
||||
EventWidget *edit_event_widget;
|
||||
DowSelector *edit_dow_selector;
|
||||
QLineEdit *edit_description_edit;
|
||||
QString edit_cutname;
|
||||
QLineEdit *edit_destination_edit;
|
||||
QCheckBox *edit_sun_button;
|
||||
QCheckBox *edit_mon_button;
|
||||
QCheckBox *edit_tue_button;
|
||||
QCheckBox *edit_wed_button;
|
||||
QCheckBox *edit_thu_button;
|
||||
QCheckBox *edit_fri_button;
|
||||
QCheckBox *edit_sat_button;
|
||||
QCheckBox *edit_oneshot_box;
|
||||
std::vector<int> *edit_added_events;
|
||||
QString *edit_filter;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#endif // EDIT_PLAYOUT_H
|
||||
|
@ -66,6 +66,24 @@ EventWidget::EventWidget(EventWidget::EventType type,QWidget *parent)
|
||||
break;
|
||||
|
||||
case EventWidget::PlayEvent:
|
||||
d_location_box->clear();
|
||||
sql=QString("select ")+
|
||||
"`STATION_NAME`,"+ // 00
|
||||
"`CHANNEL` "+ // 01
|
||||
"from `DECKS` where "+
|
||||
"(`CARD_NUMBER`!=-1)&&"+
|
||||
"(`PORT_NUMBER`!=-1)&&"+
|
||||
"(`CHANNEL`>128) order by `STATION_NAME`,`CHANNEL`";
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
d_location_box->
|
||||
insertItem(d_location_box->count(),
|
||||
q->value(0).toString()+
|
||||
QString().sprintf(" : %dP",q->value(1).toInt()-128),
|
||||
q->value(0).toString()+"\t"+
|
||||
QString().sprintf("%d",q->value(1).toInt()-128));
|
||||
}
|
||||
delete q;
|
||||
break;
|
||||
|
||||
case EventWidget::OtherEvent:
|
||||
@ -126,8 +144,20 @@ void EventWidget::toRecording(unsigned record_id) const
|
||||
"`IS_ACTIVE`='"+RDYesNo(d_state_check->isChecked())+"',"+
|
||||
"`STATION_NAME`='"+RDEscapeString(d_current_station_name)+"',"+
|
||||
"`START_TIME`='"+
|
||||
RDEscapeString(d_time_edit->time().toString("hh:mm:ss"))+"' "+
|
||||
"where "+
|
||||
RDEscapeString(d_time_edit->time().toString("hh:mm:ss"))+"' ";
|
||||
switch(d_event_type) {
|
||||
case EventWidget::RecordEvent:
|
||||
sql+=QString().sprintf(",`CHANNEL`=%u ",d_current_deck_number);
|
||||
break;
|
||||
|
||||
case EventWidget::PlayEvent:
|
||||
sql+=QString().sprintf(",`CHANNEL`=%u ",d_current_deck_number+128);
|
||||
break;
|
||||
|
||||
case EventWidget::OtherEvent:
|
||||
break;
|
||||
}
|
||||
sql+="where "+
|
||||
QString().sprintf("`ID`=%u",record_id);
|
||||
RDSqlQuery::apply(sql);
|
||||
}
|
||||
@ -148,9 +178,17 @@ void EventWidget::fromRecording(unsigned record_id)
|
||||
d_time_edit->setTime(q->value(3).toTime());
|
||||
switch(d_event_type) {
|
||||
case EventWidget::RecordEvent:
|
||||
d_location_box->
|
||||
setCurrentText(q->value(1).toString()+
|
||||
QString().sprintf(" : %uR",q->value(2).toUInt()));
|
||||
break;
|
||||
|
||||
case EventWidget::PlayEvent:
|
||||
d_location_box->
|
||||
setCurrentText(q->value(1).toString()+
|
||||
QString().sprintf(" : %uP",q->value(2).toUInt()-128));
|
||||
d_current_station_name=q->value(1).toString();
|
||||
d_current_deck_number=q->value(2).toUInt()-128;
|
||||
break;
|
||||
|
||||
case EventWidget::OtherEvent:
|
||||
@ -176,7 +214,7 @@ void EventWidget::locationActivatedData(const QString &str)
|
||||
|
||||
case 2:
|
||||
d_current_station_name=f0.at(0).trimmed();
|
||||
d_current_deck_number=f0.at(1).toInt()-1;
|
||||
d_current_deck_number=f0.at(1).left(f0.at(1).length()-1).toInt();
|
||||
emit locationChanged(d_current_station_name,d_current_deck_number);
|
||||
break;
|
||||
}
|
||||
|
@ -275,18 +275,6 @@ New</source>
|
||||
<source>Edit Playout</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Event Active</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Location:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start Time:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Description:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -295,38 +283,6 @@ New</source>
|
||||
<source>Destination:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Active Days</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Monday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tuesday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Wednesday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Thursday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Friday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Saturday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sunday</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Make OneShot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
Loading…
x
Reference in New Issue
Block a user