mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-23 16:11:41 +02:00
Support dropbox metadata updates.
Signed-off-by: David Klann <dklann@linux.com>
This commit is contained in:
parent
2e84740e50
commit
5121a72dbe
5
AUTHORS
5
AUTHORS
@ -56,3 +56,8 @@ Scott Spillers <scotts@paravelsystems.com>
|
|||||||
|
|
||||||
Florent Peyraud <florent@draceo.fr>
|
Florent Peyraud <florent@draceo.fr>
|
||||||
Pypad fix
|
Pypad fix
|
||||||
|
|
||||||
|
David Klann <dklann@broadcasttool.com>
|
||||||
|
General bug fixes.
|
||||||
|
Add support for FTPS.
|
||||||
|
Add optional metadata updates in dropboxes.
|
||||||
|
@ -24142,3 +24142,7 @@
|
|||||||
title field in the 'Edit Clock' dialog to be incorrect.
|
title field in the 'Edit Clock' dialog to be incorrect.
|
||||||
2023-05-19 Fred Gleason <fredg@paravelsystems.com>
|
2023-05-19 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Added a formal video display resolution requirement to 'INSTALL'.
|
* Added a formal video display resolution requirement to 'INSTALL'.
|
||||||
|
2023-05-19 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>
|
</listitem>
|
||||||
</varlistentry>
|
</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>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<option>--drop-box</option>
|
<option>--drop-box</option>
|
||||||
@ -1097,4 +1110,3 @@
|
|||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
</refentry>
|
</refentry>
|
||||||
|
|
||||||
|
@ -2041,6 +2041,16 @@
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</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>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
<computeroutput>Send e-mail reports</computeroutput>
|
<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.
|
TITLE_FROM_CARTCHUNK_ID enum('N','Y') Set Rivendell cart title from cartchunk cutid.
|
||||||
DELETE_CUTS enum('N','Y')
|
DELETE_CUTS enum('N','Y')
|
||||||
DELETE_SOURCE 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')
|
SEND_EMAIL enum('N','Y')
|
||||||
METADATA_PATTERN varchar(64)
|
METADATA_PATTERN varchar(64)
|
||||||
STARTDATE_OFFSET int(11)
|
STARTDATE_OFFSET int(11)
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
/*
|
/*
|
||||||
* Current Database Version
|
* Current Database Version
|
||||||
*/
|
*/
|
||||||
#define RD_VERSION_DATABASE 369
|
#define RD_VERSION_DATABASE 370
|
||||||
|
|
||||||
|
|
||||||
#endif // DBVERSION_H
|
#endif // DBVERSION_H
|
||||||
|
@ -73,6 +73,7 @@ int RDDropbox::duplicate() const
|
|||||||
new_box->setTitleFromCartchunkId(titleFromCartchunkId());
|
new_box->setTitleFromCartchunkId(titleFromCartchunkId());
|
||||||
new_box->setDeleteCuts(deleteCuts());
|
new_box->setDeleteCuts(deleteCuts());
|
||||||
new_box->setDeleteSource(deleteSource());
|
new_box->setDeleteSource(deleteSource());
|
||||||
|
new_box->setUpdateMetadata(updateMetadata());
|
||||||
new_box->setSendEmail(sendEmail());
|
new_box->setSendEmail(sendEmail());
|
||||||
new_box->setMetadataPattern(metadataPattern());
|
new_box->setMetadataPattern(metadataPattern());
|
||||||
new_box->setUserDefined(userDefined());
|
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
|
QString RDDropbox::metadataPattern() const
|
||||||
{
|
{
|
||||||
return RDGetSqlValue("DROPBOXES","ID",box_id,"METADATA_PATTERN").toString();
|
return RDGetSqlValue("DROPBOXES","ID",box_id,"METADATA_PATTERN").toString();
|
||||||
|
@ -56,6 +56,8 @@ class RDDropbox
|
|||||||
void setDeleteSource(bool state) const;
|
void setDeleteSource(bool state) const;
|
||||||
bool sendEmail() const;
|
bool sendEmail() const;
|
||||||
void setSendEmail(bool state) const;
|
void setSendEmail(bool state) const;
|
||||||
|
bool updateMetadata() const;
|
||||||
|
void setUpdateMetadata(bool state) const;
|
||||||
QString metadataPattern() const;
|
QString metadataPattern() const;
|
||||||
void setMetadataPattern(const QString &str) const;
|
void setMetadataPattern(const QString &str) const;
|
||||||
QString userDefined() const;
|
QString userDefined() const;
|
||||||
|
@ -142,7 +142,7 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
box_log_path_edit=new QLineEdit(this);
|
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);
|
box_log_path_edit->setMaxLength(255);
|
||||||
connect(box_log_to_syslog_check,SIGNAL(toggled(bool)),
|
connect(box_log_to_syslog_check,SIGNAL(toggled(bool)),
|
||||||
box_log_path_edit,SLOT(setDisabled(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)),
|
connect(box_log_to_syslog_check,SIGNAL(toggled(bool)),
|
||||||
box_log_path_label,SLOT(setDisabled(bool)));
|
box_log_path_label,SLOT(setDisabled(bool)));
|
||||||
box_log_path_button=new QPushButton(tr("Select"),this);
|
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());
|
box_log_path_button->setFont(subButtonFont());
|
||||||
connect(box_log_path_button,SIGNAL(clicked()),
|
connect(box_log_path_button,SIGNAL(clicked()),
|
||||||
this,SLOT(selectLogPathData()));
|
this,SLOT(selectLogPathData()));
|
||||||
@ -164,7 +164,7 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Scheduler Codes
|
// Scheduler Codes
|
||||||
//
|
//
|
||||||
box_schedcodes_button=new QPushButton(tr("Scheduler Codes"),this);
|
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());
|
box_schedcodes_button->setFont(buttonFont());
|
||||||
connect(box_schedcodes_button,SIGNAL(clicked()),this,SLOT(schedcodesData()));
|
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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
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
|
// Send E-mail Reports
|
||||||
//
|
//
|
||||||
box_send_email_box=new QCheckBox(this);
|
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=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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
@ -192,9 +202,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Force To Mono
|
// Force To Mono
|
||||||
//
|
//
|
||||||
box_force_to_mono_box=new QCheckBox(this);
|
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=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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
@ -202,21 +212,21 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Normalization
|
// Normalization
|
||||||
//
|
//
|
||||||
box_normalization_box=new QCheckBox(this);
|
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=new QLabel(tr("Normalize Levels"),this);
|
||||||
label->setGeometry(110,262,100,20);
|
label->setGeometry(110,282,100,20);
|
||||||
label->setFont(labelFont());
|
label->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
box_normalization_level_spin=new QSpinBox(this);
|
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_spin->setRange(-100,-1);
|
||||||
box_normalization_level_label=new QLabel(tr("Level:"),this);
|
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->setFont(labelFont());
|
||||||
box_normalization_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
box_normalization_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||||
box_normalization_level_unit=new QLabel(tr("dBFS"),this);
|
box_normalization_level_unit=new QLabel(tr("dBFS"),this);
|
||||||
box_normalization_level_unit->setFont(labelFont());
|
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);
|
box_normalization_level_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||||
connect(box_normalization_box,SIGNAL(toggled(bool)),
|
connect(box_normalization_box,SIGNAL(toggled(bool)),
|
||||||
this,SLOT(normalizationToggledData(bool)));
|
this,SLOT(normalizationToggledData(bool)));
|
||||||
@ -225,21 +235,21 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Autotrim
|
// Autotrim
|
||||||
//
|
//
|
||||||
box_autotrim_box=new QCheckBox(this);
|
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=new QLabel(tr("Autotrim Cuts"),this);
|
||||||
label->setGeometry(110,287,100,20);
|
label->setGeometry(110,307,100,20);
|
||||||
label->setFont(labelFont());
|
label->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
box_autotrim_level_spin=new QSpinBox(this);
|
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_spin->setRange(-100,-1);
|
||||||
box_autotrim_level_label=new QLabel(tr("Level:"),this);
|
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->setFont(labelFont());
|
||||||
box_autotrim_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
box_autotrim_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||||
box_autotrim_level_unit=new QLabel(tr("dBFS"),this);
|
box_autotrim_level_unit=new QLabel(tr("dBFS"),this);
|
||||||
box_autotrim_level_unit->setFont(labelFont());
|
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);
|
box_autotrim_level_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||||
connect(box_autotrim_box,SIGNAL(toggled(bool)),
|
connect(box_autotrim_box,SIGNAL(toggled(bool)),
|
||||||
this,SLOT(autotrimToggledData(bool)));
|
this,SLOT(autotrimToggledData(bool)));
|
||||||
@ -248,33 +258,33 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Segue
|
// Segue
|
||||||
//
|
//
|
||||||
box_segue_box=new QCheckBox(this);
|
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=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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
box_segue_level_spin=new QSpinBox(this);
|
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_spin->setRange(-100,0);
|
||||||
box_segue_level_label=new QLabel(tr("Segue Level:"),this);
|
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->setFont(labelFont());
|
||||||
box_segue_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
box_segue_level_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||||
box_segue_level_unit=new QLabel("dBFS",this);
|
box_segue_level_unit=new QLabel("dBFS",this);
|
||||||
box_segue_level_unit->setFont(labelFont());
|
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_level_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||||
|
|
||||||
box_segue_length_spin=new QSpinBox(this);
|
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_spin->setRange(0,180000);
|
||||||
box_segue_length_label=new QLabel(tr("Segue Length:"),this);
|
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->setFont(labelFont());
|
||||||
box_segue_length_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
box_segue_length_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||||
box_segue_length_unit=new QLabel("msec",this);
|
box_segue_length_unit=new QLabel("msec",this);
|
||||||
box_segue_length_unit->setFont(labelFont());
|
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);
|
box_segue_length_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||||
connect(box_segue_box,SIGNAL(toggled(bool)),
|
connect(box_segue_box,SIGNAL(toggled(bool)),
|
||||||
this,SLOT(segueToggledData(bool)));
|
this,SLOT(segueToggledData(bool)));
|
||||||
@ -283,9 +293,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Use CartChunk ID
|
// Use CartChunk ID
|
||||||
//
|
//
|
||||||
box_use_cartchunk_id_box=new QCheckBox(this);
|
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=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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
@ -293,9 +303,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Title from CartChunk ID
|
// Title from CartChunk ID
|
||||||
//
|
//
|
||||||
box_title_from_cartchunk_id_box=new QCheckBox(this);
|
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=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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
@ -303,9 +313,9 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Fix Broken Formats
|
// Fix Broken Formats
|
||||||
//
|
//
|
||||||
box_fix_broken_formats_box=new QCheckBox(this);
|
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=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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
@ -313,14 +323,14 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Start Date Offset
|
// Start Date Offset
|
||||||
//
|
//
|
||||||
box_startoffset_spin=new QSpinBox(this);
|
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);
|
box_startoffset_spin->setRange(-7,7);
|
||||||
label=new QLabel(tr("Offset start date by"),this);
|
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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||||
label=new QLabel(tr("days"),this);
|
label=new QLabel(tr("days"),this);
|
||||||
label->setGeometry(275,468,100,20);
|
label->setGeometry(275,488,100,20);
|
||||||
label->setFont(labelFont());
|
label->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
@ -328,14 +338,14 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// End Date Offset
|
// End Date Offset
|
||||||
//
|
//
|
||||||
box_endoffset_spin=new QSpinBox(this);
|
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);
|
box_endoffset_spin->setRange(-7,7);
|
||||||
label=new QLabel(tr("Offset end date by"),this);
|
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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||||
label=new QLabel(tr("days"),this);
|
label=new QLabel(tr("days"),this);
|
||||||
label->setGeometry(275,490,100,20);
|
label->setGeometry(275,510,100,20);
|
||||||
label->setFont(labelFont());
|
label->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
|
|
||||||
@ -343,35 +353,35 @@ EditDropbox::EditDropbox(int id,bool duplicate,QWidget *parent)
|
|||||||
// Create Dates
|
// Create Dates
|
||||||
//
|
//
|
||||||
box_create_dates_box=new QCheckBox(this);
|
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=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->setFont(labelFont());
|
||||||
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
|
||||||
box_create_startdate_offset_spin=new QSpinBox(this);
|
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_offset_spin->setRange(-180,180);
|
||||||
box_create_startdate_label=
|
box_create_startdate_label=
|
||||||
new QLabel(tr("Create start date offset:"),this);
|
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->setFont(labelFont());
|
||||||
box_create_startdate_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
box_create_startdate_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||||
box_create_startdate_unit=new QLabel(tr("days"),this);
|
box_create_startdate_unit=new QLabel(tr("days"),this);
|
||||||
box_create_startdate_unit->setFont(labelFont());
|
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_startdate_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||||
|
|
||||||
box_create_enddate_offset_spin=new QSpinBox(this);
|
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_offset_spin->setRange(-180,180);
|
||||||
box_create_enddate_label=new QLabel(tr("Create end date offset:"),this);
|
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->setFont(labelFont());
|
||||||
box_create_enddate_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
box_create_enddate_label->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
|
||||||
box_create_enddate_unit=
|
box_create_enddate_unit=
|
||||||
new QLabel(("days"),this);
|
new QLabel(("days"),this);
|
||||||
box_create_enddate_unit->setFont(labelFont());
|
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);
|
box_create_enddate_unit->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
|
||||||
connect(box_create_dates_box,SIGNAL(toggled(bool)),
|
connect(box_create_dates_box,SIGNAL(toggled(bool)),
|
||||||
this,SLOT(createDatesToggledData(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_user_defined_edit->setText(box_dropbox->userDefined());
|
||||||
box_delete_source_box->setChecked(box_dropbox->deleteSource());
|
box_delete_source_box->setChecked(box_dropbox->deleteSource());
|
||||||
box_send_email_box->setChecked(box_dropbox->sendEmail());
|
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_force_to_mono_box->setChecked(box_dropbox->forceToMono());
|
||||||
box_normalization_box->setChecked(box_dropbox->normalizationLevel()<0);
|
box_normalization_box->setChecked(box_dropbox->normalizationLevel()<0);
|
||||||
box_normalization_level_spin->
|
box_normalization_level_spin->
|
||||||
@ -616,6 +627,7 @@ void EditDropbox::okData()
|
|||||||
box_dropbox->setMetadataPattern(box_metadata_pattern_edit->text());
|
box_dropbox->setMetadataPattern(box_metadata_pattern_edit->text());
|
||||||
box_dropbox->setUserDefined(box_user_defined_edit->text());
|
box_dropbox->setUserDefined(box_user_defined_edit->text());
|
||||||
box_dropbox->setDeleteSource(box_delete_source_box->isChecked());
|
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());
|
box_dropbox->setForceToMono(box_force_to_mono_box->isChecked());
|
||||||
if(box_normalization_box->isChecked()) {
|
if(box_normalization_box->isChecked()) {
|
||||||
box_dropbox->
|
box_dropbox->
|
||||||
@ -670,5 +682,3 @@ void EditDropbox::cancelData()
|
|||||||
{
|
{
|
||||||
done(false);
|
done(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@ class EditDropbox : public RDDialog
|
|||||||
QPushButton *box_log_path_button;
|
QPushButton *box_log_path_button;
|
||||||
QCheckBox *box_delete_source_box;
|
QCheckBox *box_delete_source_box;
|
||||||
QCheckBox *box_send_email_box;
|
QCheckBox *box_send_email_box;
|
||||||
|
QCheckBox *box_update_metadata_box;
|
||||||
QCheckBox *box_normalization_box;
|
QCheckBox *box_normalization_box;
|
||||||
QLabel *box_normalization_level_label;
|
QLabel *box_normalization_level_label;
|
||||||
QSpinBox *box_normalization_level_spin;
|
QSpinBox *box_normalization_level_spin;
|
||||||
|
@ -249,7 +249,8 @@ bool MainObject::StartDropboxes(QString *err_msg)
|
|||||||
"`FORCE_TO_MONO`,"+ // 21
|
"`FORCE_TO_MONO`,"+ // 21
|
||||||
"`SEGUE_LEVEL`,"+ // 22
|
"`SEGUE_LEVEL`,"+ // 22
|
||||||
"`SEGUE_LENGTH`,"+ // 23
|
"`SEGUE_LENGTH`,"+ // 23
|
||||||
"`SEND_EMAIL` "+ // 24
|
"`SEND_EMAIL`,"+ // 24
|
||||||
|
"`UPDATE_METADATA` "+ // 25
|
||||||
"from `DROPBOXES` where "+
|
"from `DROPBOXES` where "+
|
||||||
"`STATION_NAME`='"+RDEscapeString(rda->config()->stationName())+"'";
|
"`STATION_NAME`='"+RDEscapeString(rda->config()->stationName())+"'";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
@ -305,6 +306,9 @@ bool MainObject::StartDropboxes(QString *err_msg)
|
|||||||
args.push_back("--send-mail");
|
args.push_back("--send-mail");
|
||||||
args.push_back("--mail-per-file");
|
args.push_back("--mail-per-file");
|
||||||
}
|
}
|
||||||
|
if(q->value(25).toString()=="Y") {
|
||||||
|
args.push_back("--update-metadata");
|
||||||
|
}
|
||||||
if(q->value(17).toString()=="Y") {
|
if(q->value(17).toString()=="Y") {
|
||||||
args.push_back(QString::asprintf("--create-startdate-offset=%d",
|
args.push_back(QString::asprintf("--create-startdate-offset=%d",
|
||||||
q->value(18).toInt()));
|
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...
|
// NEW SCHEMA REVERSIONS GO HERE...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Revert 370
|
||||||
|
//
|
||||||
|
if((cur_schema == 370) && (set_schema < cur_schema))
|
||||||
|
{
|
||||||
|
DropColumn("DROPBOXES", "UPDATE_METADATA");
|
||||||
|
|
||||||
|
WriteSchemaVersion(--cur_schema);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Revert 369
|
// Revert 369
|
||||||
|
@ -160,7 +160,7 @@ void MainObject::InitializeSchemaMap() {
|
|||||||
global_version_map["3.4"]=317;
|
global_version_map["3.4"]=317;
|
||||||
global_version_map["3.5"]=346;
|
global_version_map["3.5"]=346;
|
||||||
global_version_map["3.6"]=347;
|
global_version_map["3.6"]=347;
|
||||||
global_version_map["4.0"]=369;
|
global_version_map["4.0"]=370;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -11403,6 +11403,17 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
|
|||||||
WriteSchemaVersion(++cur_schema);
|
WriteSchemaVersion(++cur_schema);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((cur_schema<370)&&(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...
|
// NEW SCHEMA UPDATES GO HERE...
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ MainObject::MainObject(QObject *parent)
|
|||||||
import_to_mono=false;
|
import_to_mono=false;
|
||||||
import_failed_imports=0;
|
import_failed_imports=0;
|
||||||
import_send_mail=false;
|
import_send_mail=false;
|
||||||
|
import_update_metadata = false;
|
||||||
import_mail_per_file=false;
|
import_mail_per_file=false;
|
||||||
import_journal=NULL;
|
import_journal=NULL;
|
||||||
import_dump_isci_xref=false;
|
import_dump_isci_xref=false;
|
||||||
@ -175,6 +176,10 @@ MainObject::MainObject(QObject *parent)
|
|||||||
import_delete_cuts=true;
|
import_delete_cuts=true;
|
||||||
rda->cmdSwitch()->setProcessed(i,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") {
|
if(rda->cmdSwitch()->key(i)=="--dump-isci-xref") {
|
||||||
import_dump_isci_xref=true;
|
import_dump_isci_xref=true;
|
||||||
rda->cmdSwitch()->setProcessed(i,true);
|
rda->cmdSwitch()->setProcessed(i,true);
|
||||||
@ -711,8 +716,14 @@ MainObject::MainObject(QObject *parent)
|
|||||||
else {
|
else {
|
||||||
Log(LOG_INFO,QString(" Delete cuts mode is OFF\n"));
|
Log(LOG_INFO,QString(" Delete cuts mode is OFF\n"));
|
||||||
}
|
}
|
||||||
if(import_dump_isci_xref) {
|
if(import_update_metadata) {
|
||||||
Log(LOG_INFO,QString(" Dump ISCI Cross Reference File is ON\n"));
|
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 {
|
else {
|
||||||
Log(LOG_INFO,QString(" Dump ISCI Cross Reference File is OFF\n"));
|
Log(LOG_INFO,QString(" Dump ISCI Cross Reference File is OFF\n"));
|
||||||
@ -1186,10 +1197,18 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
|||||||
//
|
//
|
||||||
// If the cart already exists and no title was found in metadata,
|
// If the cart already exists and no title was found in metadata,
|
||||||
// then keep the existing title. Otherwise, generate a default title.
|
// 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()) {
|
if((!cart_exists)&&wavedata->metadataFound()&&wavedata->title().isEmpty()) {
|
||||||
wavedata->setTitle(effective_group->generateTitle(filename));
|
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
|
else { // Use specified title
|
||||||
wavedata->setTitle(import_string_title);
|
wavedata->setTitle(import_string_title);
|
||||||
@ -1397,7 +1416,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
|
|||||||
settings->setNormalizationLevel(import_normalization_level/100);
|
settings->setNormalizationLevel(import_normalization_level/100);
|
||||||
settings->setAutotrimLevel(import_autotrim_level/100);
|
settings->setAutotrimLevel(import_autotrim_level/100);
|
||||||
conv->setDestinationSettings(settings);
|
conv->setDestinationSettings(settings);
|
||||||
conv->setUseMetadata(false);
|
conv->setUseMetadata(import_update_metadata);
|
||||||
Log(LOG_INFO,QString().
|
Log(LOG_INFO,QString().
|
||||||
sprintf(" Importing file \"%s\" [%s] to cart %06u ... ",
|
sprintf(" Importing file \"%s\" [%s] to cart %06u ... ",
|
||||||
RDGetBasePart(filename).toUtf8().constData(),
|
RDGetBasePart(filename).toUtf8().constData(),
|
||||||
|
@ -123,6 +123,7 @@ class MainObject : public QObject
|
|||||||
int import_segue_length;
|
int import_segue_length;
|
||||||
bool import_send_mail;
|
bool import_send_mail;
|
||||||
bool import_mail_per_file;
|
bool import_mail_per_file;
|
||||||
|
bool import_update_metadata;
|
||||||
unsigned import_cart_number;
|
unsigned import_cart_number;
|
||||||
QString import_metadata_pattern;
|
QString import_metadata_pattern;
|
||||||
QString import_output_pattern;
|
QString import_output_pattern;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user