2022-03-25 Fred Gleason <fredg@paravelsystems.com>

* Reverted the following changes:
	2022-03-09 Fred Gleason <fredg@paravelsystems.com>
 	  * Fixed a regression in rdlogedit(1) that caused events from
	  previously viewed logs to be prepended to subsequent logs viewed
	  during the same session.
	2022-03-09 Fred Gleason <fredg@paravelsystems.com>
	  * Refactored the 'RDAddLog' dialog to allow for instance reuse.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2022-03-25 12:04:39 -04:00
parent 672bd74a7c
commit 2fbc9681b4
25 changed files with 132 additions and 128 deletions

View File

@ -22949,3 +22949,11 @@
'isci', 'recordingMbId' and 'releaseMbId' fields.
2022-03-25 Fred Gleason <fredg@paravelsystems.com>
* Added '--by-isci' and '--dump-isci-xref' options to rdimport(1).
2022-03-25 Fred Gleason <fredg@paravelsystems.com>
* Reverted the following changes:
2022-03-09 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdlogedit(1) that caused events from
previously viewed logs to be prepended to subsequent logs viewed
during the same session.
2022-03-09 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'RDAddLog' dialog to allow for instance reuse.

View File

@ -26,14 +26,16 @@
#include "rdidvalidator.h"
#include "rdadd_log.h"
RDAddLog::RDAddLog(RDLogFilter::FilterMode mode,const QString &caption,
RDAddLog::RDAddLog(QString *logname,QString *svcname,
RDLogFilter::FilterMode mode,const QString &caption,
QWidget *parent)
: RDDialog(parent)
{
QStringList services_list;
log_name=NULL;
log_svc=NULL;
log_filter_mode=mode;
QString sql;
RDSqlQuery *q;
log_name=logname;
log_svc=svcname;
//
// Fix the Window Size
@ -41,7 +43,7 @@ RDAddLog::RDAddLog(RDLogFilter::FilterMode mode,const QString &caption,
setMinimumSize(sizeHint());
setMinimumSize(sizeHint());
setWindowTitle(caption);
setWindowTitle(tr("Create Log"));
//
// Validator
@ -94,6 +96,33 @@ RDAddLog::RDAddLog(RDLogFilter::FilterMode mode,const QString &caption,
add_cancel_button->setFont(buttonFont());
add_cancel_button->setText(tr("Cancel"));
connect(add_cancel_button,SIGNAL(clicked()),this,SLOT(cancelData()));
//
// Populate Data
//
switch(mode) {
case RDLogFilter::NoFilter:
sql=QString("select `NAME` from `SERVICES` order by `NAME`");
break;
case RDLogFilter::UserFilter:
sql=QString("select `SERVICE_NAME` from `USER_SERVICE_PERMS` where ")+
"`USER_NAME`='"+RDEscapeString(rda->user()->name())+"' "+
"order by `SERVICE_NAME`";
break;
case RDLogFilter::StationFilter:
sql=QString("select `SERVICE_NAME` from `SERVICE_PERMS` where ")+
"`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"' "+
"order by `SERVICE_NAME`";
break;
}
q=new RDSqlQuery(sql);
while(q->next()) {
add_service_box->
insertItem(add_service_box->count(),q->value(0).toString());
}
add_name_edit->setText(*logname);
}
@ -115,44 +144,6 @@ QSizePolicy RDAddLog::sizePolicy() const
}
int RDAddLog::exec(QString *logname,QString *svcname)
{
QString sql;
RDSqlQuery *q;
log_name=logname;
log_svc=svcname;
switch(log_filter_mode) {
case RDLogFilter::NoFilter:
sql=QString("select `NAME` from `SERVICES` order by `NAME`");
break;
case RDLogFilter::UserFilter:
sql=QString("select `SERVICE_NAME` from `USER_SERVICE_PERMS` where ")+
"`USER_NAME`='"+RDEscapeString(rda->user()->name())+"' "+
"order by `SERVICE_NAME`";
break;
case RDLogFilter::StationFilter:
sql=QString("select `SERVICE_NAME` from `SERVICE_PERMS` where ")+
"`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"' "+
"order by `SERVICE_NAME`";
break;
}
q=new RDSqlQuery(sql);
add_service_box->clear();
while(q->next()) {
add_service_box->
insertItem(add_service_box->count(),q->value(0).toString());
if(q->value(0).toString()==*log_svc) {
add_service_box->setCurrentIndex(add_service_box->count()-1);
}
}
add_name_edit->setText(*logname);
return QDialog::exec();
}
void RDAddLog::okData()
{
if(add_service_box->currentText().isEmpty()){

View File

@ -36,15 +36,12 @@ class RDAddLog : public RDDialog
{
Q_OBJECT
public:
RDAddLog(RDLogFilter::FilterMode mode,const QString &caption,
QWidget *parent=0);
RDAddLog(QString *logname,QString *svcname,RDLogFilter::FilterMode mode,
const QString &caption,QWidget *parent=0);
~RDAddLog();
QSize sizeHint() const;
QSizePolicy sizePolicy() const;
public slots:
int exec(QString *logname,QString *svcname);
private slots:
void okData();
void cancelData();
@ -60,7 +57,6 @@ class RDAddLog : public RDDialog
QPushButton *add_cancel_button;
QString *log_name;
QString *log_svc;
RDLogFilter::FilterMode log_filter_mode;
};

View File

@ -1452,8 +1452,7 @@ unsigned RDFeed::postLog(const QString &logname,const QTime &start_time,
//
// Open Log
//
log_model=new RDLogModel(false,this);
log_model->setLogName(logname);
log_model=new RDLogModel(logname,false,this);
log_model->load();
if(!log_model->exists()) {
*err=RDFeed::ErrorNoLog;

View File

@ -465,9 +465,7 @@ int RDLog::removeTracks(RDStation *station,RDUser *user,RDConfig *config) const
RDLogModel *RDLog::createLogEvent() const
{
RDLogModel *model=new RDLogModel(false);
model->setLogName(name());
return model;
return new RDLogModel(name(),false);
}
@ -618,12 +616,6 @@ bool RDLog::remove(const QString &name,RDStation *station,RDUser *user,
}
bool RDLog::remove(const QString &name)
{
return RDLog::remove(name,rda->station(),rda->user(),rda->config());
}
int RDLog::GetIntValue(const QString &field) const
{
QString sql;

View File

@ -84,7 +84,6 @@ class RDLog
static bool exists(const QString &name);
static bool remove(const QString &name,RDStation *station,RDUser *user,
RDConfig *config);
static bool remove(const QString &name);
private:
int GetIntValue(const QString &field) const;

View File

@ -158,15 +158,6 @@ QString RDLogFilter::whereSql() const
}
QString RDLogFilter::currentServiceName() const
{
if(filter_service_box->currentText()==tr("ALL")) {
return QString();
}
return filter_service_box->currentText();
}
void RDLogFilter::changeUser()
{
if(filter_filter_mode==RDLogFilter::UserFilter) {

View File

@ -40,7 +40,6 @@ class RDLogFilter : public QWidget
QSize sizeHint() const;
QSizePolicy sizePolicy() const;
QString whereSql() const;
QString currentServiceName() const;
public slots:
void changeUser();

View File

@ -25,9 +25,10 @@
#include "rdlog_line.h"
#include "rdlogmodel.h"
RDLogModel::RDLogModel(bool read_only,QObject *parent)
RDLogModel::RDLogModel(const QString &logname,bool read_only,QObject *parent)
: QAbstractTableModel(parent)
{
d_log_name=logname;
d_read_only=read_only;
MakeModel();
@ -246,8 +247,6 @@ QString RDLogModel::logName() const
void RDLogModel::setLogName(QString logname)
{
clear();
printf("RDLogModel::setLogName(%s)\n",logname.toUtf8().constData());
RDLog *log=new RDLog(logname);
d_log_name=log->name(); // So we normalize the case
delete log;
@ -353,7 +352,6 @@ int RDLogModel::append(const QString &logname,bool track_ptrs)
void RDLogModel::clear()
{
printf("RDLogModel::clear()\n");
if(d_log_lines.size()>0) {
beginResetModel();
for(int i=0;i<d_log_lines.size();i++) {

View File

@ -35,7 +35,7 @@ class RDLogModel : public QAbstractTableModel
Q_OBJECT
public:
enum StartTimeStyle {Estimated=0,Scheduled=1};
RDLogModel(bool read_only,QObject *parent=0);
RDLogModel(const QString &logname,bool read_only,QObject *parent=0);
RDLogModel(QObject *parent=0);
~RDLogModel();
QPalette palette();

View File

@ -1008,10 +1008,8 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date,
//
// Iterate Through the Log
//
src_model=new RDLogModel(true,this);
src_model->setLogName(logname);
dst_model=new RDLogModel(true,this);
dst_model->setLogName(logname);
src_model=new RDLogModel(logname,true,this);
dst_model=new RDLogModel(logname,true,this);
src_model->load();
for(int i=0;i<src_model->lineCount();i++) {
logline=src_model->logLine(i);
@ -1165,10 +1163,8 @@ bool RDSvc::clearLogLinks(RDSvc::ImportSource src,const QString &logname,
break;
}
RDLogModel *src_model=new RDLogModel(false,this);
src_model->setLogName(logname);
RDLogModel *dst_model=new RDLogModel(false,this);
dst_model->setLogName(logname);
RDLogModel *src_model=new RDLogModel(logname,false,this);
RDLogModel *dst_model=new RDLogModel(logname,false,this);
src_model->load();
RDLogLine *logline=NULL;
for(int i=0;i<src_model->lineCount();i++) {
@ -1814,8 +1810,7 @@ bool RDSvc::ResolveInlineEvents(const QString &logname,QString *err_msg)
switch(subEventInheritance()) {
case RDSvc::ParentEvent:
model=new RDLogModel(false,this);
model->setLogName(logname);
model=new RDLogModel(logname,false,this);
model->load();
ok=true;
for(int i=0;i<model->lineCount();i++) {

View File

@ -38,9 +38,6 @@ ListLogs::ListLogs(RDLogPlay *log,QWidget *parent)
list_log=log;
setWindowTitle("RDAirPlay - "+tr("Select Log"));
list_addlog_dialog=new RDAddLog(RDLogFilter::StationFilter,
"RDAirPlay - "+tr("Rename Log"),this);
//
// Filter Widget
//
@ -184,7 +181,11 @@ void ListLogs::saveAsButtonData()
{
QString logname;
QString svcname=*list_svcname;
if(list_addlog_dialog->exec(&logname,&svcname)<0) {
RDAddLog *log;
log=new RDAddLog(&logname,&svcname,RDLogFilter::StationFilter,
tr("Rename Log"),this);
if(log->exec()<0) {
delete log;
return;
}
*list_logname=logname;

View File

@ -23,7 +23,6 @@
#include <QPushButton>
#include <rdadd_log.h>
#include <rddialog.h>
#include <rdlogfilter.h>
#include <rdloglistmodel.h>
@ -71,7 +70,6 @@ class ListLogs : public RDDialog
QPushButton *list_cancel_button;
RDLogPlay *list_log;
RDLogLock **list_log_lock;
RDAddLog *list_addlog_dialog;
};

View File

@ -247,8 +247,7 @@ void ListCasts::addLogData()
RDListLogs *lld=
new RDListLogs(&logname,RDLogFilter::UserFilter,"RDCastManager",this);
if(lld->exec()) {
RDLogModel *model=new RDLogModel(true,this);
model->setLogName(logname);
RDLogModel *model=new RDLogModel(logname,true,this);
model->load();
QTime start_time;
bool ignore_stops=true;
@ -399,6 +398,12 @@ void ListCasts::userChangedData()
}
void ListCasts::filterChangedData(const QString &str)
{
// RefreshList();
}
void ListCasts::modelResetData()
{
list_casts_view->resizeColumnsToContents();

View File

@ -50,6 +50,7 @@ class ListCasts : public RDDialog
void deleteData();
void doubleClickedData(const QModelIndex &index);
void userChangedData();
void filterChangedData(const QString &str);
void modelResetData();
void rowsInsertedData(const QModelIndex &parent,int start,int end);
void postProgressChangedData(int step);

View File

@ -978,8 +978,9 @@ void EditLog::saveasData()
QString err_msg;
if(rda->user()->createLog()) {
log=new RDAddLog(RDLogFilter::UserFilter,"RDLogEdit",this);
if(log->exec(&logname,&svcname)<0) {
log=new RDAddLog(&logname,&svcname,RDLogFilter::UserFilter,
tr("Add Log"),this);
if(log->exec()<0) {
return;
}
if(!RDLog::create(logname,svcname,QDate(),rda->ripc()->user(),&err_msg,
@ -1070,8 +1071,6 @@ void EditLog::okData()
void EditLog::cancelData()
{
bool ret=false;
if(edit_changed) {
switch(QMessageBox::question(this,
tr("RDLogEdit"),
@ -1085,7 +1084,6 @@ void EditLog::cancelData()
return;
}
SaveLog();
ret=true;
break;
case QMessageBox::Cancel:
@ -1100,7 +1098,7 @@ void EditLog::cancelData()
}
delete edit_log_lock;
edit_log_lock=NULL;
done(ret);
done(false);
}

View File

@ -20,6 +20,13 @@
#include "logmodel.h"
LogModel::LogModel(const QString &logname,QObject *parent)
: RDLogModel(logname,false,parent)
{
d_group_list=new RDGroupList();
}
LogModel::LogModel(QObject *parent)
: RDLogModel(parent)
{

View File

@ -28,6 +28,7 @@ class LogModel : public RDLogModel
{
Q_OBJECT
public:
LogModel(const QString &logname,QObject *parent=0);
LogModel(QObject *parent=0);
~LogModel();
QString serviceName() const;

View File

@ -22,6 +22,7 @@
#include <QMessageBox>
#include <QTranslator>
#include <rdadd_log.h>
#include <rdconf.h>
#include <rdescape_string.h>
#include <rdprofile.h>
@ -104,6 +105,8 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent)
//
log_filter_widget=
new RDLogFilter(RDLogFilter::UserFilter,this);
connect(log_filter_widget,SIGNAL(filterChanged(const QString &)),
this,SLOT(filterChangedData(const QString &)));
//
// Dialogs
@ -112,8 +115,6 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent)
new EditLog(&log_filter,&log_group,&log_schedcode,&log_clipboard,this);
log_tracker_dialog=new VoiceTracker(&log_import_path,this);
log_addlog_dialog=
new RDAddLog(RDLogFilter::UserFilter,"RDLogEdit - "+tr("Add Log"),this);
//
// Log List
@ -228,6 +229,7 @@ void MainWidget::userData()
log_filter_widget->changeUser();
log_log_model->setFilterSql(log_filter_widget->whereSql());
log_log_view->resizeColumnsToContents();
// RefreshList();
//
// Set Control Perms
@ -238,17 +240,28 @@ void MainWidget::userData()
}
void MainWidget::recentData(bool state)
{
// RefreshList();
}
void MainWidget::addData()
{
QString logname;
QString svcname=log_filter_widget->currentServiceName();
QString svcname;
QStringList newlogs;
RDAddLog *log;
QModelIndex row;
if(rda->user()->createLog()) {
if(log_addlog_dialog->exec(&logname,&svcname)!=0) {
log=new RDAddLog(&logname,&svcname,RDLogFilter::UserFilter,
tr("Add Log"),this);
if(log->exec()!=0) {
delete log;
return;
}
delete log;
QString username(rda->ripc()->user());
QString err_msg;
if(!RDLog::create(logname,svcname,QDate(),username,&err_msg,
@ -257,14 +270,10 @@ void MainWidget::addData()
return;
}
LockList();
if(log_edit_dialog->exec(logname,&newlogs)) {
SendNotification(RDNotification::AddAction,logname);
row=log_log_model->addLog(logname);
log_log_view->selectRow(row.row());
}
else {
RDLog::remove(logname);
}
SendNotification(RDNotification::AddAction,logname);
log_edit_dialog->exec(logname,&newlogs);
row=log_log_model->addLog(logname);
log_log_view->selectRow(row.row());
UnlockList();
}
}
@ -415,6 +424,23 @@ void MainWidget::trackData()
UnlockList();
}
/*
void MainWidget::trackData()
{
QModelIndex row=SingleSelectedRow();
if(!row.isValid()) {
return;
}
LockList();
VoiceTracker *dialog=
new VoiceTracker(log_log_model->logName(row),&log_import_path);
dialog->exec();
delete dialog;
log_log_model->refresh(row);
UnlockList();
}
*/
void MainWidget::reportData()
{
@ -538,6 +564,12 @@ void MainWidget::reportData()
}
void MainWidget::filterChangedData(const QString &str)
{
// RefreshList();
}
void MainWidget::selectionChangedData(const QItemSelection &selected,
const QItemSelection &deselected)
{

View File

@ -23,7 +23,6 @@
#include <QList>
#include <rdadd_log.h>
#include <rdlog_line.h>
#include <rdlogfilter.h>
#include <rdloglistmodel.h>
@ -51,11 +50,13 @@ class MainWidget : public RDMainWindow
private slots:
void caeConnectedData(bool state);
void userData();
void recentData(bool state);
void addData();
void editData();
void deleteData();
void trackData();
void reportData();
void filterChangedData(const QString &str);
void selectionChangedData(const QItemSelection &selected,
const QItemSelection &deselected);
void doubleClickedData(const QModelIndex &index);
@ -93,7 +94,6 @@ class MainWidget : public RDMainWindow
QStringList log_deleted_logs;
EditLog *log_edit_dialog;
VoiceTracker *log_tracker_dialog;
RDAddLog *log_addlog_dialog;
};

View File

@ -329,8 +329,7 @@ void GenerateLog::createData()
//
// Generate Exception Report
//
RDLogModel *model=new RDLogModel(false,this);
model->setLogName(logname);
RDLogModel *model=new RDLogModel(logname,false,this);
model->load();
if((model->validate(&report,gen_date_edit->date())==0)&&
unused_report.isEmpty()) {

View File

@ -107,8 +107,7 @@ void LogObject::userData()
//
// Generate Exception Report
//
RDLogModel *model=new RDLogModel(false,this);
model->setLogName(logname);
RDLogModel *model=new RDLogModel(logname,false,this);
model->load();
if((model->validate(&report,start_date)!=0)||
(!unused_report.isEmpty())) {

View File

@ -250,8 +250,7 @@ void MainObject::Load(QString logname)
edit_log=new RDLog(logname);
if(edit_log->exists()) {
edit_log_model=new RDLogModel(false,this);
edit_log_model->setLogName(logname);
edit_log_model=new RDLogModel(logname,false,this);
edit_log_model->load();
edit_description=edit_log->description();
edit_service=edit_log->service();
@ -363,8 +362,7 @@ void MainObject::New(const QString &logname)
}
edit_log=new RDLog(logname);
if(!edit_log->exists()) {
edit_log_model=new RDLogModel(false,this);
edit_log_model->setLogName(logname);
edit_log_model=new RDLogModel(logname,false,this);
edit_description=logname+" log";
sql=QString("select `NAME` from `SERVICES`");
q=new RDSqlQuery(sql);

View File

@ -287,8 +287,7 @@ void MainObject::userData()
fprintf(stderr,"rdrender: no such log\n");
exit(1);
}
RDLogModel *log_model=new RDLogModel(false,this);
log_model->setLogName(render_logname);
RDLogModel *log_model=new RDLogModel(render_logname,false,this);
log_model->load();
//

View File

@ -292,9 +292,7 @@ void Xport::SaveLog()
//
// Logline Data
//
// RDLogModel *logmodel=new RDLogModel(log_name,false,this);
RDLogModel *logmodel=new RDLogModel(false,this);
logmodel->setLogName(log_name);
RDLogModel *logmodel=new RDLogModel(log_name,false,this);
for(int i=0;i<line_quantity;i++) {
logmodel->insert(i,1);
RDLogLine *ll=logmodel->logLine(i);