mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-20 06:58:01 +02:00
2021-03-20 Fred Gleason <fredg@paravelsystems.com>
* Added mouse wheel support to 'RDMarkerView'. * Added support for play cursor positioning by mouse to 'RDMarkerView'. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
edf06f2d2f
commit
c96955b767
@ -21297,3 +21297,7 @@
|
||||
the 'Fade Up' marker'.
|
||||
2021-03-20 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Got digital readouts working in 'RDMarkerPlayer'.
|
||||
2021-03-20 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Added mouse wheel support to 'RDMarkerView'.
|
||||
* Added support for play cursor positioning by mouse to
|
||||
'RDMarkerView'.
|
||||
|
@ -84,6 +84,8 @@ RDMarkerDialog::RDMarkerDialog(const QString &caption,int card,int port,
|
||||
connect(d_marker_view,
|
||||
SIGNAL(selectedMarkerChanged(RDMarkerHandle::PointerRole)),
|
||||
d_player,SLOT(setSelectedMarker(RDMarkerHandle::PointerRole)));
|
||||
connect(d_marker_view,SIGNAL(positionClicked(int)),
|
||||
d_player,SLOT(setPlayPosition(int)));
|
||||
|
||||
//
|
||||
// Marker Readouts
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include <QMouseEvent>
|
||||
#include <QPen>
|
||||
#include <QScrollBar>
|
||||
|
||||
#include "rdescape_string.h"
|
||||
#include "rdmarkerview.h"
|
||||
@ -584,6 +585,7 @@ void RDMarkerView::save()
|
||||
|
||||
void RDMarkerView::clear()
|
||||
{
|
||||
d_wheel_angle=0;
|
||||
if(d_scene!=NULL) {
|
||||
delete d_scene;
|
||||
d_scene=NULL;
|
||||
@ -878,39 +880,34 @@ void RDMarkerView::resizeEvent(QResizeEvent *e)
|
||||
|
||||
void RDMarkerView::mousePressEvent(QMouseEvent *e)
|
||||
{
|
||||
int origin=0;
|
||||
int msec=0;
|
||||
|
||||
if((e->x()<=LEFT_MARGIN)||(e->x()>d_right_margin)) {
|
||||
QWidget::mousePressEvent(e);
|
||||
return;
|
||||
}
|
||||
d_mouse_pos=e->x()-LEFT_MARGIN;
|
||||
|
||||
if(d_marker_menu_used) {
|
||||
d_marker_menu_used=false;
|
||||
return;
|
||||
}
|
||||
|
||||
switch(e->button()) {
|
||||
/*
|
||||
case Qt::LeftButton:
|
||||
left_button_pressed=true;
|
||||
if(edit_cue_point!=RDEditAudio::Play) {
|
||||
ignore_pause=true;
|
||||
PositionCursor(cursor);
|
||||
ignore_pause=false;
|
||||
}
|
||||
else {
|
||||
ignore_pause=true;
|
||||
rda->cae()->positionPlay(edit_handle,GetTime(cursor));
|
||||
ignore_pause=false;
|
||||
if(d_view->horizontalScrollBar()!=NULL) {
|
||||
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;
|
||||
|
||||
case Qt::MidButton:
|
||||
center_button_pressed=true;
|
||||
ignore_pause=true;
|
||||
rda->cae()->positionPlay(edit_handle,GetTime(cursor));
|
||||
ignore_pause=false;
|
||||
break;
|
||||
*/
|
||||
|
||||
case Qt::RightButton:
|
||||
if(d_marker_menu_used) {
|
||||
d_marker_menu_used=false;
|
||||
return;
|
||||
}
|
||||
d_deleting_roles.clear();
|
||||
|
||||
d_main_menu->setGeometry(e->globalX(),e->globalY(),
|
||||
@ -925,6 +922,26 @@ void RDMarkerView::mousePressEvent(QMouseEvent *e)
|
||||
}
|
||||
|
||||
|
||||
void RDMarkerView::wheelEvent(QWheelEvent *e)
|
||||
{
|
||||
d_wheel_angle+=e->angleDelta().y();
|
||||
// printf("Angle: %d\n",d_wheel_angle);
|
||||
|
||||
if(d_wheel_angle>=360) {
|
||||
if(shrinkFactor()>1) {
|
||||
setShrinkFactor(shrinkFactor()/2);
|
||||
}
|
||||
d_wheel_angle=0;
|
||||
}
|
||||
if(d_wheel_angle<=-360) {
|
||||
if(shrinkFactor()<d_max_shrink_factor) {
|
||||
setShrinkFactor(shrinkFactor()*2);
|
||||
}
|
||||
d_wheel_angle=0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int RDMarkerView::Frame(int msec) const
|
||||
{
|
||||
return (int)((int64_t)msec*(int64_t)d_sample_rate/(d_shrink_factor*1152000));
|
||||
|
@ -124,6 +124,7 @@ class RDMarkerView : public QWidget
|
||||
virtual void updateInterlocks();
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
void mousePressEvent(QMouseEvent *e);
|
||||
void wheelEvent(QWheelEvent *e);
|
||||
|
||||
private:
|
||||
int Frame(int msec) const;
|
||||
@ -167,6 +168,7 @@ class RDMarkerView : public QWidget
|
||||
QAction *d_delete_marker_action;
|
||||
bool d_marker_menu_used;
|
||||
RDMarkerHandle::PointerRole d_selected_marker;
|
||||
int d_wheel_angle;
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user