Hello community,

here is the log from the commit of package kdenlive for openSUSE:Factory 
checked in at 2015-10-19 22:40:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdenlive (Old)
 and      /work/SRC/openSUSE:Factory/.kdenlive.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdenlive"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdenlive/kdenlive.changes        2015-10-03 
20:20:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdenlive.new/kdenlive.changes   2015-10-19 
22:40:21.000000000 +0200
@@ -1,0 +2,8 @@
+Sun Oct 11 13:28:41 UTC 2015 - [email protected]
+
+- Update to KDE Applications 15.08.2
+   * KDE Applications 15.08.2 
+   * https://www.kde.org/announcements/announce-applications-15.08.2.php
+
+
+-------------------------------------------------------------------

Old:
----
  kdenlive-15.08.1.tar.xz

New:
----
  kdenlive-15.08.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdenlive.spec ++++++
--- /var/tmp/diff_new_pack.ElO9k9/_old  2015-10-19 22:40:22.000000000 +0200
+++ /var/tmp/diff_new_pack.ElO9k9/_new  2015-10-19 22:40:22.000000000 +0200
@@ -19,13 +19,13 @@
 %define mlt_version 0.9.6
 
 Name:           kdenlive
-Version:        15.08.1
+Version:        15.08.2
 Release:        0
 Summary:        Non-linear video editor
 License:        GPL-3.0+
 Group:          Productivity/Multimedia/Video/Editors and Convertors
 Url:            http://www.kdenlive.org/
-Source0:        
http://download.kde.org/stable/applications/15.08.1/src/%{name}-%{version}.tar.xz
+Source0:        
http://download.kde.org/stable/applications/15.08.2/src/%{name}-%{version}.tar.xz
 Patch1:         use-mlt_datadir.patch
 BuildRequires:  desktop-file-utils
 BuildRequires:  fdupes

++++++ kdenlive-15.08.1.tar.xz -> kdenlive-15.08.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/CMakeLists.txt 
new/kdenlive-15.08.2/CMakeLists.txt
--- old/kdenlive-15.08.1/CMakeLists.txt 2015-09-11 00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/CMakeLists.txt 2015-10-09 01:27:24.000000000 +0200
@@ -6,7 +6,7 @@
 # KDE Application Version, managed by release script
 set (KDE_APPLICATIONS_VERSION_MAJOR "15")
 set (KDE_APPLICATIONS_VERSION_MINOR "08")
-set (KDE_APPLICATIONS_VERSION_MICRO "1")
+set (KDE_APPLICATIONS_VERSION_MICRO "2")
 
 set(KDENLIVE_VERSION 
${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO})
 cmake_minimum_required(VERSION 2.8.12)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/cmake/modules/FindOpenGLES.cmake 
new/kdenlive-15.08.2/cmake/modules/FindOpenGLES.cmake
--- old/kdenlive-15.08.1/cmake/modules/FindOpenGLES.cmake       1970-01-01 
01:00:00.000000000 +0100
+++ new/kdenlive-15.08.2/cmake/modules/FindOpenGLES.cmake       2015-10-09 
01:27:24.000000000 +0200
@@ -0,0 +1,52 @@
+# - Try to find OpenGLES
+# Once done this will define
+#  
+#  OPENGLES_FOUND           - system has OpenGLES and EGL
+#  OPENGL_EGL_FOUND         - system has EGL
+#  OPENGLES_INCLUDE_DIR     - the GLES include directory
+#  OPENGLES_LIBRARY        - the GLES library
+#  OPENGLES_EGL_INCLUDE_DIR - the EGL include directory
+#  OPENGLES_EGL_LIBRARY            - the EGL library
+#  OPENGLES_LIBRARIES       - all libraries needed for OpenGLES
+#  OPENGLES_INCLUDES        - all includes needed for OpenGLES
+
+FIND_PATH(OPENGLES_INCLUDE_DIR GLES2/gl2.h
+  /usr/openwin/share/include
+  /opt/graphics/OpenGL/include /usr/X11R6/include
+  /usr/include
+)
+
+FIND_LIBRARY(OPENGLES_LIBRARY
+  NAMES GLESv2
+  PATHS /opt/graphics/OpenGL/lib
+        /usr/openwin/lib
+        /usr/shlib /usr/X11R6/lib
+        /usr/lib
+)
+
+FIND_PATH(OPENGLES_EGL_INCLUDE_DIR EGL/egl.h
+  /usr/openwin/share/include
+  /opt/graphics/OpenGL/include /usr/X11R6/include
+  /usr/include
+)
+
+FIND_LIBRARY(OPENGLES_EGL_LIBRARY
+    NAMES EGL
+    PATHS /usr/shlib /usr/X11R6/lib
+          /usr/lib
+)
+
+SET(OPENGL_EGL_FOUND "NO")
+IF(OPENGLES_EGL_LIBRARY AND OPENGLES_EGL_INCLUDE_DIR)
+    SET(OPENGL_EGL_FOUND "YES")
+ENDIF()
+
+SET(OPENGLES_FOUND "NO")
+IF(OPENGLES_LIBRARY AND OPENGLES_INCLUDE_DIR AND
+   OPENGLES_EGL_LIBRARY AND OPENGLES_EGL_INCLUDE_DIR)
+    SET(OPENGLES_LIBRARIES ${OPENGLES_LIBRARY} ${OPENGLES_LIBRARIES}
+                           ${OPENGLES_EGL_LIBRARY})
+    SET(OPENGLES_INCLUDES ${OPENGLES_INCLUDE_DIR} ${OPENGLES_EGL_INCLUDE_DIR})
+    SET(OPENGLES_FOUND "YES")
+ENDIF()
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/renderer/renderjob.cpp 
new/kdenlive-15.08.2/renderer/renderjob.cpp
--- old/kdenlive-15.08.1/renderer/renderjob.cpp 2015-09-11 00:31:47.000000000 
+0200
+++ new/kdenlive-15.08.2/renderer/renderjob.cpp 2015-10-09 01:27:24.000000000 
+0200
@@ -61,7 +61,7 @@
     // Disable VDPAU so that rendering will work even if there is a Kdenlive 
instance using VDPAU
     qputenv("MLT_NO_VDPAU", "1");
 
-    m_args << "xml:" + scenelist;
+    m_args << scenelist;
     if (in != -1) m_args << QLatin1String("in=") + QString::number(in);
     if (out != -1) m_args << QLatin1String("out=") + QString::number(out);
     m_args << preargs;
@@ -287,6 +287,9 @@
         if (m_dualpass) {
             emit renderingFinished();
             deleteLater();
-        } else qApp->quit();
+        } else  {
+          m_logfile.remove();
+          qApp->quit();
+        }
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/bin/bin.cpp 
new/kdenlive-15.08.2/src/bin/bin.cpp
--- old/kdenlive-15.08.1/src/bin/bin.cpp        2015-09-11 00:31:47.000000000 
+0200
+++ new/kdenlive-15.08.2/src/bin/bin.cpp        2015-10-09 01:27:24.000000000 
+0200
@@ -447,9 +447,6 @@
     AbstractProjectItem *parent = clip->parent();
     parent->removeChild(clip);
     delete clip;
-    if (m_listType == BinTreeView) {
-        static_cast<QTreeView*>(m_itemView)->resizeColumnToContents(0);
-    }
 }
 
 ProjectClip *Bin::getFirstSelectedClip()
@@ -683,9 +680,6 @@
         }
     }
     new ProjectClip(xml, m_blankThumb, parentFolder);
-    if (m_listType == BinTreeView) {
-        static_cast<QTreeView*>(m_itemView)->resizeColumnToContents(0);
-    }
 }
 
 QString Bin::slotAddFolder(const QString &folderName)
@@ -1023,6 +1017,8 @@
             // save current treeview state (column width)
             QTreeView *view = static_cast<QTreeView*>(m_itemView);
             m_headerInfo = view->header()->saveState();
+           m_showDate->setEnabled(true);
+           m_showDesc->setEnabled(true);
         }
         else {
             // remove the current folderUp item if any
@@ -1039,13 +1035,17 @@
     }
 
     switch (m_listType) {
-    case BinIconView:
-        m_itemView = new QListView(m_splitter);
-        m_folderUp = new ProjectFolderUp(NULL);
-        break;
-    default:
-        m_itemView = new QTreeView(m_splitter);
-        break;
+       case BinIconView:
+           m_itemView = new QListView(m_splitter);
+           m_folderUp = new ProjectFolderUp(NULL);
+           m_showDate->setEnabled(false);
+           m_showDesc->setEnabled(false);
+           break;
+       default:
+           m_itemView = new QTreeView(m_splitter);
+           m_showDate->setEnabled(true);
+           m_showDesc->setEnabled(true);
+           break;
     }
     m_itemView->setMouseTracking(true);
     m_itemView->viewport()->installEventFilter(m_eventEater);
@@ -1165,6 +1165,7 @@
                m_proxyAction->blockSignals(false);
             }
         }
+        
     }
     // Enable / disable clip actions
     m_proxyAction->setEnabled(enableClipActions);
@@ -1176,7 +1177,12 @@
     m_clipsActionsMenu->setEnabled(enableClipActions);
     m_extractAudioAction->setEnabled(enableClipActions);
     // Show menu
-    m_menu->exec(event->globalPos());
+    if (enableClipActions) {
+       m_menu->exec(event->globalPos());
+    } else {
+       // Clicked in empty area
+       m_addButton->menu()->exec(event->globalPos());
+    }
 }
 
 
@@ -1409,8 +1415,9 @@
                if (!ix.isValid() || ix.column() != 0) {
                    continue;
                }
-                ProjectClip *currentItem = static_cast<ProjectClip 
*>(m_proxyModel->mapToSource(ix).internalPointer());
-                if (currentItem->clipId() == info.clipId) {
+               AbstractProjectItem *item = 
static_cast<AbstractProjectItem*>(m_proxyModel->mapToSource(ix).internalPointer());
+                ProjectClip *currentItem = qobject_cast<ProjectClip*>(item);
+                if (currentItem && currentItem->clipId() == info.clipId) {
                     // Item was selected, show it in monitor
                     currentItem->setCurrent(true);
                     break;
@@ -1438,9 +1445,6 @@
         //FIXME(style): constructor actually adds the new pointer to parent's 
children
         new ProjectClip(info.clipId, m_blankThumb, controller, parentFolder);
         if (info.clipId.toInt() >= m_clipCounter) m_clipCounter = 
info.clipId.toInt() + 1;
-        if (m_listType == BinTreeView) {
-            static_cast<QTreeView*>(m_itemView)->resizeColumnToContents(0);
-        }
     }
     emit producerReady(info.clipId);
 }
@@ -2389,7 +2393,7 @@
 
 void Bin::slotSetSorting()
 {
-    QTreeView *view = static_cast<QTreeView*>(m_itemView);
+    QTreeView *view = qobject_cast<QTreeView*>(m_itemView);
     if (view) {
         int ix = view->header()->sortIndicatorSection();
         m_proxyModel->setFilterKeyColumn(ix);
@@ -2398,7 +2402,7 @@
 
 void Bin::slotShowDateColumn(bool show)
 {
-    QTreeView *view = static_cast<QTreeView*>(m_itemView);
+    QTreeView *view = qobject_cast<QTreeView*>(m_itemView);
     if (view) {
         view->setColumnHidden(1, !show);
     }
@@ -2406,7 +2410,7 @@
 
 void Bin::slotShowDescColumn(bool show)
 {
-    QTreeView *view = static_cast<QTreeView*>(m_itemView);
+    QTreeView *view = qobject_cast<QTreeView*>(m_itemView);
     if (view) {
         view->setColumnHidden(2, !show);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/dialogs/renderwidget.cpp 
new/kdenlive-15.08.2/src/dialogs/renderwidget.cpp
--- old/kdenlive-15.08.1/src/dialogs/renderwidget.cpp   2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/dialogs/renderwidget.cpp   2015-10-09 
01:27:24.000000000 +0200
@@ -353,7 +353,7 @@
 
 void RenderWidget::setDocumentPath(const QString &path)
 {
-    if (m_view.out_file->url().adjusted(QUrl::RemoveFilename).path() == 
QUrl(m_projectFolder).adjusted(QUrl::RemoveFilename).path()) {
+    if (m_view.out_file->url().adjusted(QUrl::RemoveFilename).path() == 
QUrl::fromLocalFile(m_projectFolder).adjusted(QUrl::RemoveFilename).path()) {
         const QString fileName = m_view.out_file->url().fileName();
         m_view.out_file->setUrl(QUrl(path + fileName));
     }
@@ -444,7 +444,6 @@
 
 void RenderWidget::slotSaveProfile()
 {
-    //TODO: update to correctly use metagroups
     Ui::SaveProfile_UI ui;
     QPointer<QDialog> d = new QDialog(this);
     ui.setupUi(d);
@@ -464,7 +463,10 @@
     QListWidgetItem *item = m_view.size_list->currentItem();
     if (item) {
         // Duplicate current item settings
-        customGroup = item->text();
+        QListWidgetItem *groupItem = m_view.format_list->currentItem();
+        if (groupItem) {
+            customGroup = groupItem->text();
+        }
         ui.extension->setText(item->data(ExtensionRole).toString());
         if (ui.parameters->toPlainText().contains("%bitrate") || 
ui.parameters->toPlainText().contains("%quality")) {
             if (ui.parameters->toPlainText().contains("%quality")) {
@@ -710,7 +712,6 @@
         }
     }
     else ui.abitrates->setHidden(true);
-    
     d->setWindowTitle(i18n("Edit Profile"));
     if (d->exec() == QDialog::Accepted) {
         slotDeleteProfile(false);
@@ -1233,7 +1234,7 @@
         if (!renderItem) {
             renderItem = new RenderJobItem(m_view.running_jobs, QStringList() 
<< QString() << dest);
         }
-        renderItem->setData(1, TimeRole, QTime::currentTime());
+        renderItem->setData(1, TimeRole, QDateTime::currentDateTime());
 
         // Set rendering type
         if (group == "dvd") {
@@ -1290,7 +1291,7 @@
     // Find first waiting job
     while (item) {
         if (item->status() == WAITINGJOB) {
-            item->setData(1, TimeRole, QTime::currentTime());
+            item->setData(1, TimeRole, QDateTime::currentDateTime());
             waitingJob = true;
             startRendering(item);
             while (item->status() == WAITINGJOB) {
@@ -1549,7 +1550,7 @@
 
 QUrl RenderWidget::filenameWithExtension(QUrl url, const QString &extension)
 {
-    if (!url.isValid()) url = QUrl(m_projectFolder);
+    if (!url.isValid()) url = QUrl::fromLocalFile(m_projectFolder);
     QString directory = url.adjusted(QUrl::RemoveFilename).path();
     QString filename = url.fileName();
     QString ext;
@@ -1567,24 +1568,30 @@
         }
     }
 
-    return QUrl(directory + filename);
+    return QUrl::fromLocalFile(directory + filename);
 }
 
 void RenderWidget::refreshParams()
 {
     // Format not available (e.g. codec not installed); Disable start button
     QListWidgetItem *item = m_view.size_list->currentItem();
-    if (!item || item->isHidden()) {
+    QString extension;
+    if (item) {
+        extension = item->data(ExtensionRole).toString();
+    }
+    if (!item || item->isHidden() || extension.isEmpty()) {
         if (!item)
             errorMessage(i18n("No matching profile"));
+        else if (extension.isEmpty()) {
+            errorMessage(i18n("Invalid profile"));
+        }
         m_view.advanced_params->clear();
         m_view.buttonRender->setEnabled(false);
         m_view.buttonGenerateScript->setEnabled(false);
         return;
     }
-    errorMessage(item->toolTip());
     QString params = item->data(ParamsRole).toString();
-    QString extension = item->data(ExtensionRole).toString();
+    errorMessage(item->toolTip());
     m_view.advanced_params->setPlainText(params);
     QString destination = 
m_view.destination_list->itemData(m_view.destination_list->currentIndex()).toString();
     if (params.contains(" s=") || params.startsWith(QLatin1String("s=")) || 
destination == "audioonly") {
@@ -1973,13 +1980,20 @@
     item->setStatus(RUNNINGJOB);
     if (progress == 0) {
         item->setIcon(0, QIcon::fromTheme("system-run"));
-        item->setData(1, TimeRole, QTime::currentTime());
+        item->setData(1, TimeRole, QDateTime::currentDateTime());
         slotCheckJob();
     } else {
-        QTime startTime = item->data(1, TimeRole).toTime();
-        int seconds = startTime.secsTo(QTime::currentTime());
-        QTime ti(0, 0, (int) (seconds * (100.0 - progress) / progress));
-        const QString t = i18n("Estimated time %1", ti.toString("hh:mm:ss"));
+        QDateTime startTime = item->data(1, TimeRole).toDateTime();
+        int days = startTime.daysTo (QDateTime::currentDateTime()) ;
+        double elapsedTime = days * 86400 + startTime.addDays(days).secsTo( 
QDateTime::currentDateTime() );
+        u_int32_t remaining = elapsedTime * (100.0 - progress) / progress;
+        int remainingSecs = remaining % 86400;
+        days = remaining / 86400;
+        QTime when = QTime ( 0, 0, 0, 0 ) ;
+        when = when.addSecs (remainingSecs) ;
+        QString est = (days > 0) ? i18np("%1 day ", "%1 days ", days) : 
QString();
+        est.append(when.toString("hh:mm:ss"));
+        QString t = i18n("Remaining time %1", est);
         item->setData(1, Qt::UserRole, t);
     }
 }
@@ -1995,12 +2009,16 @@
     if (status == -1) {
         // Job finished successfully
         item->setStatus(FINISHEDJOB);
-        QTime startTime = item->data(1, TimeRole).toTime();
-        int seconds = startTime.secsTo(QTime::currentTime());
-        QString r = QTime(0, 0, seconds).toString("hh:mm:ss");
-        QString t = i18n("Rendering finished in %1", r);
+        QDateTime startTime = item->data(1, TimeRole).toDateTime();
+        int days = startTime.daysTo(QDateTime::currentDateTime()) ;
+        int elapsedTime = startTime.addDays(days).secsTo( 
QDateTime::currentDateTime() );
+        QTime when = QTime ( 0, 0, 0, 0 ) ;
+        when = when.addSecs (elapsedTime) ;
+        QString est = (days > 0) ? i18np("%1 day ", "%1 days ", days) : 
QString();
+        est.append(when.toString("hh:mm:ss"));
+        QString t = i18n("Rendering finished in %1", est);
         item->setData(1, Qt::UserRole, t);
-        QString notif = i18n("Rendering of %1 finished in %2", item->text(1), 
r);
+        QString notif = i18n("Rendering of %1 finished in %2", item->text(1), 
est);
         //WARNING: notification below does not seem to work 
         KNotification::event("RenderFinished", notif, QPixmap(), this);
         QString itemGroup = item->data(0, Qt::UserRole).toString();
@@ -2182,7 +2200,7 @@
         renderItem->setStatus(WAITINGJOB);
         renderItem->setIcon(0, QIcon::fromTheme("media-playback-pause"));
         renderItem->setData(1, Qt::UserRole, i18n("Waiting..."));
-        renderItem->setData(1, TimeRole, QTime::currentTime());
+        renderItem->setData(1, TimeRole, QDateTime::currentDateTime());
         renderItem->setData(1, ParametersRole, path);
         checkRenderStatus();
         m_view.tabWidget->setCurrentIndex(1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/jogshuttle/jogshuttle.cpp 
new/kdenlive-15.08.2/src/jogshuttle/jogshuttle.cpp
--- old/kdenlive-15.08.1/src/jogshuttle/jogshuttle.cpp  2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/jogshuttle/jogshuttle.cpp  2015-10-09 
01:27:24.000000000 +0200
@@ -135,7 +135,6 @@
         //qDebug() << "Jog shuttle value is out of range: " << MaxShuttleRange;
         return;
     }
-
     QApplication::postEvent(m_parent,
         new MediaCtrlEvent(MediaCtrlEvent::Shuttle, value));
 }
@@ -148,7 +147,7 @@
 
 JogShuttle::JogShuttle(const QString &device, QObject *parent) :
         QObject(parent),
-        m_shuttleProcess(device, parent)
+        m_shuttleProcess(device, this)
 {
     m_shuttleProcess.start();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/monitor/monitor.cpp 
new/kdenlive-15.08.2/src/monitor/monitor.cpp
--- old/kdenlive-15.08.1/src/monitor/monitor.cpp        2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/monitor/monitor.cpp        2015-10-09 
01:27:24.000000000 +0200
@@ -120,7 +120,7 @@
 
     // Tool bar buttons
     m_toolbar = new QToolBar(this);
-    m_toolbar->setIconSize(QSize(s, s));
+    //m_toolbar->setIconSize(QSize(s, s));
     QWidget *sp1 = new QWidget(this);
     sp1->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
     m_toolbar->addWidget(sp1);
@@ -237,7 +237,6 @@
     spacer->setSizePolicy(QSizePolicy::MinimumExpanding, 
QSizePolicy::Preferred);
     m_toolbar->addWidget(spacer);
     connect(m_timePos, SIGNAL(timeCodeEditingFinished()), this, 
SLOT(slotSeek()));
-    m_toolbar->setMaximumHeight(m_timePos->height());
     layout->addWidget(m_toolbar);
     if (m_recManager) layout->addWidget(m_recManager->toolbar());
     // Info message widget
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/monitor/monitormanager.cpp 
new/kdenlive-15.08.2/src/monitor/monitormanager.cpp
--- old/kdenlive-15.08.1/src/monitor/monitormanager.cpp 2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/monitor/monitormanager.cpp 2015-10-09 
01:27:24.000000000 +0200
@@ -103,6 +103,7 @@
 
 bool MonitorManager::activateMonitor(Kdenlive::MonitorId name, bool 
forceRefresh)
 {
+    QMutexLocker locker(&m_refreshMutex);
     if (m_clipMonitor == NULL || m_projectMonitor == NULL)
         return false;
     if (m_activeMonitor && m_activeMonitor->id() == name) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/monitor/monitormanager.h 
new/kdenlive-15.08.2/src/monitor/monitormanager.h
--- old/kdenlive-15.08.1/src/monitor/monitormanager.h   2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/monitor/monitormanager.h   2015-10-09 
01:27:24.000000000 +0200
@@ -110,6 +110,8 @@
     void slotMuteCurrentMonitor(bool active);
 
 private:
+    /** @brief Make sure 2 monitors cannot be activated simultaneously*/
+    QMutex m_refreshMutex;
     /** @brief Sets up all the actions and attaches them to the collection of 
MainWindow. */
     void setupActions();
     KdenliveDoc *m_document;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/monitor/recmanager.cpp 
new/kdenlive-15.08.2/src/monitor/recmanager.cpp
--- old/kdenlive-15.08.1/src/monitor/recmanager.cpp     2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/monitor/recmanager.cpp     2015-10-09 
01:27:24.000000000 +0200
@@ -44,7 +44,7 @@
     , m_recToolbar(new QToolBar(parent))
     , m_screenCombo(NULL)
 {
-    m_recToolbar->setIconSize(QSize(iconSize, iconSize));
+    //m_recToolbar->setIconSize(QSize(iconSize, iconSize));
     m_playAction = 
m_recToolbar->addAction(QIcon::fromTheme("media-playback-start"), 
i18n("Preview"));
     m_playAction->setCheckable(true);
     connect(m_playAction, &QAction::toggled, this, &RecManager::slotPreview);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kdenlive-15.08.1/src/project/dialogs/projectsettings.cpp 
new/kdenlive-15.08.2/src/project/dialogs/projectsettings.cpp
--- old/kdenlive-15.08.1/src/project/dialogs/projectsettings.cpp        
2015-09-11 00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/project/dialogs/projectsettings.cpp        
2015-10-09 01:27:24.000000000 +0200
@@ -90,7 +90,6 @@
         
generate_imageproxy->setChecked(KdenliveSettings::generateimageproxy());
         proxy_imageminsize->setValue(KdenliveSettings::proxyimageminsize());
         proxyextension = KdenliveSettings::proxyextension();
-      
     }
 
     proxy_minsize->setEnabled(generate_proxy->isChecked());
@@ -98,7 +97,7 @@
 
 
     // load proxy profiles
-    KConfig conf("encodingprofiles.rc", KConfig::CascadeConfig); //, 
"appdata");
+    KConfig conf("encodingprofiles.rc", KConfig::CascadeConfig, 
QStandardPaths::DataLocation);
     KConfigGroup group(&conf, "proxy");
     QMap <QString, QString> values = group.entryMap();
     QMapIterator<QString, QString> k(values);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/renderer.cpp 
new/kdenlive-15.08.2/src/renderer.cpp
--- old/kdenlive-15.08.1/src/renderer.cpp       2015-09-11 00:31:47.000000000 
+0200
+++ new/kdenlive-15.08.2/src/renderer.cpp       2015-10-09 01:27:24.000000000 
+0200
@@ -440,7 +440,7 @@
     //TODO: there is some duplication with clipcontroller > updateproducer 
that alsa copies properties 
     QString value;
     QStringList internalProperties;
-    internalProperties << "bypassDuplicate" << "resource" << "mlt_service";
+    internalProperties << "bypassDuplicate" << "resource" << 
"mlt_service"<<"audio_index"<<"video_index";
     QDomNodeList props;
     if (xml.tagName() == "producer") {
        props = xml.elementsByTagName("property");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/timeline/customtrackview.cpp 
new/kdenlive-15.08.2/src/timeline/customtrackview.cpp
--- old/kdenlive-15.08.1/src/timeline/customtrackview.cpp       2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/timeline/customtrackview.cpp       2015-10-09 
01:27:24.000000000 +0200
@@ -2727,6 +2727,12 @@
     }
 }
 
+void CustomTrackView::leaveEvent(QEvent * event)
+{
+      removeTipAnimation();
+      QGraphicsView::leaveEvent(event);
+}
+
 void CustomTrackView::dropEvent(QDropEvent * event)
 {
     if ((m_selectionGroup || m_dragItem) && m_clipDrag) {
@@ -3019,6 +3025,7 @@
 
 void CustomTrackView::reloadTimeline()
 {
+    removeTipAnimation();
     QList<QGraphicsItem *> selection = m_scene->items();
     selection.removeAll(m_cursorLine);
     for (int i = 0; i < m_guides.count(); ++i) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/timeline/customtrackview.h 
new/kdenlive-15.08.2/src/timeline/customtrackview.h
--- old/kdenlive-15.08.1/src/timeline/customtrackview.h 2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/timeline/customtrackview.h 2015-10-09 
01:27:24.000000000 +0200
@@ -310,6 +310,7 @@
     virtual void dragLeaveEvent(QDragLeaveEvent * event);
     /** @brief Something has been dropped onto the timeline */
     virtual void dropEvent(QDropEvent * event);
+    virtual void leaveEvent(QEvent * event);
     virtual void wheelEvent(QWheelEvent * e);
     virtual void keyPressEvent(QKeyEvent * event);
     virtual QStringList mimeTypes() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/timeline/timeline.cpp 
new/kdenlive-15.08.2/src/timeline/timeline.cpp
--- old/kdenlive-15.08.1/src/timeline/timeline.cpp      2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/timeline/timeline.cpp      2015-10-09 
01:27:24.000000000 +0200
@@ -169,12 +169,12 @@
 bool Timeline::checkProjectAudio()
 {
     bool hasAudio = false;
-    int max = m_tractor->count();
+    int max = m_tracks.count();
     for (int i = 0; i < max; i++) {
         Track *sourceTrack = track(i);
-        QScopedPointer<Mlt::Producer> track(m_tractor->track(i));
+        QScopedPointer<Mlt::Producer> track(m_tractor->track(i + 1));
         int state = track->get_int("hide");
-        if (sourceTrack->hasAudio() && !(state & 2)) {
+        if (sourceTrack && sourceTrack->hasAudio() && !(state & 2)) {
             hasAudio = true;
             break;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/timeline/track.cpp 
new/kdenlive-15.08.2/src/timeline/track.cpp
--- old/kdenlive-15.08.1/src/timeline/track.cpp 2015-09-11 00:31:47.000000000 
+0200
+++ new/kdenlive-15.08.2/src/timeline/track.cpp 2015-10-09 01:27:24.000000000 
+0200
@@ -391,7 +391,7 @@
         cut = prod->cut(orig->get_in(), orig->get_out());
     }
     Clip(*cut).addEffects(*orig);
-    bool ok = m_playlist.insert_at(frame(t), cut, 1);
+    bool ok = m_playlist.insert_at(frame(t), cut, 1) >= 0;
     delete cut;
     m_playlist.unlock();
     return ok;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdenlive-15.08.1/src/ui/cliptranscode_ui.ui 
new/kdenlive-15.08.2/src/ui/cliptranscode_ui.ui
--- old/kdenlive-15.08.1/src/ui/cliptranscode_ui.ui     2015-09-11 
00:31:47.000000000 +0200
+++ new/kdenlive-15.08.2/src/ui/cliptranscode_ui.ui     2015-10-09 
01:27:24.000000000 +0200
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>317</width>
-    <height>483</height>
+    <width>362</width>
+    <height>633</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -35,7 +35,7 @@
     <widget class="KUrlRequester" name="dest_url"/>
    </item>
    <item row="5" column="0" colspan="3">
-    <widget class="QLabel" name="label_3">
+    <widget class="QLabel" name="ffmpeg_label">
      <property name="text">
       <string>FFmpeg parameters</string>
      </property>


Reply via email to