2021-10-27 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in the 'Edit Audio' dialog in rdlibrary(1) that
	would set the initial position of a newly-added marker off-screen
	when the waveform view port was scrolled to the right.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2021-10-27 17:26:47 -04:00
parent 0ae01975b9
commit ca60833fed
3 changed files with 23 additions and 19 deletions

View File

@ -22558,3 +22558,7 @@
2021-10-27 Fred Gleason <fredg@paravelsystems.com> 2021-10-27 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'Add Clock' dialog in rdlogmanager(1) to allow * Refactored the 'Add Clock' dialog in rdlogmanager(1) to allow
specification of the clock code as well as name. specification of the clock code as well as name.
2021-10-27 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the 'Edit Audio' dialog in rdlibrary(1) that
would set the initial position of a newly-added marker off-screen
when the waveform view port was scrolled to the right.

View File

@ -812,8 +812,8 @@ void RDMarkerView::updateMenuData()
{ {
bool can_add= bool can_add=
(d_deleting_roles.size()==0)&& (d_deleting_roles.size()==0)&&
(Msec(d_mouse_pos)>=d_pointers[RDMarkerHandle::CutStart])&& (d_msec_pos>=d_pointers[RDMarkerHandle::CutStart])&&
(Msec(d_mouse_pos)<d_pointers[RDMarkerHandle::CutEnd]); (d_msec_pos<d_pointers[RDMarkerHandle::CutEnd]);
bool can_delete= bool can_delete=
d_marker_menu_used&& d_marker_menu_used&&
(!d_deleting_roles.contains(RDMarkerHandle::CutStart))&& (!d_deleting_roles.contains(RDMarkerHandle::CutStart))&&
@ -839,8 +839,8 @@ void RDMarkerView::updateMenuData()
void RDMarkerView::addTalkData() void RDMarkerView::addTalkData()
{ {
d_pointers[RDMarkerHandle::TalkStart]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::TalkStart]=d_msec_pos;
d_pointers[RDMarkerHandle::TalkEnd]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::TalkEnd]=d_msec_pos;
DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::TalkStart,60); DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::TalkStart,60);
DrawMarker(RDMarkerHandle::End,RDMarkerHandle::TalkEnd,60); DrawMarker(RDMarkerHandle::End,RDMarkerHandle::TalkEnd,60);
@ -857,8 +857,8 @@ void RDMarkerView::addTalkData()
void RDMarkerView::addSegueData() void RDMarkerView::addSegueData()
{ {
d_pointers[RDMarkerHandle::SegueStart]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::SegueStart]=d_msec_pos;;
d_pointers[RDMarkerHandle::SegueEnd]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::SegueEnd]=d_msec_pos;
DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::SegueStart,40); DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::SegueStart,40);
DrawMarker(RDMarkerHandle::End,RDMarkerHandle::SegueEnd,40); DrawMarker(RDMarkerHandle::End,RDMarkerHandle::SegueEnd,40);
@ -875,8 +875,8 @@ void RDMarkerView::addSegueData()
void RDMarkerView::addHookData() void RDMarkerView::addHookData()
{ {
d_pointers[RDMarkerHandle::HookStart]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::HookStart]=d_msec_pos;
d_pointers[RDMarkerHandle::HookEnd]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::HookEnd]=d_msec_pos;
DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::HookStart,100); DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::HookStart,100);
DrawMarker(RDMarkerHandle::End,RDMarkerHandle::HookEnd,100); DrawMarker(RDMarkerHandle::End,RDMarkerHandle::HookEnd,100);
@ -893,7 +893,7 @@ void RDMarkerView::addHookData()
void RDMarkerView::addFadeupData() void RDMarkerView::addFadeupData()
{ {
d_pointers[RDMarkerHandle::FadeUp]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::FadeUp]=d_msec_pos;
DrawMarker(RDMarkerHandle::End,RDMarkerHandle::FadeUp,80); DrawMarker(RDMarkerHandle::End,RDMarkerHandle::FadeUp,80);
InterlockFadeMarkerPair(); InterlockFadeMarkerPair();
@ -907,7 +907,7 @@ void RDMarkerView::addFadeupData()
void RDMarkerView::addFadedownData() void RDMarkerView::addFadedownData()
{ {
d_pointers[RDMarkerHandle::FadeDown]=Msec(d_mouse_pos); d_pointers[RDMarkerHandle::FadeDown]=d_msec_pos;
DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::FadeDown,80); DrawMarker(RDMarkerHandle::Start,RDMarkerHandle::FadeDown,80);
InterlockFadeMarkerPair(); InterlockFadeMarkerPair();
@ -1081,9 +1081,11 @@ void RDMarkerView::resizeEvent(QResizeEvent *e)
void RDMarkerView::mousePressEvent(QMouseEvent *e) void RDMarkerView::mousePressEvent(QMouseEvent *e)
{ {
int origin=0; int origin=0;
int msec=0;
if((e->x()<=LEFT_MARGIN)||(e->x()>d_right_margin)) { if(d_view->horizontalScrollBar()!=NULL) {
origin=d_view->horizontalScrollBar()->value();
}
if((e->x()<=LEFT_MARGIN)||((e->x()+origin)>d_right_margin)) {
QWidget::mousePressEvent(e); QWidget::mousePressEvent(e);
return; return;
} }
@ -1093,15 +1095,12 @@ void RDMarkerView::mousePressEvent(QMouseEvent *e)
d_marker_menu_used=false; d_marker_menu_used=false;
return; return;
} }
d_msec_pos=(int64_t)(d_mouse_pos+origin)*(int64_t)d_shrink_factor*1152000/
(int64_t)d_sample_rate;
switch(e->button()) { switch(e->button()) {
case Qt::LeftButton: case Qt::LeftButton:
if(d_view->horizontalScrollBar()!=NULL) { emit positionClicked(d_msec_pos);
origin=d_view->horizontalScrollBar()->value();
}
msec=(int64_t)(d_mouse_pos+origin)*(int64_t)d_shrink_factor*1152000/
(int64_t)d_sample_rate;
emit positionClicked(msec);
break; break;
case Qt::MidButton: case Qt::MidButton:

View File

@ -171,6 +171,7 @@ class RDMarkerView : public RDWidget
unsigned d_channels; unsigned d_channels;
int d_audio_length; int d_audio_length;
int d_mouse_pos; int d_mouse_pos;
int d_msec_pos;
int d_right_margin; int d_right_margin;
QStringList d_pointer_fields; QStringList d_pointer_fields;
RDWaveFactory *d_wave_factory; RDWaveFactory *d_wave_factory;