Support dropbox metadata updates.

Signed-off-by: David Klann <dklann@linux.com>
This commit is contained in:
David Klann 2023-05-19 12:45:39 -05:00
parent 178f595a80
commit f6f763d9e5
14 changed files with 158 additions and 53 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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>

View File

@ -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>

View File

@ -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)

View File

@ -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();

View File

@ -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;

View File

@ -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);
}

View File

@ -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;

View File

@ -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()));

View File

@ -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

View File

@ -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...

View File

@ -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,6 +716,12 @@ MainObject::MainObject(QObject *parent)
else {
Log(LOG_INFO,QString(" Delete cuts mode is OFF\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"));
}
@ -1186,10 +1197,18 @@ 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(),

View File

@ -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;