[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