[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdenlive] src: Merge branch '16.12'
From: Jean-Baptiste Mardelle <null () kde ! org>
Date: 2016-12-11 17:56:10
Message-ID: E1cG8M6-00075A-J7 () code ! kde ! org
[Download RAW message or body]
Git commit 55af0d719fdd118da5fceecb25df5207f397baee by Jean-Baptiste Mardelle.
Committed on 11/12/2016 at 17:56.
Pushed by mardelle into branch 'master'.
Merge branch '16.12'
M +34 -30 src/effectstack/graphicsscenerectmove.cpp
M +1 -0 src/effectstack/graphicsscenerectmove.h
M +31 -25 src/monitor/glwidget.cpp
M +2 -0 src/monitor/glwidget.h
M +12 -0 src/monitor/monitor.cpp
M +2 -0 src/monitor/monitor.h
https://commits.kde.org/kdenlive/55af0d719fdd118da5fceecb25df5207f397baee
diff --cc src/effectstack/graphicsscenerectmove.cpp
index f08a0363d,c5edb6f4a..d05eb5787
--- a/src/effectstack/graphicsscenerectmove.cpp
+++ b/src/effectstack/graphicsscenerectmove.cpp
@@@ -597,13 -576,10 +598,12 @@@ void GraphicsSceneRectMove::mouseDouble
void GraphicsSceneRectMove::mouseReleaseEvent(QGraphicsSceneMouseEvent *e)
{
- if (m_tool == TITLE_RECTANGLE && m_selectedItem) \
setSelectedItem(m_selectedItem); + if (m_tool == TITLE_RECTANGLE && \
m_selectedItem) { + setSelectedItem(m_selectedItem);
+ }
- QGraphicsScene::mouseReleaseEvent(e);
if (m_createdText) {
m_selectedItem->setSelected(true);
- MyTextItem *newText = static_cast<MyTextItem*>(m_selectedItem);
+ MyTextItem *newText = static_cast<MyTextItem *>(m_selectedItem);
QTextCursor cur(newText->document());
cur.select(QTextCursor::Document);
newText->setTextCursor(cur);
@@@ -619,15 -604,28 +628,28 @@@ void GraphicsSceneRectMove::mousePressE
m_moveStarted = false;
m_clickPoint = e->scenePos();
m_resizeMode = m_possibleAction;
- const QList <QGraphicsItem *> list = items(e->scenePos());
- QGraphicsItem *item = NULL;
+ const QList<QGraphicsItem *> list = items(e->scenePos());
+ QGraphicsItem *item = Q_NULLPTR;
- if (e->modifiers() != Qt::ControlModifier) {
- clearSelection();
- }
-
if (m_tool == TITLE_SELECT) {
- foreach (QGraphicsItem *g, list) {
- //qCDebug(KDENLIVE_LOG) << " - - CHECKING ITEM Z:" << g->zValue() << ", \
TYPE: " << g->type(); + QList<QGraphicsView*> viewlist = views();
+ if (e->modifiers() & Qt::ControlModifier) {
+ m_selectedItem = NULL;
+ clearSelection();
+ if (!viewlist.isEmpty()) {
+ viewlist.first()->setDragMode(QGraphicsView::ScrollHandDrag);
+ e->ignore();
+ //QGraphicsScene::mousePressEvent(e);
+ return;
+ }
+ } else {
+ if (!viewlist.isEmpty()) {
+ viewlist.first()->setRubberBandSelectionMode(Qt::IntersectsItemShape);
+ }
+ }
+ QList<QGraphicsItem *> selected = selectedItems();
+ bool alreadySelected = false;
+ foreach(QGraphicsItem *g, list) {
+ //qDebug() << " - - CHECKING ITEM Z:" << g->zValue() << ", TYPE: " << \
g->type(); // check is there is a selected item in list
if (!(g->flags() & QGraphicsItem::ItemIsSelectable)) {
continue;
@@@ -638,29 -637,12 +661,12 @@@
break;
}
}
- if (item == Q_NULLPTR || m_selectedItem != item) {
- if (m_selectedItem && m_selectedItem->type() == \
QGraphicsTextItem::Type) {
- // disable text editing
- MyTextItem *t = static_cast<MyTextItem *>(m_selectedItem);
- t->textCursor().setPosition(0);
- QTextBlock cur = t->textCursor().block();
- t->setTextCursor(QTextCursor(cur));
- t->setTextInteractionFlags(Qt::NoTextInteraction);
- }
- }
- if (item == Q_NULLPTR || !(item->flags() & \
QGraphicsItem::ItemIsSelectable)) {
- m_selectedItem = Q_NULLPTR;
- foreach (QGraphicsItem *g, list) {
- if (g->zValue() > -1000) {
- item = g;
- break;
- }
- }
- }
- if (item != Q_NULLPTR && item->flags() & QGraphicsItem::ItemIsMovable) {
- if (item == NULL || (e->modifiers() != Qt::ShiftModifier && \
!alreadySelected)) { ++ if (item == Q_NULLPTR || (e->modifiers() != \
Qt::ShiftModifier && !alreadySelected)) { + clearTextSelection();
+ } else if (item && item->flags() & QGraphicsItem::ItemIsMovable) {
m_sceneClickPoint = e->scenePos();
m_selectedItem = item;
- //qDebug() << "///////// ITEM TYPE: " << item->type();
+ //qCDebug(KDENLIVE_LOG) << "///////// ITEM TYPE: " << item->type();
if (item->type() == QGraphicsTextItem::Type) {
MyTextItem *t = static_cast<MyTextItem *>(item);
if (t->textInteractionFlags() == Qt::TextEditorInteraction) {
@@@ -723,8 -704,7 +729,7 @@@
m_selectedItem->setSelected(true);
m_createdText = true;
}
- //qDebug() << "////// MOUSE CLICK, RESIZE MODE: " << m_resizeMode;
+ //qCDebug(KDENLIVE_LOG) << "////// MOUSE CLICK, RESIZE MODE: " << \
m_resizeMode;
-
}
void GraphicsSceneRectMove::clearTextSelection()
diff --cc src/monitor/glwidget.cpp
index 9c5ee73c2,a42e7d189..b00ea6b28
--- a/src/monitor/glwidget.cpp
+++ b/src/monitor/glwidget.cpp
@@@ -567,14 -569,12 +567,11 @@@ void GLWidget::wheelEvent(QWheelEvent *
event->accept();
}
-
-void GLWidget::mousePressEvent(QMouseEvent* event)
+void GLWidget::mousePressEvent(QMouseEvent *event)
{
- QQuickView::mousePressEvent(event);
- if (event->isAccepted()) {
- return;
- }
- if (rootObject() && rootObject()->objectName() != QLatin1String("root")) {
+ if (rootObject() && rootObject()->objectName() != QLatin1String("root") && \
!(event->modifiers() & Qt::ControlModifier)) { event->ignore();
+ QQuickView::mousePressEvent(event);
return;
}
if (event->button() & Qt::LeftButton) {
@@@ -583,35 -591,37 +588,37 @@@
emit showContextMenu(event->globalPos());
event->accept();
}
+ QQuickView::mousePressEvent(event);
}
-void GLWidget::mouseMoveEvent(QMouseEvent* event)
+void GLWidget::mouseMoveEvent(QMouseEvent *event)
{
- QQuickView::mouseMoveEvent(event);
- if (event->isAccepted()) {
- return;
- }
- if (rootObject() && rootObject()->objectName() != QLatin1String("root")) {
+ if (rootObject() && rootObject()->objectName() != QLatin1String("root") && \
!(event->modifiers() & Qt::ControlModifier)) { event->ignore();
+ QQuickView::mouseMoveEvent(event);
return;
}
- if (event->isAccepted()) {
+ /* if (event->modifiers() == Qt::ShiftModifier && m_producer) {
+ emit seekTo(m_producer->get_length() * event->x() / width());
return;
- }
- /* if (event->modifiers() == Qt::ShiftModifier && m_producer) {
- emit seekTo(m_producer->get_length() * event->x() / width());
- return;
- }*/
+ }*/
if (!(event->buttons() & Qt::LeftButton)) {
+ QQuickView::mouseMoveEvent(event);
return;
}
- if (!m_dragStart.isNull() && (event->pos() - m_dragStart).manhattanLength() >= \
QApplication::startDragDistance()) { + if (!m_dragStart.isNull() && (event->pos() \
- m_dragStart).manhattanLength() >= QApplication::startDragDistance()) { m_dragStart \
= QPoint(); emit startDrag();
}
+ if (!m_panStart.isNull()) {
+ emit panView(m_panStart - event->pos());
+ m_panStart = event->pos();
+ event->accept();
+ }
+ QQuickView::mouseMoveEvent(event);
}
-void GLWidget::keyPressEvent(QKeyEvent* event)
+void GLWidget::keyPressEvent(QKeyEvent *event)
{
QQuickView::keyPressEvent(event);
if (!event->isAccepted()) {
@@@ -1143,28 -1129,25 +1150,27 @@@ void GLWidget::onFrameDisplayed(const S
update();
}
-void GLWidget::mouseReleaseEvent(QMouseEvent * event)
+void GLWidget::mouseReleaseEvent(QMouseEvent *event)
{
QQuickView::mouseReleaseEvent(event);
- if (m_dragStart.isNull() || event->isAccepted()) {
- // we are dragging
- return;
- }
- if (rootObject() && rootObject()->objectName() != QLatin1String("root")) {
+ if (m_dragStart.isNull() && m_panStart.isNull() && rootObject() && \
rootObject()->objectName() != QLatin1String("root") && !(event->modifiers() & \
Qt::ControlModifier)) { + event->ignore();
return;
}
- m_dragStart = QPoint();
- if (event->button() != Qt::RightButton) {
+ if (m_dragStart.isNull() && m_panStart.isNull() && event->button() & \
Qt::LeftButton) { emit monitorPlay();
}
+ m_dragStart = QPoint();
+ m_panStart = QPoint();
+ setCursor(Qt::ArrowCursor);
}
-void GLWidget::mouseDoubleClickEvent(QMouseEvent * event)
+void GLWidget::mouseDoubleClickEvent(QMouseEvent *event)
{
QQuickView::mouseDoubleClickEvent(event);
- if (event->isAccepted()) return;
+ if (event->isAccepted()) {
+ return;
+ }
if (!rootObject() || rootObject()->objectName() != \
QLatin1String("rooteffectscene")) { emit switchFullScreen();
}
diff --cc src/monitor/glwidget.h
index 3477c44c7,d12500a57..52ecd88be
--- a/src/monitor/glwidget.h
+++ b/src/monitor/glwidget.h
@@@ -155,11 -138,12 +156,12 @@@ private
QRect m_rect;
QRect m_effectRect;
GLuint m_texture[3];
- QOpenGLShaderProgram* m_shader;
+ QOpenGLShaderProgram *m_shader;
+ QPoint m_panStart;
QPoint m_dragStart;
- Mlt::Filter* m_glslManager;
- Mlt::Consumer* m_consumer;
- Mlt::Producer* m_producer;
+ Mlt::Filter *m_glslManager;
+ Mlt::Consumer *m_consumer;
+ Mlt::Producer *m_producer;
QSemaphore m_initSem;
QSemaphore m_analyseSem;
bool m_isInitialized;
diff --cc src/monitor/monitor.cpp
index dacf1eeeb,b556dbb35..17041a51d
--- a/src/monitor/monitor.cpp
+++ b/src/monitor/monitor.cpp
@@@ -151,8 -160,9 +151,9 @@@ Monitor::Monitor(Kdenlive::MonitorId id
glayout->setContentsMargins(0, 0, 0, 0);
// Create QML OpenGL widget
m_glMonitor = new GLWidget((int) id);
- connect(m_glMonitor, SIGNAL(passKeyEvent(QKeyEvent*)), this, \
SLOT(doKeyPressEvent(QKeyEvent*))); + connect(m_glMonitor, \
&GLWidget::passKeyEvent, this, &Monitor::doKeyPressEvent); + connect(m_glMonitor, \
&GLWidget::panView, this, &Monitor::panView);
- m_videoWidget = \
QWidget::createWindowContainer(qobject_cast<QWindow*>(m_glMonitor)); + \
m_videoWidget = QWidget::createWindowContainer(qobject_cast<QWindow *>(m_glMonitor)); \
m_videoWidget->setAcceptDrops(true); QuickEventEater *leventEater = new \
QuickEventEater(this); m_videoWidget->installEventFilter(leventEater);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic