2021-07-20 Fred Gleason <fredg@paravelsystems.com>

* Refactored the 'Edit Upload' dialog in rdcatch(1) to improve
	modularity.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2021-07-20 12:42:05 -04:00
parent 75c04995e7
commit 08cb2f241e
11 changed files with 627 additions and 268 deletions

View File

@ -22058,3 +22058,6 @@
2021-07-17 Fred Gleason <fredg@paravelsystems.com> 2021-07-17 Fred Gleason <fredg@paravelsystems.com>
* Disabled host key validation for SFTP transfers in the podcast * Disabled host key validation for SFTP transfers in the podcast
subsystem. subsystem.
2021-07-20 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'Edit Upload' dialog in rdcatch(1) to improve
modularity.

View File

@ -615,7 +615,7 @@ void RDRecording::setUrlPassword(QString passwd) const
bool RDRecording::urlUseIdFile() const bool RDRecording::urlUseIdFile() const
{ {
return RDBool(GetStringValue("URL_PASSWORD")); return RDBool(GetStringValue("URL_USE_ID_FILE"));
} }

View File

@ -49,12 +49,14 @@ dist_rdcatch_SOURCES = add_recording.cpp add_recording.h\
catchtableview.cpp catchtableview.h\ catchtableview.cpp catchtableview.h\
colors.h\ colors.h\
deckmon.cpp deckmon.h\ deckmon.cpp deckmon.h\
dowselector.cpp dowselector.h\
edit_cartevent.cpp edit_cartevent.h\ edit_cartevent.cpp edit_cartevent.h\
edit_download.cpp edit_download.h\ edit_download.cpp edit_download.h\
edit_playout.cpp edit_playout.h\ edit_playout.cpp edit_playout.h\
edit_recording.cpp edit_recording.h\ edit_recording.cpp edit_recording.h\
edit_switchevent.cpp edit_switchevent.h\ edit_switchevent.cpp edit_switchevent.h\
edit_upload.cpp edit_upload.h\ edit_upload.cpp edit_upload.h\
eventwidget.cpp eventwidget.h\
globals.h\ globals.h\
list_reports.cpp list_reports.h\ list_reports.cpp list_reports.h\
rdcatch.cpp rdcatch.h\ rdcatch.cpp rdcatch.h\
@ -64,12 +66,14 @@ dist_rdcatch_SOURCES = add_recording.cpp add_recording.h\
nodist_rdcatch_SOURCES = moc_add_recording.cpp\ nodist_rdcatch_SOURCES = moc_add_recording.cpp\
moc_catchtableview.cpp\ moc_catchtableview.cpp\
moc_deckmon.cpp\ moc_deckmon.cpp\
moc_dowselector.cpp\
moc_edit_cartevent.cpp\ moc_edit_cartevent.cpp\
moc_edit_download.cpp\ moc_edit_download.cpp\
moc_edit_playout.cpp\ moc_edit_playout.cpp\
moc_edit_recording.cpp\ moc_edit_recording.cpp\
moc_edit_switchevent.cpp\ moc_edit_switchevent.cpp\
moc_edit_upload.cpp\ moc_edit_upload.cpp\
moc_eventwidget.cpp\
moc_list_reports.cpp\ moc_list_reports.cpp\
moc_rdcatch.cpp\ moc_rdcatch.cpp\
moc_recordlistmodel.cpp\ moc_recordlistmodel.cpp\

134
rdcatch/dowselector.cpp Normal file
View File

@ -0,0 +1,134 @@
// dowselector.cpp
//
// Day of the week selector
//
// (C) Copyright 2021 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#include <QDateTime>
#include <rdconf.h>
#include <rddb.h>
#include "dowselector.h"
DowSelector::DowSelector(QWidget *parent)
: RDWidget(parent)
{
d_group_box=new QGroupBox(tr("Active Days"),this);
d_group_box->setFont(labelFont());
QDate monday=QDate::currentDate();
while(monday.dayOfWeek()!=1) {
monday=monday.addDays(1);
}
for(int i=0;i<7;i++) {
d_labels[i]=new QLabel(monday.addDays(i).toString("dddd"),this);
d_labels[i]->setFont(defaultFont());
d_checks[i]=new QCheckBox(this);
d_checks[i]->setFont(defaultFont());
}
}
QSize DowSelector::sizeHint() const
{
return QSize(500,62);
}
QSizePolicy DowSelector::sizePolicy() const
{
return QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
}
bool DowSelector::dayOfWeekEnabled(int dow)
{
return d_checks[dow]->isChecked();
}
void DowSelector::toRecording(unsigned record_id) const
{
QString sql=QString("update `RECORDINGS` set ")+
"`MON`='"+RDYesNo(d_checks[0]->isChecked())+"',"+
"`TUE`='"+RDYesNo(d_checks[1]->isChecked())+"',"+
"`WED`='"+RDYesNo(d_checks[2]->isChecked())+"',"+
"`THU`='"+RDYesNo(d_checks[3]->isChecked())+"',"+
"`FRI`='"+RDYesNo(d_checks[4]->isChecked())+"',"+
"`SAT`='"+RDYesNo(d_checks[5]->isChecked())+"',"+
"`SUN`='"+RDYesNo(d_checks[6]->isChecked())+"' "+
"where "+
QString().sprintf("`ID`=%u",record_id);
RDSqlQuery::apply(sql);
}
void DowSelector::fromRecording(unsigned record_id)
{
QString sql=QString("select ")+
"`MON`,"+ // 00
"`TUE`,"+ // 01
"`WED`,"+ // 02
"`THU`,"+ // 03
"`FRI`,"+ // 04
"`SAT`,"+ // 05
"`SUN` "+ // 06
"from `RECORDINGS` where "+
QString().sprintf("`ID`=%u",record_id);
RDSqlQuery *q=new RDSqlQuery(sql);
if(q->first()) {
for(int i=0;i<7;i++) {
d_checks[i]->setChecked(q->value(i).toString()=="Y");
}
}
delete q;
}
void DowSelector::enableDayOfWeek(int dow,bool state)
{
d_checks[dow]->setChecked(state);
}
void DowSelector::resizeEvent(QResizeEvent *e)
{
d_group_box->setGeometry(0,0,width(),height());
d_checks[0]->setGeometry(10,16,20,20);
d_labels[0]->setGeometry(30,16,115,20);
d_checks[1]->setGeometry(105,16,20,20);
d_labels[1]->setGeometry(125,16,115,20);
d_checks[2]->setGeometry(205,16,20,20);
d_labels[2]->setGeometry(225,16,115,20);
d_checks[3]->setGeometry(325,16,20,20);
d_labels[3]->setGeometry(345,16,115,20);
d_checks[4]->setGeometry(430,16,20,20);
d_labels[4]->setGeometry(450,16,40,20);
d_checks[5]->setGeometry(120,38,20,20);
d_labels[5]->setGeometry(140,38,60,20);
d_checks[6]->setGeometry(290,38,20,20);
d_labels[6]->setGeometry(310,38,60,20);
}

55
rdcatch/dowselector.h Normal file
View File

@ -0,0 +1,55 @@
// dowselector.h
//
// Day of the week selector
//
// (C) Copyright 2021 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef DOWSELECTOR_H
#define DOWSELECTOR_H
#include <QCheckBox>
#include <QGroupBox>
#include <QLabel>
#include <rdwidget.h>
class DowSelector : public RDWidget
{
Q_OBJECT
public:
DowSelector(QWidget *parent=0);
QSize sizeHint() const;
QSizePolicy sizePolicy() const;
bool dayOfWeekEnabled(int dow);
void toRecording(unsigned record_id) const;
void fromRecording(unsigned record_id);
public slots:
void enableDayOfWeek(int dow,bool state);
protected:
void resizeEvent(QResizeEvent *e);
private:
QGroupBox *d_group_box;
QCheckBox *d_checks[7];
QLabel *d_labels[7];
};
#endif // DOWSELECTOR_H

View File

@ -18,7 +18,6 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// //
#include <QGroupBox>
#include <QMessageBox> #include <QMessageBox>
#include <QUrl> #include <QUrl>
@ -34,10 +33,6 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
QWidget *parent) QWidget *parent)
: RDDialog(parent) : RDDialog(parent)
{ {
QString sql;
RDSqlQuery *q;
QString temp;
edit_deck=NULL; edit_deck=NULL;
edit_added_events=adds; edit_added_events=adds;
edit_filter=filter; edit_filter=filter;
@ -50,11 +45,6 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
setMinimumSize(sizeHint()); setMinimumSize(sizeHint());
setMaximumSize(sizeHint()); setMaximumSize(sizeHint());
//
// Text Validator
//
RDTextValidator *validator=new RDTextValidator(this);
// //
// The Recording Record // The Recording Record
// //
@ -65,33 +55,10 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
// //
edit_cut_dialog=new RDCutDialog(edit_filter,&edit_group,&edit_schedcode, edit_cut_dialog=new RDCutDialog(edit_filter,&edit_group,&edit_schedcode,
false,false,false,"RDCatch",false,this); false,false,false,"RDCatch",false,this);
// //
// Active Button // Event Widget
// //
edit_active_button=new QCheckBox(this); edit_event_widget=new EventWidget(EventWidget::OtherEvent,this);
edit_active_label=new QLabel(tr("Event Active"),this);
edit_active_label->setFont(labelFont());
edit_active_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
//
// Station
//
edit_station_box=new RDComboBox(this);
connect(edit_station_box,SIGNAL(editTextChanged(const QString &)),
this,SLOT(stationChangedData(const QString &)));
edit_station_label=new QLabel(tr("Location:"),this);
edit_station_label->setFont(labelFont());
edit_station_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Start Time
//
edit_starttime_edit=new QTimeEdit(this);
edit_starttime_edit->setDisplayFormat("hh:mm:ss");
edit_starttime_label=new QLabel(tr("Start Time:"),this);
edit_starttime_label->setFont(labelFont());
edit_starttime_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
// //
// Source // Source
@ -104,13 +71,13 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
edit_source_select_button=new QPushButton(this); edit_source_select_button=new QPushButton(this);
edit_source_select_button->setFont(subButtonFont()); edit_source_select_button->setFont(subButtonFont());
edit_source_select_button->setText(tr("Select")); edit_source_select_button->setText(tr("Select"));
connect(edit_source_select_button,SIGNAL(clicked()),this,SLOT(selectCartData())); connect(edit_source_select_button,SIGNAL(clicked()),
this,SLOT(selectCartData()));
// //
// Description // Description
// //
edit_description_edit=new QLineEdit(this); edit_description_edit=new QLineEdit(this);
edit_description_edit->setValidator(validator);
edit_description_label=new QLabel(tr("Description:"),this); edit_description_label=new QLabel(tr("Description:"),this);
edit_description_label->setFont(labelFont()); edit_description_label->setFont(labelFont());
edit_description_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); edit_description_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
@ -124,6 +91,7 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
edit_feed_label->setFont(labelFont()); edit_feed_label->setFont(labelFont());
edit_feed_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); edit_feed_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
edit_feed_model=new RDFeedListModel(true,true,this); edit_feed_model=new RDFeedListModel(true,true,this);
edit_feed_model->setFont(defaultFont());
edit_feed_box->setModel(edit_feed_model); edit_feed_box->setModel(edit_feed_model);
// //
@ -131,7 +99,6 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
// //
edit_url_edit=new QLineEdit(this); edit_url_edit=new QLineEdit(this);
edit_url_edit->setMaxLength(191); edit_url_edit->setMaxLength(191);
edit_url_edit->setValidator(validator);
connect(edit_url_edit,SIGNAL(textChanged(const QString &)), connect(edit_url_edit,SIGNAL(textChanged(const QString &)),
this,SLOT(urlChangedData(const QString &))); this,SLOT(urlChangedData(const QString &)));
edit_url_label=new QLabel(tr("Url:"),this); edit_url_label=new QLabel(tr("Url:"),this);
@ -143,7 +110,6 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
// //
edit_username_edit=new QLineEdit(this); edit_username_edit=new QLineEdit(this);
edit_username_edit->setMaxLength(64); edit_username_edit->setMaxLength(64);
edit_username_edit->setValidator(validator);
edit_username_label=new QLabel(tr("Username:"),this); edit_username_label=new QLabel(tr("Username:"),this);
edit_username_label->setFont(labelFont()); edit_username_label->setFont(labelFont());
edit_username_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); edit_username_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
@ -154,11 +120,19 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
edit_password_edit=new QLineEdit(this); edit_password_edit=new QLineEdit(this);
edit_password_edit->setEchoMode(QLineEdit::Password); edit_password_edit->setEchoMode(QLineEdit::Password);
edit_password_edit->setMaxLength(64); edit_password_edit->setMaxLength(64);
edit_username_edit->setValidator(validator);
edit_password_label=new QLabel(tr("Password:"),this); edit_password_label=new QLabel(tr("Password:"),this);
edit_password_label->setFont(labelFont()); edit_password_label->setFont(labelFont());
edit_password_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); edit_password_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Use ssh(1) ID File
//
edit_use_id_file_label=
new QLabel(tr("Authenticate with local identity file"),this);
edit_use_id_file_label->setFont(labelFont());
edit_use_id_file_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
edit_use_id_file_check=new QCheckBox(this);
// //
// Audio Format // Audio Format
// //
@ -204,68 +178,10 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
edit_metadata_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); edit_metadata_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
// //
// Button Label // Day of the week Selector
// //
QGroupBox *groupbox=new QGroupBox(tr("Active Days"),this); edit_dow_selector=new DowSelector(this);
groupbox->setFont(labelFont());
groupbox->setGeometry(10,266,sizeHint().width()-20,62);
//
// Monday Button
//
edit_mon_button=new QCheckBox(this);
edit_mon_label=new QLabel(tr("Monday"),this);
edit_mon_label->setFont(subLabelFont());
edit_mon_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
//
// Tuesday Button
//
edit_tue_button=new QCheckBox(this);
edit_tue_label=new QLabel(tr("Tuesday"),this);
edit_tue_label->setFont(subLabelFont());
edit_tue_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
//
// Wednesday Button
//
edit_wed_button=new QCheckBox(this);
edit_wed_label=new QLabel(tr("Wednesday"),this);
edit_wed_label->setFont(subLabelFont());
edit_wed_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
//
// Thursday Button
//
edit_thu_button=new QCheckBox(this);
edit_thu_label=new QLabel(tr("Thursday"),this);
edit_thu_label->setFont(subLabelFont());
edit_thu_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
//
// Friday Button
//
edit_fri_button=new QCheckBox(this);
edit_fri_label=new QLabel(tr("Friday"),this);
edit_fri_label->setFont(subLabelFont());
edit_fri_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
//
// Saturday Button
//
edit_sat_button=new QCheckBox(this);
edit_sat_label=new QLabel(tr("Saturday"),this);
edit_sat_label->setFont(subLabelFont());
edit_sat_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
//
// Sunday Button
//
edit_sun_button=new QCheckBox(this);
edit_sun_label=new QLabel(tr("Sunday"),this);
edit_sun_label->setFont(subLabelFont());
edit_sun_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
// //
// OneShot Button // OneShot Button
// //
@ -317,32 +233,18 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
// //
// Populate Data // Populate Data
// //
q=new RDSqlQuery("select `NAME` from `STATIONS` where `NAME`!='DEFAULT'"); edit_event_widget->fromRecording(edit_recording->id());
while(q->next()) {
edit_station_box->insertItem(q->value(0).toString());
if(edit_recording->station()==q->value(0).toString()) {
edit_station_box->setCurrentIndex(edit_station_box->count()-1);
}
}
delete q;
edit_active_button->setChecked(edit_recording->isActive());
edit_starttime_edit->setTime(edit_recording->startTime());
edit_description_edit->setText(edit_recording->description()); edit_description_edit->setText(edit_recording->description());
edit_url_edit->setText(edit_recording->url()); edit_url_edit->setText(edit_recording->url());
edit_username_edit->setText(edit_recording->urlUsername()); edit_username_edit->setText(edit_recording->urlUsername());
edit_password_edit->setText(edit_recording->urlPassword()); edit_password_edit->setText(edit_recording->urlPassword());
edit_use_id_file_check->setChecked(edit_recording->urlUseIdFile());
edit_cutname=edit_recording->cutName(); edit_cutname=edit_recording->cutName();
if(!edit_recording->cutName().isEmpty()) { if(!edit_recording->cutName().isEmpty()) {
edit_source_edit->setText("Cut "+edit_recording->cutName()); edit_source_edit->setText("Cut "+edit_recording->cutName());
} }
edit_metadata_box->setChecked(edit_recording->enableMetadata()); edit_metadata_box->setChecked(edit_recording->enableMetadata());
edit_mon_button->setChecked(edit_recording->mon()); edit_dow_selector->fromRecording(edit_recording->id());
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_eventoffset_spin->setValue(edit_recording->eventdateOffset()); edit_eventoffset_spin->setValue(edit_recording->eventdateOffset());
edit_oneshot_box->setChecked(edit_recording->oneShot()); edit_oneshot_box->setChecked(edit_recording->oneShot());
edit_settings.setFormat(edit_recording->format()); edit_settings.setFormat(edit_recording->format());
@ -366,7 +268,8 @@ EditUpload::EditUpload(int id,std::vector<int> *adds,QString *filter,
EditUpload::~EditUpload() EditUpload::~EditUpload()
{ {
delete edit_station_box; delete edit_event_widget;
delete edit_dow_selector;
if(edit_deck!=NULL) { if(edit_deck!=NULL) {
delete edit_deck; delete edit_deck;
} }
@ -375,7 +278,7 @@ EditUpload::~EditUpload()
QSize EditUpload::sizeHint() const QSize EditUpload::sizeHint() const
{ {
return QSize(520,441); return QSize(520,451);
} }
@ -405,15 +308,18 @@ void EditUpload::feedChangedData(int index)
edit_password_label->setEnabled(index==0); edit_password_label->setEnabled(index==0);
edit_password_edit->setEnabled(index==0); edit_password_edit->setEnabled(index==0);
urlChangedData(edit_url_edit->text());
edit_format_label->setEnabled(index==0); edit_format_label->setEnabled(index==0);
edit_format_edit->setEnabled(index==0); edit_format_edit->setEnabled(index==0);
edit_format_set_button->setEnabled(index==0); edit_format_set_button->setEnabled(index==0);
edit_normalize_box->setEnabled(index==0);
edit_normalize_label->setEnabled(index==0); edit_normalize_label->setEnabled(index==0);
edit_normalize_level_label->setEnabled(index==0); edit_normalize_box->setEnabled(index==0);
edit_normalize_spin->setEnabled(index==0); edit_normalize_level_label->
edit_normalize_unit->setEnabled(index==0); setEnabled((index==0)&&edit_normalize_box->isChecked());
edit_normalize_spin->setEnabled((index==0)&&edit_normalize_box->isChecked());
edit_normalize_unit->setEnabled((index==0)&&edit_normalize_box->isChecked());
edit_metadata_box->setEnabled(index==0); edit_metadata_box->setEnabled(index==0);
edit_metadata_label->setEnabled(index==0); edit_metadata_label->setEnabled(index==0);
@ -424,8 +330,9 @@ void EditUpload::urlChangedData(const QString &str)
{ {
QUrl url(str); QUrl url(str);
QString scheme=url.scheme().toLower(); QString scheme=url.scheme().toLower();
if((scheme=="ftp")||(scheme=="ftps")||(scheme=="file")|| if(((scheme=="ftp")||(scheme=="ftps")||(scheme=="file")||
(scheme=="scp")||(scheme=="sftp")) { (scheme=="scp")||(scheme=="sftp"))&&
edit_feed_box->currentIndex()==0) {
edit_username_label->setEnabled(true); edit_username_label->setEnabled(true);
edit_username_edit->setEnabled(true); edit_username_edit->setEnabled(true);
edit_password_label->setEnabled(true); edit_password_label->setEnabled(true);
@ -437,6 +344,15 @@ void EditUpload::urlChangedData(const QString &str)
edit_password_label->setDisabled(true); edit_password_label->setDisabled(true);
edit_password_edit->setDisabled(true); edit_password_edit->setDisabled(true);
} }
if((scheme=="sftp")&&(!rda->station()->sshIdentityFile().isEmpty())&&
(edit_feed_box->currentIndex()==0)) {
edit_use_id_file_check->setEnabled(true);
edit_use_id_file_label->setEnabled(true);
}
else {
edit_use_id_file_check->setDisabled(true);
edit_use_id_file_label->setDisabled(true);
}
} }
@ -463,10 +379,10 @@ void EditUpload::setFormatData()
void EditUpload::normalizeCheckData(bool state) void EditUpload::normalizeCheckData(bool state)
{ {
edit_normalize_label->setEnabled(state); edit_normalize_level_label->
edit_normalize_level_label->setEnabled(state); setEnabled(state&&(edit_feed_box->currentIndex()==0));
edit_normalize_spin->setEnabled(state); edit_normalize_spin->setEnabled(state&&(edit_feed_box->currentIndex()==0));
edit_normalize_unit->setEnabled(state); edit_normalize_unit->setEnabled(state&&(edit_feed_box->currentIndex()==0));
} }
@ -489,7 +405,8 @@ void EditUpload::okData()
if(edit_feed_box->currentIndex()==0) { // No RSS feed selected if(edit_feed_box->currentIndex()==0) { // No RSS feed selected
if(!CheckFormat()) { if(!CheckFormat()) {
QMessageBox::warning(this,tr("Unsupported Format"), QMessageBox::warning(this,tr("Unsupported Format"),
tr("The currently selected export format is unsupported on host ")+edit_station_box->currentText()+"!"); tr("The currently selected export format is unsupported on host ")+
edit_event_widget->stationName()+"!");
return; return;
} }
QUrl url(edit_url_edit->text()); QUrl url(edit_url_edit->text());
@ -528,63 +445,48 @@ void EditUpload::cancelData()
void EditUpload::resizeEvent(QResizeEvent *e) void EditUpload::resizeEvent(QResizeEvent *e)
{ {
edit_active_button->setGeometry(10,11,20,20); edit_event_widget->setGeometry(10,11,edit_event_widget->sizeHint().width(),
edit_active_label->setGeometry(30,11,125,20); edit_event_widget->sizeHint().height());
edit_station_box->setGeometry(200,10,140,23);
edit_station_label->setGeometry(125,10,70,23);
edit_starttime_edit->setGeometry(sizeHint().width()-90,12,80,20);
edit_starttime_label->setGeometry(sizeHint().width()-175,12,80,20);
edit_source_edit->setGeometry(115,43,sizeHint().width()-195,20); edit_source_edit->setGeometry(115,43,size().width()-195,20);
edit_source_label->setGeometry(10,43,100,19); edit_source_label->setGeometry(10,43,100,19);
edit_source_select_button->setGeometry(sizeHint().width()-70,41,60,24); edit_source_select_button->setGeometry(size().width()-70,41,60,24);
edit_description_edit->setGeometry(115,70,sizeHint().width()-125,20); edit_description_edit->setGeometry(115,70,size().width()-125,20);
edit_description_label->setGeometry(10,70,100,20); edit_description_label->setGeometry(10,70,100,20);
edit_feed_box->setGeometry(115,97,160,20); edit_feed_box->setGeometry(115,97,160,20);
edit_feed_label->setGeometry(10,97,100,19); edit_feed_label->setGeometry(10,97,100,19);
edit_url_edit->setGeometry(115,124,sizeHint().width()-125,20); edit_url_edit->setGeometry(115,124,size().width()-125,20);
edit_url_label->setGeometry(10,124,100,20); edit_url_label->setGeometry(10,124,100,20);
edit_username_edit->setGeometry(115,151,150,20); edit_username_edit->setGeometry(115,151,150,20);
edit_username_label->setGeometry(10,151,100,20); edit_username_label->setGeometry(10,151,100,20);
edit_password_edit->setGeometry(360,151,sizeHint().width()-370,20); edit_password_edit->setGeometry(360,151,size().width()-370,20);
edit_password_label->setGeometry(275,151,80,20); edit_password_label->setGeometry(275,151,80,20);
edit_username_edit->setGeometry(115,151,150,20); edit_use_id_file_check->setGeometry(120,176,15,15);
edit_username_label->setGeometry(10,151,100,20); edit_use_id_file_label->setGeometry(140,174,size().width()-150,20);
edit_password_edit->setGeometry(360,151,sizeHint().width()-370,20);
edit_password_label->setGeometry(275,151,80,20); edit_format_label->setGeometry(5,205,105,20);
edit_format_label->setGeometry(5,178,105,20); edit_format_edit->setGeometry(115,205,size().width()-195,20);
edit_format_edit->setGeometry(115,178,sizeHint().width()-195,20); edit_format_set_button->setGeometry(size().width()-70,203,60,24);
edit_format_set_button->setGeometry(sizeHint().width()-70,176,60,24); edit_normalize_box->setGeometry(115,233,15,15);
edit_normalize_box->setGeometry(115,208,15,15); edit_normalize_label->setGeometry(135,231,83,20);
edit_normalize_label->setGeometry(135,206,83,20); edit_normalize_spin->setGeometry(265,231,40,20);
edit_normalize_spin->setGeometry(265,206,40,20); edit_normalize_level_label->setGeometry(215,231,45,20);
edit_normalize_level_label->setGeometry(215,206,45,20); edit_normalize_unit->setGeometry(310,231,40,20);
edit_normalize_unit->setGeometry(310,206,40,20); edit_metadata_box->setGeometry(115,254,15,15);
edit_metadata_box->setGeometry(115,231,15,15); edit_metadata_label->setGeometry(135,252,160,20);
edit_metadata_label->setGeometry(135,231,160,20);
edit_mon_button->setGeometry(20,282,20,20); edit_dow_selector->setGeometry(10,283,edit_dow_selector->sizeHint().width(),
edit_mon_label->setGeometry(40,282,115,20); edit_dow_selector->sizeHint().height());
edit_tue_button->setGeometry(115,282,20,20); edit_oneshot_box->setGeometry(20,359,15,15);
edit_tue_label->setGeometry(135,282,115,20); edit_oneshot_label->setGeometry(40,357,115,20);
edit_wed_button->setGeometry(215,282,20,20); edit_eventoffset_spin->setGeometry(245,357,45,20);
edit_wed_label->setGeometry(235,282,115,20); edit_eventoffset_label->setGeometry(140,357,100,20);
edit_thu_button->setGeometry(335,282,20,20); edit_eventoffset_unit_label->setGeometry(295,357,40,20);
edit_thu_label->setGeometry(355,282,115,20);
edit_fri_button->setGeometry(440,282,20,20); event_saveas_button->setGeometry(size().width()-300,size().height()-60,80,50);
edit_fri_label->setGeometry(460,282,40,20); event_ok_button->setGeometry(size().width()-180,size().height()-60,80,50);
edit_sat_button->setGeometry(130,307,20,20); event_cancel_button->setGeometry(size().width()-90,size().height()-60,80,50);
edit_sat_label->setGeometry(150,307,60,20);
edit_sun_button->setGeometry(300,307,20,20);
edit_sun_label->setGeometry(320,307,60,20);
edit_oneshot_box->setGeometry(20,342,15,15);
edit_oneshot_label->setGeometry(40,340,115,20);
edit_eventoffset_spin->setGeometry(245,340,45,20);
edit_eventoffset_label->setGeometry(140,340,100,20);
edit_eventoffset_unit_label->setGeometry(295,340,40,20);
event_saveas_button->setGeometry(sizeHint().width()-300,sizeHint().height()-60,80,50);
event_ok_button->setGeometry(sizeHint().width()-180,sizeHint().height()-60,80,50);
event_cancel_button->setGeometry(sizeHint().width()-90,sizeHint().height()-60,80,50);
} }
@ -613,36 +515,36 @@ bool EditUpload::CheckFormat()
{ {
bool res=false; bool res=false;
RDStation *station=new RDStation(edit_station_box->currentText()); RDStation *station=new RDStation(edit_event_widget->stationName());
switch(edit_settings.format()) { switch(edit_settings.format()) {
case RDSettings::Pcm16: case RDSettings::Pcm16:
case RDSettings::Pcm24: case RDSettings::Pcm24:
case RDSettings::MpegL2: case RDSettings::MpegL2:
case RDSettings::MpegL2Wav: case RDSettings::MpegL2Wav:
res=true; res=true;
break; break;
case RDSettings::MpegL1: case RDSettings::MpegL1:
res=false; res=false;
break; break;
case RDSettings::MpegL3: case RDSettings::MpegL3:
if(station->haveCapability(RDStation::HaveLame)) { if(station->haveCapability(RDStation::HaveLame)) {
res=true; res=true;
} }
break; break;
case RDSettings::Flac: case RDSettings::Flac:
if(station->haveCapability(RDStation::HaveFlac)) { if(station->haveCapability(RDStation::HaveFlac)) {
res=true; res=true;
} }
break; break;
case RDSettings::OggVorbis: case RDSettings::OggVorbis:
if(station->haveCapability(RDStation::HaveOggenc)) { if(station->haveCapability(RDStation::HaveOggenc)) {
res=true; res=true;
} }
break; break;
} }
delete station; delete station;
@ -652,23 +554,18 @@ bool EditUpload::CheckFormat()
void EditUpload::Save() void EditUpload::Save()
{ {
edit_recording->setIsActive(edit_active_button->isChecked()); edit_recording->setIsActive(edit_event_widget->isActive());
edit_recording->setStation(edit_station_box->currentText()); edit_recording->setStation(edit_event_widget->stationName());
edit_recording->setStartTime(edit_event_widget->startTime());
edit_recording->setType(RDRecording::Upload); edit_recording->setType(RDRecording::Upload);
edit_recording->setStartTime(edit_starttime_edit->time());
edit_recording->setDescription(edit_description_edit->text()); edit_recording->setDescription(edit_description_edit->text());
edit_recording->setCutName(edit_source_edit->text().right(10)); edit_recording->setCutName(edit_source_edit->text().right(10));
edit_recording->setUrl(edit_url_edit->text()); edit_recording->setUrl(edit_url_edit->text());
edit_recording->setUrlUsername(edit_username_edit->text()); edit_recording->setUrlUsername(edit_username_edit->text());
edit_recording->setUrlPassword(edit_password_edit->text()); edit_recording->setUrlPassword(edit_password_edit->text());
edit_recording->setUrlUseIdFile(edit_use_id_file_check->isChecked());
edit_recording->setEnableMetadata(edit_metadata_box->isChecked()); edit_recording->setEnableMetadata(edit_metadata_box->isChecked());
edit_recording->setMon(edit_mon_button->isChecked()); edit_dow_selector->toRecording(edit_recording->id());
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_recording->setEventdateOffset(edit_eventoffset_spin->value()); edit_recording->setEventdateOffset(edit_eventoffset_spin->value());
edit_recording->setOneShot(edit_oneshot_box->isChecked()); edit_recording->setOneShot(edit_oneshot_box->isChecked());
edit_recording->setFormat(edit_settings.format()); edit_recording->setFormat(edit_settings.format());
@ -694,38 +591,38 @@ void EditUpload::Save()
else { else {
edit_recording->setFeedId(feed_id); edit_recording->setFeedId(feed_id);
} }
// edit_recording->setFeedId(edit_feed_box->currentText());
} }
bool EditUpload::CheckEvent(bool include_myself) bool EditUpload::CheckEvent(bool include_myself)
{ {
QString sql=QString("select `ID` from `RECORDINGS` where ")+ QString sql=QString("select `ID` from `RECORDINGS` where ")+
"(`STATION_NAME`='"+RDEscapeString(edit_station_box->currentText())+"')&&"+ "(`STATION_NAME`='"+RDEscapeString(edit_event_widget->stationName())+"')&&"+
QString().sprintf("(`TYPE`=%d)&&",RDRecording::Upload)+ QString().sprintf("(`TYPE`=%d)&&",RDRecording::Upload)+
"(`START_TIME`='"+edit_starttime_edit->time().toString("hh:mm:ss")+"')&&"+ "(`START_TIME`='"+
edit_event_widget->startTime().toString("hh:mm:ss")+"')&&"+
"(`URL`='"+RDEscapeString(edit_url_edit->text())+"')&&"+ "(`URL`='"+RDEscapeString(edit_url_edit->text())+"')&&"+
"(`CUT_NAME`='"+RDEscapeString(edit_source_edit->text().right(10))+ "(`CUT_NAME`='"+RDEscapeString(edit_source_edit->text().right(10))+
"')"; "')";
if(edit_sun_button->isChecked()) { if(edit_dow_selector->dayOfWeekEnabled(7)) {
sql+="&&(`SUN`='Y')"; sql+="&&(`SUN`='Y')";
} }
if(edit_mon_button->isChecked()) { if(edit_dow_selector->dayOfWeekEnabled(1)) {
sql+="&&(`MON`='Y')"; sql+="&&(`MON`='Y')";
} }
if(edit_tue_button->isChecked()) { if(edit_dow_selector->dayOfWeekEnabled(2)) {
sql+="&&(`TUE`='Y')"; sql+="&&(`TUE`='Y')";
} }
if(edit_wed_button->isChecked()) { if(edit_dow_selector->dayOfWeekEnabled(3)) {
sql+="&&(`WED`='Y')"; sql+="&&(`WED`='Y')";
} }
if(edit_thu_button->isChecked()) { if(edit_dow_selector->dayOfWeekEnabled(4)) {
sql+="&&(`THU`='Y')"; sql+="&&(`THU`='Y')";
} }
if(edit_fri_button->isChecked()) { if(edit_dow_selector->dayOfWeekEnabled(5)) {
sql+="&&(`FRI`='Y')"; sql+="&&(`FRI`='Y')";
} }
if(edit_sat_button->isChecked()) { if(edit_dow_selector->dayOfWeekEnabled(6)) {
sql+="&&(`SAT`='Y')"; sql+="&&(`SAT`='Y')";
} }
if(!include_myself) { if(!include_myself) {

View File

@ -23,6 +23,7 @@
#include <QCheckBox> #include <QCheckBox>
#include <QDateTimeEdit> #include <QDateTimeEdit>
#include <QGroupBox>
#include <QLabel> #include <QLabel>
#include <QSpinBox> #include <QSpinBox>
@ -33,6 +34,9 @@
#include <rdfeedlistmodel.h> #include <rdfeedlistmodel.h>
#include <rdrecording.h> #include <rdrecording.h>
#include "dowselector.h"
#include "eventwidget.h"
class EditUpload : public RDDialog class EditUpload : public RDDialog
{ {
Q_OBJECT Q_OBJECT
@ -66,12 +70,15 @@ class EditUpload : public RDDialog
RDCutDialog *edit_cut_dialog; RDCutDialog *edit_cut_dialog;
RDRecording *edit_recording; RDRecording *edit_recording;
RDSettings edit_settings; RDSettings edit_settings;
EventWidget *edit_event_widget;
/*
QCheckBox *edit_active_button; QCheckBox *edit_active_button;
QLabel *edit_active_label; QLabel *edit_active_label;
QLabel *edit_station_label; QLabel *edit_station_label;
RDComboBox *edit_station_box; RDComboBox *edit_station_box;
QLabel *edit_starttime_label; QLabel *edit_starttime_label;
QTimeEdit *edit_starttime_edit; QTimeEdit *edit_starttime_edit;
*/
QLabel *edit_feed_label; QLabel *edit_feed_label;
QComboBox *edit_feed_box; QComboBox *edit_feed_box;
RDFeedListModel *edit_feed_model; RDFeedListModel *edit_feed_model;
@ -84,6 +91,8 @@ class EditUpload : public RDDialog
QLineEdit *edit_username_edit; QLineEdit *edit_username_edit;
QLabel *edit_password_label; QLabel *edit_password_label;
QLineEdit *edit_password_edit; QLineEdit *edit_password_edit;
QCheckBox *edit_use_id_file_check;;
QLabel *edit_use_id_file_label;
QString edit_cutname; QString edit_cutname;
QLabel *edit_source_label; QLabel *edit_source_label;
QLineEdit *edit_source_edit; QLineEdit *edit_source_edit;
@ -97,6 +106,10 @@ class EditUpload : public RDDialog
QLabel *edit_normalize_unit; QLabel *edit_normalize_unit;
QCheckBox *edit_metadata_box; QCheckBox *edit_metadata_box;
QLabel *edit_metadata_label; QLabel *edit_metadata_label;
DowSelector *edit_dow_selector;
/*
QGroupBox *edit_dow_group;
QCheckBox *edit_sun_button; QCheckBox *edit_sun_button;
QLabel *edit_sun_label; QLabel *edit_sun_label;
QCheckBox *edit_mon_button; QCheckBox *edit_mon_button;
@ -111,6 +124,7 @@ class EditUpload : public RDDialog
QLabel *edit_fri_label; QLabel *edit_fri_label;
QCheckBox *edit_sat_button; QCheckBox *edit_sat_button;
QLabel *edit_sat_label; QLabel *edit_sat_label;
*/
QLabel *edit_eventoffset_label; QLabel *edit_eventoffset_label;
QSpinBox *edit_eventoffset_spin; QSpinBox *edit_eventoffset_spin;
QLabel *edit_eventoffset_unit_label; QLabel *edit_eventoffset_unit_label;

194
rdcatch/eventwidget.cpp Normal file
View File

@ -0,0 +1,194 @@
// eventwidget.cpp
//
// Widget for setting basic event parameters in rdcatch(1)
//
// (C) Copyright 2021 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#include <QStringList>
#include <rdconf.h>
#include <rddb.h>
#include <rdescape_string.h>
#include "eventwidget.h"
EventWidget::EventWidget(EventWidget::EventType type,QWidget *parent)
: RDWidget(parent)
{
QString sql;
RDSqlQuery *q=NULL;
d_event_type=type;
//
// Event Active
//
d_state_check=new QCheckBox(this);
d_state_label=new QLabel(tr("Event Active"),this);
d_state_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
d_state_label->setFont(labelFont());
//
// Location
//
d_location_label=new QLabel(tr("Location")+":",this);
d_location_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
d_location_label->setFont(labelFont());
d_location_box=new QComboBox(this);
connect(d_location_box,SIGNAL(activated(const QString &)),
this,SLOT(locationActivatedData(const QString &)));
//
// Start Time
//
d_time_label=new QLabel(tr("Start Time")+":",this);
d_time_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
d_time_label->setFont(labelFont());
d_time_edit=new QTimeEdit(this);
d_time_edit->setDisplayFormat("hh:mm:ss");
switch(d_event_type) {
case EventWidget::RecordEvent:
break;
case EventWidget::PlayEvent:
break;
case EventWidget::OtherEvent:
sql=QString("select ")+
"`NAME` "+ // 00
"from `STATIONS` "+
"order by `NAME`";
q=new RDSqlQuery(sql);
while(q->next()) {
d_location_box->
insertItem(d_location_box->count(),q->value(0).toString());
}
delete q;
break;
}
}
QSize EventWidget::sizeHint() const
{
return QSize(510,23);
}
QSizePolicy EventWidget::sizePolicy() const
{
return QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
}
bool EventWidget::isActive() const
{
return d_state_check->isChecked();
}
QString EventWidget::stationName() const
{
return d_current_station_name;
}
int EventWidget::deckNumber() const
{
return d_current_deck_number;
}
QTime EventWidget::startTime()
{
return d_time_edit->time();
}
void EventWidget::toRecording(unsigned record_id) const
{
QString sql=QString("update `RECORDINGS` set ")+
"`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 "+
QString().sprintf("`ID`=%u",record_id);
RDSqlQuery::apply(sql);
}
void EventWidget::fromRecording(unsigned record_id)
{
QString sql=QString("select ")+
"`IS_ACTIVE`,"+ // 00
"`STATION_NAME`,"+ // 01
"`CHANNEL`,"+ // 02
"`START_TIME` "+ // 03
"from `RECORDINGS` where "+
QString().sprintf("`ID`=%u",record_id);
RDSqlQuery *q=new RDSqlQuery(sql);
if(q->first()) {
d_state_check->setChecked(q->value(0).toString()=="Y");
d_time_edit->setTime(q->value(3).toTime());
switch(d_event_type) {
case EventWidget::RecordEvent:
break;
case EventWidget::PlayEvent:
break;
case EventWidget::OtherEvent:
d_location_box->setCurrentText(q->value(1).toString());
d_current_station_name=q->value(1).toString();
d_current_deck_number=-1;
break;
}
}
delete q;
}
void EventWidget::locationActivatedData(const QString &str)
{
QStringList f0=str.split(":",QString::KeepEmptyParts);
switch(f0.size()) {
case 1:
d_current_station_name=f0.at(0).trimmed();
emit locationChanged(d_current_station_name);
break;
case 2:
d_current_station_name=f0.at(0).trimmed();
d_current_deck_number=f0.at(1).toInt()-1;
emit locationChanged(d_current_station_name,d_current_deck_number);
break;
}
}
void EventWidget::resizeEvent(QResizeEvent *e)
{
d_state_check->setGeometry(0,1,20,20);
d_state_label->setGeometry(20,1,125,20);
d_location_box->setGeometry(190,0,140,23);
d_location_label->setGeometry(115,0,70,23);
d_time_edit->setGeometry(size().width()-90,2,80,20);
d_time_label->setGeometry(size().width()-175,2,80,20);
}

72
rdcatch/eventwidget.h Normal file
View File

@ -0,0 +1,72 @@
// eventwidget.h
//
// Widget for setting basic event parameters in rdcatch(1)
//
// (C) Copyright 2021 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef EVENTWIDGET_H
#define EVENTWIDGET_H
#include <QCheckBox>
#include <QComboBox>
#include <QDateTimeEdit>
#include <QLabel>
#include <rdwidget.h>
class EventWidget : public RDWidget
{
Q_OBJECT
public:
enum EventType {RecordEvent=0,PlayEvent=1,OtherEvent=2};
EventWidget(EventType type,QWidget *parent=0);
QSize sizeHint() const;
QSizePolicy sizePolicy() const;
bool isActive() const;
QString stationName() const;
int deckNumber() const;
QTime startTime();
void toRecording(unsigned record_id) const;
void fromRecording(unsigned record_id);
signals:
void stateChanged(bool state);
void locationChanged(const QString &hostname);
void locationChanged(const QString &hostname,int decknum);
void startTimeChanged(const QTime &time);
private slots:
void locationActivatedData(const QString &str);
protected:
void resizeEvent(QResizeEvent *e);
private:
QCheckBox *d_state_check;
QLabel *d_state_label;
QLabel *d_location_label;
QComboBox *d_location_box;
QLabel *d_time_label;
QTimeEdit *d_time_edit;
EventType d_event_type;
QString d_current_station_name;
int d_current_deck_number;
};
#endif // DOWSELECTOR_H

View File

@ -23,12 +23,14 @@ x11 {
SOURCES += add_recording.cpp SOURCES += add_recording.cpp
SOURCES += catchtableview.cpp SOURCES += catchtableview.cpp
SOURCES += deckmon.cpp SOURCES += deckmon.cpp
SOURCES += dowselector.cpp
SOURCES += edit_cartevent.cpp SOURCES += edit_cartevent.cpp
SOURCES += edit_playout.cpp SOURCES += edit_playout.cpp
SOURCES += edit_recording.cpp SOURCES += edit_recording.cpp
SOURCES += edit_switchevent.cpp SOURCES += edit_switchevent.cpp
SOURCES += edit_download.cpp SOURCES += edit_download.cpp
SOURCES += edit_upload.cpp SOURCES += edit_upload.cpp
SOURCES += eventwidget.cpp
SOURCES += rdcatch.cpp SOURCES += rdcatch.cpp
SOURCES += list_reports.cpp SOURCES += list_reports.cpp
SOURCES += recordlistmodel.cpp SOURCES += recordlistmodel.cpp
@ -38,12 +40,14 @@ x11 {
HEADERS += add_recording.h HEADERS += add_recording.h
HEADERS += catchtableview.h HEADERS += catchtableview.h
HEADERS += deckmon.h HEADERS += deckmon.h
HEADERS += dowselector.h
HEADERS += edit_cartevent.h HEADERS += edit_cartevent.h
HEADERS += edit_playout.h HEADERS += edit_playout.h
HEADERS += edit_recording.h HEADERS += edit_recording.h
HEADERS += edit_switchevent.h HEADERS += edit_switchevent.h
HEADERS += edit_download.h HEADERS += edit_download.h
HEADERS += edit_upload.h HEADERS += edit_upload.h
HEADERS += eventwidget.h
HEADERS += rdcatch.h HEADERS += rdcatch.h
HEADERS += list_reports.h HEADERS += list_reports.h
HEADERS += recordlistmodel.h HEADERS += recordlistmodel.h

View File

@ -98,6 +98,13 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>DowSelector</name>
<message>
<source>Active Days</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>EditCartEvent</name> <name>EditCartEvent</name>
<message> <message>
@ -760,18 +767,6 @@ New</source>
<source>Edit Upload</source> <source>Edit Upload</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </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> <message>
<source>RSS Feed:</source> <source>RSS Feed:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -812,38 +807,6 @@ New</source>
<source>dBFS</source> <source>dBFS</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </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> <message>
<source>Make OneShot</source> <source>Make OneShot</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -925,6 +888,25 @@ New</source>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Authenticate with local identity file</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EventWidget</name>
<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>
</context> </context>
<context> <context>
<name>ListReports</name> <name>ListReports</name>