mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 00:53:53 +02:00
2021-09-21 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdlibrary(1) that failed to update the length of macro carts after editing. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
@@ -22450,3 +22450,6 @@
|
|||||||
* Enabled column sorting in the Library List in rdlibrary(1).
|
* Enabled column sorting in the Library List in rdlibrary(1).
|
||||||
* Enabled column sorting in the 'Select Cart' dialog.
|
* Enabled column sorting in the 'Select Cart' dialog.
|
||||||
* Enabled column sorting in the 'Select Cut' dialog.
|
* Enabled column sorting in the 'Select Cut' dialog.
|
||||||
|
2021-09-21 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Fixed a regression in rdlibrary(1) that failed to update the
|
||||||
|
length of macro carts after editing.
|
||||||
|
@@ -166,6 +166,27 @@ QString RDMacroCartModel::allCode() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int RDMacroCartModel::totalLength() const
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
bool ok=false;
|
||||||
|
|
||||||
|
for(int i=0;i<lineCount();i++) {
|
||||||
|
QStringList f0=
|
||||||
|
d_texts.at(i).at(1).toString().split(" ",QString::SkipEmptyParts);
|
||||||
|
if((f0.size()==2)&&(f0.at(0)=="SP")) {
|
||||||
|
f0[1].remove("!");
|
||||||
|
int msec=f0.at(1).toInt(&ok);
|
||||||
|
if(ok&&(msec>=0)) {
|
||||||
|
ret+=msec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QModelIndex RDMacroCartModel::addLine(const QModelIndex &row,const QString &rml)
|
QModelIndex RDMacroCartModel::addLine(const QModelIndex &row,const QString &rml)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -207,8 +228,12 @@ void RDMacroCartModel::refresh(const QModelIndex &row,const QString &rml)
|
|||||||
|
|
||||||
void RDMacroCartModel::save() const
|
void RDMacroCartModel::save() const
|
||||||
{
|
{
|
||||||
|
int len=totalLength();
|
||||||
QString sql=QString("update `CART` set ")+
|
QString sql=QString("update `CART` set ")+
|
||||||
"`MACROS`=\""+RDEscapeString(allCode())+"\" where "+
|
"`MACROS`='"+RDEscapeString(allCode())+"',"+
|
||||||
|
QString::asprintf("`FORCED_LENGTH`=%d,",len)+
|
||||||
|
QString::asprintf("`AVERAGE_LENGTH`=%d ",len)+
|
||||||
|
"where "+
|
||||||
QString::asprintf("`NUMBER`=%u",d_cart_number);
|
QString::asprintf("`NUMBER`=%u",d_cart_number);
|
||||||
RDSqlQuery::apply(sql);
|
RDSqlQuery::apply(sql);
|
||||||
}
|
}
|
||||||
|
@@ -48,6 +48,7 @@ class RDMacroCartModel : public QAbstractTableModel
|
|||||||
bool isEndHandle(const QModelIndex &row) const;
|
bool isEndHandle(const QModelIndex &row) const;
|
||||||
QString code(const QModelIndex &row) const;
|
QString code(const QModelIndex &row) const;
|
||||||
QString allCode() const;
|
QString allCode() const;
|
||||||
|
int totalLength() const;
|
||||||
QModelIndex addLine(const QModelIndex &row,const QString &rml);
|
QModelIndex addLine(const QModelIndex &row,const QString &rml);
|
||||||
void removeLine(const QModelIndex &row);
|
void removeLine(const QModelIndex &row);
|
||||||
void refresh(const QModelIndex &row,const QString &rml);
|
void refresh(const QModelIndex &row,const QString &rml);
|
||||||
|
@@ -736,13 +736,12 @@ void EditCart::lengthChangedData(unsigned len)
|
|||||||
|
|
||||||
void EditCart::okData()
|
void EditCart::okData()
|
||||||
{
|
{
|
||||||
// RDSystem *system;
|
|
||||||
QString sql;
|
QString sql;
|
||||||
RDSqlQuery *q;
|
RDSqlQuery *q;
|
||||||
|
|
||||||
if(rdcart_cart_numbers.size()==1) { // Single Edit
|
if(rdcart_cart_numbers.size()==1) { // Single Edit
|
||||||
if(rdcart_controls.title_edit->text().isEmpty()) {
|
if(rdcart_controls.title_edit->text().isEmpty()) {
|
||||||
QMessageBox::warning(this,tr("Missing Title"),
|
QMessageBox::warning(this,"RDLibrary - "+tr("Missing Title"),
|
||||||
tr("You must provide at least a Cart Title!"));
|
tr("You must provide at least a Cart Title!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -752,7 +751,7 @@ void EditCart::okData()
|
|||||||
QString::asprintf("(`NUMBER`!=%u)",rdcart_cart->number());
|
QString::asprintf("(`NUMBER`!=%u)",rdcart_cart->number());
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
if(q->first()) {
|
if(q->first()) {
|
||||||
QMessageBox::warning(this,tr("Duplicate Title"),
|
QMessageBox::warning(this,"RDLibrary - "+tr("Duplicate Title"),
|
||||||
tr("The cart title must be unique!"));
|
tr("The cart title must be unique!"));
|
||||||
delete q;
|
delete q;
|
||||||
return;
|
return;
|
||||||
@@ -761,7 +760,7 @@ void EditCart::okData()
|
|||||||
}
|
}
|
||||||
if(rdcart_controls.enforce_length_box->isChecked()) {
|
if(rdcart_controls.enforce_length_box->isChecked()) {
|
||||||
if(!ValidateLengths()) {
|
if(!ValidateLengths()) {
|
||||||
switch(QMessageBox::warning(this,tr("Length Mismatch"),
|
switch(QMessageBox::warning(this,"RDLibrary - "+tr("Length Mismatch"),
|
||||||
tr("One or more cut lengths exceed the timescaling\nlimits of the system! Do you still want to save?"),QMessageBox::Yes,QMessageBox::No)) {
|
tr("One or more cut lengths exceed the timescaling\nlimits of the system! Do you still want to save?"),QMessageBox::Yes,QMessageBox::No)) {
|
||||||
case QMessageBox::No:
|
case QMessageBox::No:
|
||||||
case QMessageBox::NoButton:
|
case QMessageBox::NoButton:
|
||||||
|
@@ -18,8 +18,6 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <qstring.h>
|
|
||||||
|
|
||||||
#include "cdripper.h"
|
#include "cdripper.h"
|
||||||
#include "edit_macro.h"
|
#include "edit_macro.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
@@ -300,8 +298,10 @@ void MacroCart::doubleClickedData(const QModelIndex &index)
|
|||||||
|
|
||||||
void MacroCart::UpdateLength()
|
void MacroCart::UpdateLength()
|
||||||
{
|
{
|
||||||
if(rdcart_events->length()!=rdcart_length) {
|
unsigned len=rdcart_macro_model->totalLength();
|
||||||
rdcart_length=rdcart_events->length();
|
|
||||||
emit lengthChanged(rdcart_length);
|
if(len!=rdcart_length) {
|
||||||
|
rdcart_length=len;
|
||||||
|
emit lengthChanged(len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,8 +21,8 @@
|
|||||||
#ifndef MACRO_CART_H
|
#ifndef MACRO_CART_H
|
||||||
#define MACRO_CART_H
|
#define MACRO_CART_H
|
||||||
|
|
||||||
#include <qcombobox.h>
|
#include <QComboBox>
|
||||||
#include <qpushbutton.h>
|
#include <QPushButton>
|
||||||
|
|
||||||
#include <rdmacro_event.h>
|
#include <rdmacro_event.h>
|
||||||
#include <rdmacrocartmodel.h>
|
#include <rdmacrocartmodel.h>
|
||||||
|
Reference in New Issue
Block a user