}
}
+void CustomTrackView::slotAlignPlayheadToMousePos()
+{
+ /* get curser point ref in screen coord */
+ QPoint ps = QCursor::pos();
+ /* get xPos in scene coord */
+ int mappedXPos = qMax((int)(mapToScene(mapFromGlobal(ps)).x() + 0.5), 0);
+ /* move playhead to new xPos*/
+ seekCursorPos(mappedXPos);
+}
// virtual
void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
{
int pos = event->x();
int mappedXPos = qMax((int)(mapToScene(event->pos()).x() + 0.5), 0);
-
double snappedPos = getSnapPointForPos(mappedXPos);
emit mousePosition(mappedXPos);
if (m_tool == RAZORTOOL) {
setCursor(m_razorCursor);
- //QGraphicsView::mouseMoveEvent(event);
- //return;
} else if (m_tool == SPACERTOOL) {
setCursor(m_spacerCursor);
- return;
}
QList<QGraphicsItem *> itemList = items(event->pos());
if (itemList.count() == 1 && itemList.at(0)->type() == GUIDEITEM) {
opMode = MOVEGUIDE;
+ setCursor(Qt::SplitHCursor);
} else for (int i = 0; i < itemList.count(); i++) {
- if (itemList.at(i)->type() == AVWIDGET || itemList.at(i)->type() == TRANSITIONWIDGET) {
- item = (QGraphicsRectItem*) itemList.at(i);
- break;
- }
- }
+ if (itemList.at(i)->type() == AVWIDGET || itemList.at(i)->type() == TRANSITIONWIDGET) {
+ item = (QGraphicsRectItem*) itemList.at(i);
+ break;
+ }
+ }
+
+ if (m_tool == SPACERTOOL) {
+ event->accept();
+ return;
+ }
if (item && event->buttons() == Qt::NoButton) {
AbstractClipItem *clip = static_cast <AbstractClipItem*>(item);
return;
} else if (opMode == MOVEGUIDE) {
m_moveOpMode = opMode;
- setCursor(Qt::SplitHCursor);
} else {
removeTipAnimation();
setCursor(Qt::ArrowCursor);
// No item under click
if (m_dragItem == NULL || m_tool == SPACERTOOL) {
resetSelectionGroup(false);
- setCursor(Qt::ArrowCursor);
m_scene->clearSelection();
//event->accept();
updateClipTypeActions(NULL);
}
m_operationMode = SPACER;
} else {
+ setCursor(Qt::ArrowCursor);
seekCursorPos((int)(mapToScene(event->x(), 0).x()));
}
QGraphicsView::mousePressEvent(event);
if (selected == false) {
m_dragItem = NULL;
}
- groupSelectedItems();
+ groupSelectedItems(QList <QGraphicsItem*>(), false, false, true);
if (m_dragItem) {
ClipItem *clip = static_cast <ClipItem *>(m_dragItem);
updateClipTypeActions(dragGroup == NULL ? clip : NULL);
void CustomTrackView::mouseReleaseEvent(QMouseEvent * event)
{
if (m_moveOpMode == SEEK) m_moveOpMode = NONE;
- if (m_moveOpMode == SCROLLTIMELINE) {
- m_moveOpMode = NONE;
+ if (m_operationMode == SCROLLTIMELINE) {
+ m_operationMode = NONE;
setDragMode(QGraphicsView::NoDrag);
QGraphicsView::mouseReleaseEvent(event);
return;
//clip->setSelected(true);
}
}
- groupSelectedItems(list, false, true);
+ groupSelectedItems(list, false, true, true);
setDocumentModified();
}
void CustomTrackView::setTool(PROJECTTOOL tool)
{
m_tool = tool;
+ switch (m_tool) {
+ case RAZORTOOL:
+ setCursor(m_razorCursor);
+ break;
+ case SPACERTOOL:
+ setCursor(m_spacerCursor);
+ break;
+ default:
+ unsetCursor();
+ }
}
void CustomTrackView::setScale(double scaleFactor, double verticalScale)
void CustomTrackView::slotSelectClipsInTrack()
{
QRectF rect(0, m_selectedTrack * m_tracksHeight + m_tracksHeight / 2, sceneRect().width(), m_tracksHeight / 2 - 1);
+ resetSelectionGroup();
QList<QGraphicsItem *> selection = m_scene->items(rect);
m_scene->clearSelection();
QList<QGraphicsItem *> list;
list.append(selection.at(i));
}
}
- resetSelectionGroup();
- groupSelectedItems(list);
+ groupSelectedItems(list, false, false, true);
}
void CustomTrackView::slotSelectAllClips()
{
m_scene->clearSelection();
resetSelectionGroup();
- QList<QGraphicsItem *> selection = m_scene->items();
- for (int i = 0; i < selection.count(); i++) {
- int type = selection.at(i)->type();
- if (type == AVWIDGET || type == TRANSITIONWIDGET || type == GROUPWIDGET) {
- selection.at(i)->setSelected(true);
- }
- }
- groupSelectedItems();
+ groupSelectedItems(m_scene->items(), false, false, true);
}
void CustomTrackView::selectClip(bool add, bool group, int track, int pos)
result.append(';');
}
}
- emit importKeyframes(type, result);
+ emit importKeyframes(type, result, ui.limit_keyframes->isChecked() ? ui.max_keyframes->value() : -1);
delete d;
}