mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-20 15:02:27 +02:00
Support dropbox metadata updates.
Signed-off-by: David Klann <dklann@linux.com>
This commit is contained in:
parent
178f595a80
commit
f6f763d9e5
5
AUTHORS
5
AUTHORS
@ -56,3 +56,8 @@ Scott Spillers <scotts@paravelsystems.com>
|
||||
|
||||
Florent Peyraud <florent@draceo.fr>
|
||||
Pypad fix
|
||||
|
||||
David Klann <dklann@broadcasttool.com>
|
||||
General bug fixes.
|
||||
Add support for FTPS.
|
||||
Add optional metadata updates in dropboxes.
|
||||
|
@ -24239,3 +24239,7 @@
|
||||
2023-06-11 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Incremented the package version to 4.0.0rc5.
|
||||
* Incremented the Python API version to 4.0.0rc5.
|
||||
2023-06-14 David Klann <dklann@broadcasttool.com>
|
||||
* Added support for updating library metadata on subsequent
|
||||
dropbox imports
|
||||
* Incremented the database version to 370.
|
||||
|
@ -195,6 +195,19 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>--update-metadata</option>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Attempt to update the library metadata from the embedded data in
|
||||
the source audio file when importing <emphasis>new</emphasis> audio
|
||||
into an <emphasis>existing</emphasis> cart.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<option>--drop-box</option>
|
||||
@ -1097,4 +1110,3 @@
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
|
||||
|
@ -2041,6 +2041,16 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<computeroutput>Update Metadata</computeroutput>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Update Library metadata on successful importation <emphasis>when replacing audio in an existing cart</emphasis>. Checked or unchecked, this option has no effect on updating the metadata when importing audio into a cart for the first time.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<computeroutput>Send e-mail reports</computeroutput>
|
||||
|
@ -20,6 +20,8 @@ USE_CARTCHUNK_ID enum('N','Y')
|
||||
TITLE_FROM_CARTCHUNK_ID enum('N','Y') Set Rivendell cart title from cartchunk cutid.
|
||||
DELETE_CUTS enum('N','Y')
|
||||
DELETE_SOURCE enum('N','Y')
|
||||
UPDATE_METADATA enum('N','Y') Update Library with source file metadata
|
||||
on subsquent imports.
|
||||
SEND_EMAIL enum('N','Y')
|
||||
METADATA_PATTERN varchar(64)
|
||||
STARTDATE_OFFSET int(11)
|
||||
|
@ -73,6 +73,7 @@ int RDDropbox::duplicate() const
|
||||
new_box->setTitleFromCartchunkId(titleFromCartchunkId());
|
||||
new_box->setDeleteCuts(deleteCuts());
|
||||
new_box->setDeleteSource(deleteSource());
|
||||
new_box->setUpdateMetadata(updateMetadata());
|
||||
new_box->setSendEmail(sendEmail());
|
||||
new_box->setMetadataPattern(metadataPattern());
|
||||
new_box->setUserDefined(userDefined());
|
||||
@ -253,6 +254,19 @@ void RDDropbox::setSendEmail(bool state) const
|
||||
}
|
||||
|
||||
|
||||
bool RDDropbox::updateMetadata() const
|
||||
{
|
||||
return RDBool(RDGetSqlValue("DROPBOXES", "ID", box_id, "UPDATE_METADATA").
|
||||
toString());
|
||||
}
|
||||
|
||||
|
||||
void RDDropbox::setUpdateMetadata(bool state)const
|
||||
{
|
||||
SetRow("UPDATE_METADATA", state);
|
||||
}
|
||||
|
||||
|
||||
QString RDDropbox::metadataPattern() const
|
||||
{
|
||||
return RDGetSqlValue("DROPBOXES","ID",box_id,"METADATA_PATTERN").toString();
|
||||
|
@ -56,6 +56,8 @@ class RDDropbox
|
||||
void setDeleteSource(bool state) const;
|
||||
bool sendEmail() const;
|
||||
void setSendEmail(bool state) const;
|
||||
bool updateMetadata() const;
|
||||
void setUpdateMetadata(bool state) const;
|
||||
QString metadataPattern() const;
|
||||
void setMetadataPattern(const QString &str) const;
|
||||
QString userDefined() const;
|
||||
|
@ -142,7 +142,7 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
box_log_path_edit=new QLineEdit(this);
|
||||
box_log_path_edit->setGeometry(140,141,sizeHint().width()-210,19);
|
||||
box_log_path_edit->setGeometry(140,137,sizeHint().width()-210,19);
|
||||
box_log_path_edit->setMaxLength(255);
|
||||
connect(box_log_to_syslog_check,SIGNAL(toggled(bool)),
|
||||
box_log_path_edit,SLOT(setDisabled(bool)));
|
||||
@ -153,7 +153,7 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
connect(box_log_to_syslog_check,SIGNAL(toggled(bool)),
|
||||
box_log_path_label,SLOT(setDisabled(bool)));
|
||||
box_log_path_button=new QPushButton(tr("Select"),this);
|
||||
box_log_path_button->setGeometry(sizeHint().width()-60,138,50,23);
|
||||
box_log_path_button->setGeometry(sizeHint().width()-60,136,50,23);
|
||||
box_log_path_button->setFont(subButtonFont());
|
||||
connect(box_log_path_button,SIGNAL(clicked()),
|
||||
this,SLOT(selectLogPathData()));
|
||||
@ -164,7 +164,7 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Scheduler Codes
|
||||
//
|
||||
box_schedcodes_button=new QPushButton(tr("Scheduler Codes"),this);
|
||||
box_schedcodes_button->setGeometry(110,167,200,25);
|
||||
box_schedcodes_button->setGeometry(110,165,200,25);
|
||||
box_schedcodes_button->setFont(buttonFont());
|
||||
connect(box_schedcodes_button,SIGNAL(clicked()),this,SLOT(schedcodesData()));
|
||||
|
||||
@ -178,13 +178,23 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Update Metadata
|
||||
//
|
||||
box_update_metadata_box = new QCheckBox(this);
|
||||
box_update_metadata_box->setGeometry(90, 221, 15, 15);
|
||||
label = new QLabel(tr("Update library metadata"), this);
|
||||
label->setGeometry(110, 219, sizeHint().width() - 120, 20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||||
|
||||
//
|
||||
// Send E-mail Reports
|
||||
//
|
||||
box_send_email_box=new QCheckBox(this);
|
||||
box_send_email_box->setGeometry(90,221,15,15);
|
||||
box_send_email_box->setGeometry(90,241,15,15);
|
||||
label=new QLabel(tr("Send e-mail reports"),this);
|
||||
label->setGeometry(110,219,sizeHint().width()-120,20);
|
||||
label->setGeometry(110,239,sizeHint().width()-120,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
@ -192,9 +202,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Force To Mono
|
||||
//
|
||||
box_force_to_mono_box=new QCheckBox(this);
|
||||
box_force_to_mono_box->setGeometry(90,243,15,15);
|
||||
box_force_to_mono_box->setGeometry(90,263,15,15);
|
||||
label=new QLabel(tr("Force to Monaural"),this);
|
||||
label->setGeometry(110,241,sizeHint().width()-120,20);
|
||||
label->setGeometry(110,261,sizeHint().width()-120,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
@ -202,21 +212,21 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Normalization
|
||||
//
|
||||
box_normalization_box=new QCheckBox(this);
|
||||
box_normalization_box->setGeometry(90,264,15,15);
|
||||
box_normalization_box->setGeometry(90,284,15,15);
|
||||
label=new QLabel(tr("Normalize Levels"),this);
|
||||
label->setGeometry(110,262,100,20);
|
||||
label->setGeometry(110,282,100,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
box_normalization_level_spin=new QSpinBox(this);
|
||||
box_normalization_level_spin->setGeometry(275,263,50,20);
|
||||
box_normalization_level_spin->setGeometry(275,283,50,20);
|
||||
box_normalization_level_spin->setRange(-100,-1);
|
||||
box_normalization_level_label=new QLabel(tr("Level:"),this);
|
||||
box_normalization_level_label->setGeometry(210,263,60,20);
|
||||
box_normalization_level_label->setGeometry(210,283,60,20);
|
||||
box_normalization_level_label->setFont(labelFont());
|
||||
box_normalization_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||
box_normalization_level_unit=new QLabel(tr("dBFS"),this);
|
||||
box_normalization_level_unit->setFont(labelFont());
|
||||
box_normalization_level_unit->setGeometry(330,263,60,20);
|
||||
box_normalization_level_unit->setGeometry(330,283,60,20);
|
||||
box_normalization_level_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||
connect(box_normalization_box,SIGNAL(toggled(bool)),
|
||||
this,SLOT(normalizationToggledData(bool)));
|
||||
@ -225,21 +235,21 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Autotrim
|
||||
//
|
||||
box_autotrim_box=new QCheckBox(this);
|
||||
box_autotrim_box->setGeometry(90,289,15,15);
|
||||
box_autotrim_box->setGeometry(90,309,15,15);
|
||||
label=new QLabel(tr("Autotrim Cuts"),this);
|
||||
label->setGeometry(110,287,100,20);
|
||||
label->setGeometry(110,307,100,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
box_autotrim_level_spin=new QSpinBox(this);
|
||||
box_autotrim_level_spin->setGeometry(275,287,50,20);
|
||||
box_autotrim_level_spin->setGeometry(275,307,50,20);
|
||||
box_autotrim_level_spin->setRange(-100,-1);
|
||||
box_autotrim_level_label=new QLabel(tr("Level:"),this);
|
||||
box_autotrim_level_label->setGeometry(210,287,60,20);
|
||||
box_autotrim_level_label->setGeometry(210,307,60,20);
|
||||
box_autotrim_level_label->setFont(labelFont());
|
||||
box_autotrim_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||
box_autotrim_level_unit=new QLabel(tr("dBFS"),this);
|
||||
box_autotrim_level_unit->setFont(labelFont());
|
||||
box_autotrim_level_unit->setGeometry(330,287,60,20);
|
||||
box_autotrim_level_unit->setGeometry(330,307,60,20);
|
||||
box_autotrim_level_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||
connect(box_autotrim_box,SIGNAL(toggled(bool)),
|
||||
this,SLOT(autotrimToggledData(bool)));
|
||||
@ -248,33 +258,33 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Segue
|
||||
//
|
||||
box_segue_box=new QCheckBox(this);
|
||||
box_segue_box->setGeometry(90,315,15,15);
|
||||
box_segue_box->setGeometry(90,335,15,15);
|
||||
label=new QLabel(tr("Insert Segue Markers"),this);
|
||||
label->setGeometry(110,313,sizeHint().width()-40,20);
|
||||
label->setGeometry(110,333,sizeHint().width()-40,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
box_segue_level_spin=new QSpinBox(this);
|
||||
box_segue_level_spin->setGeometry(285,339,50,20);
|
||||
box_segue_level_spin->setGeometry(285,359,50,20);
|
||||
box_segue_level_spin->setRange(-100,0);
|
||||
box_segue_level_label=new QLabel(tr("Segue Level:"),this);
|
||||
box_segue_level_label->setGeometry(120,339,160,20);
|
||||
box_segue_level_label->setGeometry(120,360,160,20);
|
||||
box_segue_level_label->setFont(labelFont());
|
||||
box_segue_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||
box_segue_level_unit=new QLabel("dBFS",this);
|
||||
box_segue_level_unit->setFont(labelFont());
|
||||
box_segue_level_unit->setGeometry(360,340,60,20);
|
||||
box_segue_level_unit->setGeometry(360,360,60,20);
|
||||
box_segue_level_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||
|
||||
box_segue_length_spin=new QSpinBox(this);
|
||||
box_segue_length_spin->setGeometry(285,364,70,20);
|
||||
box_segue_length_spin->setGeometry(285,384,70,20);
|
||||
box_segue_length_spin->setRange(0,180000);
|
||||
box_segue_length_label=new QLabel(tr("Segue Length:"),this);
|
||||
box_segue_length_label->setGeometry(120,364,160,20);
|
||||
box_segue_length_label->setGeometry(120,384,160,20);
|
||||
box_segue_length_label->setFont(labelFont());
|
||||
box_segue_length_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||
box_segue_length_unit=new QLabel("msec",this);
|
||||
box_segue_length_unit->setFont(labelFont());
|
||||
box_segue_length_unit->setGeometry(375,365,60,20);
|
||||
box_segue_length_unit->setGeometry(375,385,60,20);
|
||||
box_segue_length_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||
connect(box_segue_box,SIGNAL(toggled(bool)),
|
||||
this,SLOT(segueToggledData(bool)));
|
||||
@ -283,9 +293,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Use CartChunk ID
|
||||
//
|
||||
box_use_cartchunk_id_box=new QCheckBox(this);
|
||||
box_use_cartchunk_id_box->setGeometry(90,394,15,15);
|
||||
box_use_cartchunk_id_box->setGeometry(90,418,15,15);
|
||||
label=new QLabel(tr("Get cart number from CartChunk CutID"),this);
|
||||
label->setGeometry(110,392,sizeHint().width()-40,20);
|
||||
label->setGeometry(110,416,sizeHint().width()-40,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
@ -293,9 +303,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Title from CartChunk ID
|
||||
//
|
||||
box_title_from_cartchunk_id_box=new QCheckBox(this);
|
||||
box_title_from_cartchunk_id_box->setGeometry(90,418,15,15);
|
||||
box_title_from_cartchunk_id_box->setGeometry(90,438,15,15);
|
||||
label=new QLabel(tr("Get cart title from CartChunk CutID"),this);
|
||||
label->setGeometry(110,416,sizeHint().width()-40,20);
|
||||
label->setGeometry(110,436,sizeHint().width()-40,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
@ -303,9 +313,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Fix Broken Formats
|
||||
//
|
||||
box_fix_broken_formats_box=new QCheckBox(this);
|
||||
box_fix_broken_formats_box->setGeometry(90,442,15,15);
|
||||
box_fix_broken_formats_box->setGeometry(90,462,15,15);
|
||||
label=new QLabel(tr("Attempt to work around malformatted input files"),this);
|
||||
label->setGeometry(110,440,sizeHint().width()-40,20);
|
||||
label->setGeometry(110,460,sizeHint().width()-40,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
@ -313,14 +323,14 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Start Date Offset
|
||||
//
|
||||
box_startoffset_spin=new QSpinBox(this);
|
||||
box_startoffset_spin->setGeometry(215,466,50,20);
|
||||
box_startoffset_spin->setGeometry(215,486,50,20);
|
||||
box_startoffset_spin->setRange(-7,7);
|
||||
label=new QLabel(tr("Offset start date by"),this);
|
||||
label->setGeometry(90,466,120,20);
|
||||
label->setGeometry(90,486,120,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
label=new QLabel(tr("days"),this);
|
||||
label->setGeometry(275,468,100,20);
|
||||
label->setGeometry(275,488,100,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
@ -328,14 +338,14 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// End Date Offset
|
||||
//
|
||||
box_endoffset_spin=new QSpinBox(this);
|
||||
box_endoffset_spin->setGeometry(215,490,50,20);
|
||||
box_endoffset_spin->setGeometry(215,510,50,20);
|
||||
box_endoffset_spin->setRange(-7,7);
|
||||
label=new QLabel(tr("Offset end date by"),this);
|
||||
label->setGeometry(90,490,120,20);
|
||||
label->setGeometry(90,510,120,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
label=new QLabel(tr("days"),this);
|
||||
label->setGeometry(275,490,100,20);
|
||||
label->setGeometry(275,510,100,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
|
||||
@ -343,35 +353,35 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
// Create Dates
|
||||
//
|
||||
box_create_dates_box=new QCheckBox(this);
|
||||
box_create_dates_box->setGeometry(90,514,15,15);
|
||||
box_create_dates_box->setGeometry(90,534,15,15);
|
||||
label=new QLabel(tr("Create Dates when no Dates Exist"),this);
|
||||
label->setGeometry(110,512,sizeHint().width()-40,20);
|
||||
label->setGeometry(110,532,sizeHint().width()-40,20);
|
||||
label->setFont(labelFont());
|
||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||
box_create_startdate_offset_spin=new QSpinBox(this);
|
||||
box_create_startdate_offset_spin->setGeometry(285,538,50,20);
|
||||
box_create_startdate_offset_spin->setGeometry(285,558,50,20);
|
||||
box_create_startdate_offset_spin->setRange(-180,180);
|
||||
box_create_startdate_label=
|
||||
new QLabel(tr("Create start date offset:"),this);
|
||||
box_create_startdate_label->setGeometry(120,538,160,20);
|
||||
box_create_startdate_label->setGeometry(120,558,160,20);
|
||||
box_create_startdate_label->setFont(labelFont());
|
||||
box_create_startdate_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||
box_create_startdate_unit=new QLabel(tr("days"),this);
|
||||
box_create_startdate_unit->setFont(labelFont());
|
||||
box_create_startdate_unit->setGeometry(345,539,60,20);
|
||||
box_create_startdate_unit->setGeometry(345,558,60,20);
|
||||
box_create_startdate_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||
|
||||
box_create_enddate_offset_spin=new QSpinBox(this);
|
||||
box_create_enddate_offset_spin->setGeometry(285,560,50,20);
|
||||
box_create_enddate_offset_spin->setGeometry(285,582,50,20);
|
||||
box_create_enddate_offset_spin->setRange(-180,180);
|
||||
box_create_enddate_label=new QLabel(tr("Create end date offset:"),this);
|
||||
box_create_enddate_label->setGeometry(120,558,160,20);
|
||||
box_create_enddate_label->setGeometry(120,580,160,20);
|
||||
box_create_enddate_label->setFont(labelFont());
|
||||
box_create_enddate_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||
box_create_enddate_unit=
|
||||
new QLabel(("days"),this);
|
||||
box_create_enddate_unit->setFont(labelFont());
|
||||
box_create_enddate_unit->setGeometry(345,558,60,20);
|
||||
box_create_enddate_unit->setGeometry(345,578,60,20);
|
||||
box_create_enddate_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||
connect(box_create_dates_box,SIGNAL(toggled(bool)),
|
||||
this,SLOT(createDatesToggledData(bool)));
|
||||
@ -420,6 +430,7 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
||||
box_user_defined_edit->setText(box_dropbox->userDefined());
|
||||
box_delete_source_box->setChecked(box_dropbox->deleteSource());
|
||||
box_send_email_box->setChecked(box_dropbox->sendEmail());
|
||||
box_update_metadata_box->setChecked(box_dropbox->updateMetadata());
|
||||
box_force_to_mono_box->setChecked(box_dropbox->forceToMono());
|
||||
box_normalization_box->setChecked(box_dropbox->normalizationLevel()<0);
|
||||
box_normalization_level_spin->
|
||||
@ -616,6 +627,7 @@ void EditDropbox::okData()
|
||||
box_dropbox->setMetadataPattern(box_metadata_pattern_edit->text());
|
||||
box_dropbox->setUserDefined(box_user_defined_edit->text());
|
||||
box_dropbox->setDeleteSource(box_delete_source_box->isChecked());
|
||||
box_dropbox->setUpdateMetadata(box_update_metadata_box->isChecked());
|
||||
box_dropbox->setForceToMono(box_force_to_mono_box->isChecked());
|
||||
if(box_normalization_box->isChecked()) {
|
||||
box_dropbox->
|
||||
@ -670,5 +682,3 @@ void EditDropbox::cancelData()
|
||||
{
|
||||
done(false);
|
||||
}
|
||||
|
||||
|
||||
|
@ -72,6 +72,7 @@ class EditDropbox : public RDDialog
|
||||
QPushButton *box_log_path_button;
|
||||
QCheckBox *box_delete_source_box;
|
||||
QCheckBox *box_send_email_box;
|
||||
QCheckBox *box_update_metadata_box;
|
||||
QCheckBox *box_normalization_box;
|
||||
QLabel *box_normalization_level_label;
|
||||
QSpinBox *box_normalization_level_spin;
|
||||
|
@ -249,7 +249,8 @@ bool MainObject::StartDropboxes(QString *err_msg)
|
||||
"`FORCE_TO_MONO`,"+ // 21
|
||||
"`SEGUE_LEVEL`,"+ // 22
|
||||
"`SEGUE_LENGTH`,"+ // 23
|
||||
"`SEND_EMAIL` "+ // 24
|
||||
"`SEND_EMAIL`,"+ // 24
|
||||
"`UPDATE_METADATA` "+ // 25
|
||||
"from `DROPBOXES` where "+
|
||||
"`STATION_NAME`='"+RDEscapeString(rda->config()->stationName())+"'";
|
||||
q=new RDSqlQuery(sql);
|
||||
@ -305,6 +306,9 @@ bool MainObject::StartDropboxes(QString *err_msg)
|
||||
args.push_back("--send-mail");
|
||||
args.push_back("--mail-per-file");
|
||||
}
|
||||
if(q->value(25).toString()=="Y") {
|
||||
args.push_back("--update-metadata");
|
||||
}
|
||||
if(q->value(17).toString()=="Y") {
|
||||
args.push_back(QString::asprintf("--create-startdate-offset=%d",
|
||||
q->value(18).toInt()));
|
||||
|
@ -40,6 +40,16 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
|
||||
// NEW SCHEMA REVERSIONS GO HERE...
|
||||
|
||||
//
|
||||
// Revert 370
|
||||
//
|
||||
if((cur_schema == 370) && (set_schema < cur_schema))
|
||||
{
|
||||
DropColumn("DROPBOXES", "UPDATE_METADATA");
|
||||
|
||||
WriteSchemaVersion(--cur_schema);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Revert 370
|
||||
|
@ -11408,6 +11408,17 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
if((cur_schema<371)&&(set_schema>cur_schema)) {
|
||||
sql=QString("alter table `DROPBOXES` ")+
|
||||
"add column `UPDATE_METADATA` enum('N','Y') not null default 'N' "+
|
||||
"after `DELETE_SOURCE`";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
|
||||
// NEW SCHEMA UPDATES GO HERE...
|
||||
|
||||
|
@ -98,6 +98,7 @@ MainObject::MainObject(QObject *parent)
|
||||
import_to_mono=false;
|
||||
import_failed_imports=0;
|
||||
import_send_mail=false;
|
||||
import_update_metadata = false;
|
||||
import_mail_per_file=false;
|
||||
import_journal=NULL;
|
||||
import_dump_isci_xref=false;
|
||||
@ -175,6 +176,10 @@ MainObject::MainObject(QObject *parent)
|
||||
import_delete_cuts=true;
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
}
|
||||
if (rda->cmdSwitch()->key(i)=="--update-metadata") {
|
||||
import_update_metadata=true;
|
||||
rda->cmdSwitch()->setProcessed(i, true);
|
||||
}
|
||||
if(rda->cmdSwitch()->key(i)=="--dump-isci-xref") {
|
||||
import_dump_isci_xref=true;
|
||||
rda->cmdSwitch()->setProcessed(i,true);
|
||||
@ -711,8 +716,14 @@ MainObject::MainObject(QObject *parent)
|
||||
else {
|
||||
Log(LOG_INFO,QString(" Delete cuts mode is OFF\n"));
|
||||
}
|
||||
if(import_dump_isci_xref) {
|
||||
Log(LOG_INFO,QString(" Dump ISCI Cross Reference File is ON\n"));
|
||||
if(import_update_metadata) {
|
||||
Log(LOG_INFO,QString(" Update Metadata mode is ON\n"));
|
||||
}
|
||||
else {
|
||||
Log(LOG_INFO,QString(" Update Metadata mode is OFF\n"));
|
||||
}
|
||||
if (import_dump_isci_xref) {
|
||||
Log(LOG_INFO, QString(" Dump ISCI Cross Reference File is ON\n"));
|
||||
}
|
||||
else {
|
||||
Log(LOG_INFO,QString(" Dump ISCI Cross Reference File is OFF\n"));
|
||||
@ -1186,11 +1197,19 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
||||
//
|
||||
// If the cart already exists and no title was found in metadata,
|
||||
// then keep the existing title. Otherwise, generate a default title.
|
||||
// - OR -
|
||||
// If the cart already exists and a title was found in metadata,
|
||||
// AND --update-metadata was specified on the command line,
|
||||
// then use that title.
|
||||
//
|
||||
if((!cart_exists)&&wavedata->metadataFound()&&wavedata->title().isEmpty()) {
|
||||
wavedata->setTitle(effective_group->generateTitle(filename));
|
||||
}
|
||||
}
|
||||
else if ((cart_exists)&&wavedata->metadataFound()&&
|
||||
!wavedata->title().isEmpty()&&(import_update_metadata)) {
|
||||
wavedata->setTitle(import_string_title);
|
||||
}
|
||||
}
|
||||
else { // Use specified title
|
||||
wavedata->setTitle(import_string_title);
|
||||
}
|
||||
@ -1397,7 +1416,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
||||
settings->setNormalizationLevel(import_normalization_level/100);
|
||||
settings->setAutotrimLevel(import_autotrim_level/100);
|
||||
conv->setDestinationSettings(settings);
|
||||
conv->setUseMetadata(false);
|
||||
conv->setUseMetadata(import_update_metadata);
|
||||
Log(LOG_INFO,QString().
|
||||
sprintf(" Importing file \"%s\" [%s] to cart %06u ... ",
|
||||
RDGetBasePart(filename).toUtf8().constData(),
|
||||
|
@ -123,6 +123,7 @@ class MainObject : public QObject
|
||||
int import_segue_length;
|
||||
bool import_send_mail;
|
||||
bool import_mail_per_file;
|
||||
bool import_update_metadata;
|
||||
unsigned import_cart_number;
|
||||
QString import_metadata_pattern;
|
||||
QString import_output_pattern;
|
||||
|
Loading…
x
Reference in New Issue
Block a user