From aa41ce2f8491390924f9fe6d67cf14aa3ee140ff Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Thu, 14 Jan 2021 18:11:47 -0500 Subject: [PATCH] 2021-01-14 Fred Gleason * Fixed a bug in rdlibrary(1) that caused a SQL error to be generated when neither audio nor macro carts were selected in the cart filter. Signed-off-by: Fred Gleason --- ChangeLog | 3 +++ lib/rdcartfilter.cpp | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d4f4cff..41d2d2e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20788,3 +20788,6 @@ * Reenabled cart dragging in rdlibrary(1). 2021-01-14 Fred Gleason * Purged unneeded data structures in rdlibrary(1). +2021-01-14 Fred Gleason + * Fixed a bug in rdlibrary(1) that caused a SQL error to be generated + when neither audio nor macro carts were selected in the cart filter. diff --git a/lib/rdcartfilter.cpp b/lib/rdcartfilter.cpp index 74d563f0..b97e4ddf 100644 --- a/lib/rdcartfilter.cpp +++ b/lib/rdcartfilter.cpp @@ -226,6 +226,10 @@ QString RDCartFilter::filterSql(const QStringList &and_fields) const QString sql=""; QString type_filter=GetTypeFilter(); + if(type_filter.isEmpty()) { + return QString("where CART.NUMBER=0 "); + } + QStringList schedcodes; if(d_codes_box->currentText()!=tr("ALL")) { schedcodes << d_codes_box->currentText(); @@ -235,11 +239,11 @@ QString RDCartFilter::filterSql(const QStringList &and_fields) const } if(d_group_box->currentText()==QString(tr("ALL"))) { sql=RDAllCartSearchText(d_filter_edit->text(),schedcodes, - rda->user()->name(),true)+" && "+type_filter; + rda->user()->name(),true)+" "+type_filter; } else { sql=RDCartSearchText(d_filter_edit->text(),d_group_box->currentText(), - schedcodes,true)+" && "+type_filter; + schedcodes,true)+" "+type_filter; } for(int i=0;iisChecked()) { if(d_showmacro_box->isChecked()) { - type_filter="((TYPE=1)||(TYPE=2)||(TYPE=3))"; + type_filter="&& ((TYPE=1)||(TYPE=2)||(TYPE=3))"; } else { - type_filter="((TYPE=1)||(TYPE=3))"; + type_filter="&& ((TYPE=1)||(TYPE=3))"; } } else { if(d_showmacro_box->isChecked()) { - type_filter="(TYPE=2)"; + type_filter="&& (TYPE=2)"; } } return type_filter;