2024-08-26 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in rdairplay(1) that caused the voice tracker to be
	left in an undefined state after attempting to load a locked log.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2024-08-26 10:12:57 -04:00
parent c2cc3cd51b
commit 4afb55452e
2 changed files with 17 additions and 26 deletions

View File

@ -24869,3 +24869,6 @@
* Removed extraneous debugging statements from 'lib/rdplay_deck.cpp'.
2024-08-25 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 4.3.0int4.
2024-08-26 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdairplay(1) that caused the voice tracker to be
left in an undefined state after attempting to load a locked log.

View File

@ -454,6 +454,20 @@ bool RDTrackerWidget::load(const QString &logname)
QString stationname;
QHostAddress addr;
//
// Attempt to get a log lock
//
d_log_lock=new RDLogLock(logname,rda->user(),rda->station(),this);
if(!d_log_lock->tryLock(&username,&stationname,&addr)) {
QMessageBox::warning(this,"RDLogEdit - "+tr("Log Locked"),
tr("Log already being edited by")+" "+
username+"@"+stationname+" ["+
addr.toString()+"].");
delete d_log_lock;
d_log_lock=NULL;
return false;
}
//
// Voicetrack Group
//
@ -465,32 +479,6 @@ bool RDTrackerWidget::load(const QString &logname)
d_log_model->setServiceName(d_log->service());
d_log_model->load(true);
//
// Log Data Structures
//
d_log_lock=new RDLogLock(d_log->name(),rda->user(),rda->station(),this);
if(!d_log_lock->tryLock(&username,&stationname,&addr)) {
QMessageBox::warning(this,"RDLogEdit - "+tr("Log Locked"),
tr("Log already being edited by")+" "+
username+"@"+stationname+" ["+
addr.toString()+"].");
delete d_log_lock;
d_log_lock=NULL;
delete d_group;
d_group=NULL;
delete d_svc;
d_svc=NULL;
delete d_log;
d_log=NULL;
d_tracks=0;
return false;
}
//
// Select first track
//