mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-20 23:03:04 +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'.
|
the 'Fade Up' marker'.
|
||||||
2021-03-20 Fred Gleason <fredg@paravelsystems.com>
|
2021-03-20 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Got digital readouts working in 'RDMarkerPlayer'.
|
* 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,
|
connect(d_marker_view,
|
||||||
SIGNAL(selectedMarkerChanged(RDMarkerHandle::PointerRole)),
|
SIGNAL(selectedMarkerChanged(RDMarkerHandle::PointerRole)),
|
||||||
d_player,SLOT(setSelectedMarker(RDMarkerHandle::PointerRole)));
|
d_player,SLOT(setSelectedMarker(RDMarkerHandle::PointerRole)));
|
||||||
|
connect(d_marker_view,SIGNAL(positionClicked(int)),
|
||||||
|
d_player,SLOT(setPlayPosition(int)));
|
||||||
|
|
||||||
//
|
//
|
||||||
// Marker Readouts
|
// Marker Readouts
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <QGraphicsSceneMouseEvent>
|
#include <QGraphicsSceneMouseEvent>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QPen>
|
#include <QPen>
|
||||||
|
#include <QScrollBar>
|
||||||
|
|
||||||
#include "rdescape_string.h"
|
#include "rdescape_string.h"
|
||||||
#include "rdmarkerview.h"
|
#include "rdmarkerview.h"
|
||||||
@ -584,6 +585,7 @@ void RDMarkerView::save()
|
|||||||
|
|
||||||
void RDMarkerView::clear()
|
void RDMarkerView::clear()
|
||||||
{
|
{
|
||||||
|
d_wheel_angle=0;
|
||||||
if(d_scene!=NULL) {
|
if(d_scene!=NULL) {
|
||||||
delete d_scene;
|
delete d_scene;
|
||||||
d_scene=NULL;
|
d_scene=NULL;
|
||||||
@ -878,39 +880,34 @@ void RDMarkerView::resizeEvent(QResizeEvent *e)
|
|||||||
|
|
||||||
void RDMarkerView::mousePressEvent(QMouseEvent *e)
|
void RDMarkerView::mousePressEvent(QMouseEvent *e)
|
||||||
{
|
{
|
||||||
|
int origin=0;
|
||||||
|
int msec=0;
|
||||||
|
|
||||||
if((e->x()<=LEFT_MARGIN)||(e->x()>d_right_margin)) {
|
if((e->x()<=LEFT_MARGIN)||(e->x()>d_right_margin)) {
|
||||||
QWidget::mousePressEvent(e);
|
QWidget::mousePressEvent(e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
d_mouse_pos=e->x()-LEFT_MARGIN;
|
d_mouse_pos=e->x()-LEFT_MARGIN;
|
||||||
|
|
||||||
|
if(d_marker_menu_used) {
|
||||||
|
d_marker_menu_used=false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch(e->button()) {
|
switch(e->button()) {
|
||||||
/*
|
|
||||||
case Qt::LeftButton:
|
case Qt::LeftButton:
|
||||||
left_button_pressed=true;
|
if(d_view->horizontalScrollBar()!=NULL) {
|
||||||
if(edit_cue_point!=RDEditAudio::Play) {
|
origin=d_view->horizontalScrollBar()->value();
|
||||||
ignore_pause=true;
|
|
||||||
PositionCursor(cursor);
|
|
||||||
ignore_pause=false;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ignore_pause=true;
|
|
||||||
rda->cae()->positionPlay(edit_handle,GetTime(cursor));
|
|
||||||
ignore_pause=false;
|
|
||||||
}
|
}
|
||||||
|
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:
|
||||||
center_button_pressed=true;
|
|
||||||
ignore_pause=true;
|
|
||||||
rda->cae()->positionPlay(edit_handle,GetTime(cursor));
|
|
||||||
ignore_pause=false;
|
|
||||||
break;
|
break;
|
||||||
*/
|
|
||||||
case Qt::RightButton:
|
case Qt::RightButton:
|
||||||
if(d_marker_menu_used) {
|
|
||||||
d_marker_menu_used=false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
d_deleting_roles.clear();
|
d_deleting_roles.clear();
|
||||||
|
|
||||||
d_main_menu->setGeometry(e->globalX(),e->globalY(),
|
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
|
int RDMarkerView::Frame(int msec) const
|
||||||
{
|
{
|
||||||
return (int)((int64_t)msec*(int64_t)d_sample_rate/(d_shrink_factor*1152000));
|
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();
|
virtual void updateInterlocks();
|
||||||
void resizeEvent(QResizeEvent *e);
|
void resizeEvent(QResizeEvent *e);
|
||||||
void mousePressEvent(QMouseEvent *e);
|
void mousePressEvent(QMouseEvent *e);
|
||||||
|
void wheelEvent(QWheelEvent *e);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int Frame(int msec) const;
|
int Frame(int msec) const;
|
||||||
@ -167,6 +168,7 @@ class RDMarkerView : public QWidget
|
|||||||
QAction *d_delete_marker_action;
|
QAction *d_delete_marker_action;
|
||||||
bool d_marker_menu_used;
|
bool d_marker_menu_used;
|
||||||
RDMarkerHandle::PointerRole d_selected_marker;
|
RDMarkerHandle::PointerRole d_selected_marker;
|
||||||
|
int d_wheel_angle;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user