Bug 415690 - Patched Kdenlive 19.12.0 for Linux Mint 19
Summary: Patched Kdenlive 19.12.0 for Linux Mint 19
Status: RESOLVED UNMAINTAINED
Alias: None
Product: kdenlive
Classification: Applications
Component: Setup & Installation (show other bugs)
Version: 19.12.0
Platform: Mint (Ubuntu based) Linux
: NOR normal
Target Milestone: ---
Assignee: Vincent PINON
URL:
Keywords:
: 414165 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-12-29 19:40 UTC by Alan Robertson
Modified: 2020-11-13 21:10 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:
fritzibaby: Brainstorm+


Attachments
Patched Kdenlive 19.12.0 for Linux Mint 19 (679.01 KB, image/png)
2019-12-29 19:40 UTC, Alan Robertson
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alan Robertson 2019-12-29 19:40:24 UTC
Created attachment 124778 [details]
Patched Kdenlive 19.12.0 for Linux Mint 19

diff -ruN kdenlive-19.12.0/rttr.CMakeLists.txt "kdenlive-19.12.0 patched/rttr.CMakeLists.txt"
--- kdenlive-19.12.0/rttr.CMakeLists.txt	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/rttr.CMakeLists.txt"	2019-12-26 20:49:42.351826294 +0000
@@ -3,7 +3,7 @@
     PREFIX rttr
     URL https://github.com/rttrorg/rttr/archive/v0.9.6.tar.gz
     UPDATE_COMMAND ""
-    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_INSTALL_LIBDIR=lib -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_PACKAGE=OFF -DBUILD_STATIC=ON
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_INSTALL_LIBDIR=lib -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_PACKAGE=OFF -DBUILD_STATIC=ON -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
 )
 
 ExternalProject_Get_Property(rttr_project install_dir)
diff -ruN kdenlive-19.12.0/src/assets/assetlist/view/assetlistwidget.cpp "kdenlive-19.12.0 patched/src/assets/assetlist/view/assetlistwidget.cpp"
--- kdenlive-19.12.0/src/assets/assetlist/view/assetlistwidget.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/assets/assetlist/view/assetlistwidget.cpp"	2019-12-26 20:25:50.118041000 +0000
@@ -36,8 +36,12 @@
 {
     KDeclarative::KDeclarative kdeclarative;
     kdeclarative.setDeclarativeEngine(engine());
+#if KDECLARATIVE_VERSION >= QT_VERSION_CHECK(5, 45, 0)
     kdeclarative.setupEngine(engine());
     kdeclarative.setupContext();
+#else
+    kdeclarative.setupBindings();
+#endif
 }
 
 AssetListWidget::~AssetListWidget()
diff -ruN kdenlive-19.12.0/src/assets/model/assetparametermodel.cpp "kdenlive-19.12.0 patched/src/assets/model/assetparametermodel.cpp"
--- kdenlive-19.12.0/src/assets/model/assetparametermodel.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/assets/model/assetparametermodel.cpp"	2019-12-26 20:20:29.268736000 +0000
@@ -31,6 +31,7 @@
 #include <QJsonObject>
 #include <QLocale>
 #include <QString>
+#include <QFile>
 
 AssetParameterModel::AssetParameterModel(std::unique_ptr<Mlt::Properties> asset, const QDomElement &assetXml, const QString &assetId, ObjectId ownerId,
                                          QObject *parent)
diff -ruN kdenlive-19.12.0/src/bin/bin.cpp "kdenlive-19.12.0 patched/src/bin/bin.cpp"
--- kdenlive-19.12.0/src/bin/bin.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/bin/bin.cpp"	2019-12-26 20:23:14.909408000 +0000
@@ -164,7 +164,7 @@
         QString line1 = index.data(Qt::DisplayRole).toString();
         QString line2 = index.data(Qt::UserRole).toString();
 
-        int textW = qMax(option.fontMetrics.horizontalAdvance(line1), option.fontMetrics.horizontalAdvance(line2));
+        int textW = qMax(option.fontMetrics.width(line1), option.fontMetrics.width(line2));
         QSize iconSize = icon.actualSize(option.decorationSize);
         return {qMax(textW, iconSize.width()) + 4, option.fontMetrics.lineSpacing() * 2 + 4};
     }
diff -ruN kdenlive-19.12.0/src/dialogs/splash.cpp "kdenlive-19.12.0 patched/src/dialogs/splash.cpp"
--- kdenlive-19.12.0/src/dialogs/splash.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/dialogs/splash.cpp"	2019-12-26 20:26:30.094205000 +0000
@@ -35,8 +35,12 @@
 {
     KDeclarative::KDeclarative kdeclarative;
     kdeclarative.setDeclarativeEngine(m_engine);
+#if KDECLARATIVE_VERSION >= QT_VERSION_CHECK(5, 45, 0)
     kdeclarative.setupEngine(m_engine);
     kdeclarative.setupContext();
+#else
+    kdeclarative.setupBindings();
+#endif
     component = new QQmlComponent(m_engine);
     QQuickWindow::setDefaultAlphaBuffer(true);
     component->loadUrl(QUrl(QStringLiteral("qrc:/qml/splash.qml")));
diff -ruN kdenlive-19.12.0/src/doc/kthumb.cpp "kdenlive-19.12.0 patched/src/doc/kthumb.cpp"
--- kdenlive-19.12.0/src/doc/kthumb.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/doc/kthumb.cpp"	2019-12-26 20:21:58.469097000 +0000
@@ -124,7 +124,7 @@
 {
     int delta = 0;
     int avg = 0;
-    int bytes = (int)image.sizeInBytes();
+    int bytes = (int)image.bytesPerLine() * image.height();
     int STEPS = bytes / 2;
     QVarLengthArray<uchar> pivot(STEPS);
     const uchar *bits = image.bits();
diff -ruN kdenlive-19.12.0/src/effects/effectstack/view/builtstack.cpp "kdenlive-19.12.0 patched/src/effects/effectstack/view/builtstack.cpp"
--- kdenlive-19.12.0/src/effects/effectstack/view/builtstack.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/effects/effectstack/view/builtstack.cpp"	2019-12-26 20:27:02.270337000 +0000
@@ -37,8 +37,12 @@
     KDeclarative::KDeclarative kdeclarative;
     QQmlEngine *eng = engine();
     kdeclarative.setDeclarativeEngine(eng);
+#if KDECLARATIVE_VERSION >= QT_VERSION_CHECK(5, 45, 0)
     kdeclarative.setupEngine(eng);
     kdeclarative.setupContext();
+#else
+    kdeclarative.setupBindings();
+#endif
     // qmlRegisterType<ColorWheelItem>("Kdenlive.Controls", 1, 0, "ColorWheelItem");
     setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
     setMinimumHeight(300);
diff -ruN kdenlive-19.12.0/src/monitor/glwidget.cpp "kdenlive-19.12.0 patched/src/monitor/glwidget.cpp"
--- kdenlive-19.12.0/src/monitor/glwidget.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/monitor/glwidget.cpp"	2019-12-26 20:27:41.838500000 +0000
@@ -98,8 +98,12 @@
 {
     KDeclarative::KDeclarative kdeclarative;
     kdeclarative.setDeclarativeEngine(engine());
+#if KDECLARATIVE_VERSION >= QT_VERSION_CHECK(5, 45, 0)
     kdeclarative.setupEngine(engine());
     kdeclarative.setupContext();
+#else
+    kdeclarative.setupBindings();
+#endif
 
     m_texture[0] = m_texture[1] = m_texture[2] = 0;
     qRegisterMetaType<Mlt::Frame>("Mlt::Frame");
diff -ruN kdenlive-19.12.0/src/monitor/monitor.cpp "kdenlive-19.12.0 patched/src/monitor/monitor.cpp"
--- kdenlive-19.12.0/src/monitor/monitor.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/monitor/monitor.cpp"	2019-12-26 21:19:04.830808271 +0000
@@ -775,7 +775,10 @@
 void Monitor::slotSwitchFullScreen(bool minimizeOnly)
 {
     // TODO: disable screensaver?
-    pause();
+    m_glWidget->showNormal();
+    auto *lay = (QVBoxLayout *)layout();
+    lay->insertWidget(0, m_glWidget, 10);
+/*    pause();
     if (!m_glWidget->isFullScreen() && !minimizeOnly) {
         // Move monitor widget to the second screen (one screen for Kdenlive, the other one for the Monitor widget)
         if (qApp->screens().count() > 1) {
@@ -795,7 +798,7 @@
         m_glWidget->showNormal();
         auto *lay = (QVBoxLayout *)layout();
         lay->insertWidget(0, m_glWidget, 10);
-    }
+    }*/
 }
 
 // virtual
diff -ruN kdenlive-19.12.0/src/monitor/scopes/audiographspectrum.cpp "kdenlive-19.12.0 patched/src/monitor/scopes/audiographspectrum.cpp"
--- kdenlive-19.12.0/src/monitor/scopes/audiographspectrum.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/monitor/scopes/audiographspectrum.cpp"	2019-12-26 20:23:35.877493000 +0000
@@ -138,7 +138,7 @@
         m_freqLabels << BAND_TAB[i].label;
     }
     m_maxDb = 0;
-    setMinimumWidth(2 * m_freqLabels.size() + fontMetrics().horizontalAdvance(QStringLiteral("888")) + 2);
+    setMinimumWidth(2 * m_freqLabels.size() + fontMetrics().width(QStringLiteral("888")) + 2);
     setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
     setMinimumHeight(100);
     setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
@@ -159,14 +159,14 @@
         return;
     }
 
-    int maxWidth = fontMetrics().horizontalAdvance(QStringLiteral("-45"));
+    int maxWidth = fontMetrics().width(QStringLiteral("-45"));
     // dB scale is vertical along the left side
     int prevY = height();
     QColor textCol = palette().text().color();
     p.setPen(textCol);
     for (int i = 0; i < dbLabelCount; i++) {
         QString label = QString::number(m_dbLabels.at(i));
-        int x = rect.left() + maxWidth - fontMetrics().horizontalAdvance(label);
+        int x = rect.left() + maxWidth - fontMetrics().width(label);
         int yline = rect.bottom() - pow(10.0, (double)m_dbLabels.at(i) / 50.0) * rect.height() * 40.0 / 42;
         int y = yline + textHeight / 2;
         if (y - textHeight < 0) {
@@ -196,7 +196,7 @@
     // Find the widest channel label
     int chanLabelWidth = 0;
     for (int i = 0; i < chanLabelCount; i++) {
-        int width = fontMetrics().horizontalAdvance(m_freqLabels.at(i)) + 2;
+        int width = fontMetrics().width(m_freqLabels.at(i)) + 2;
         chanLabelWidth = width > chanLabelWidth ? width : chanLabelWidth;
     }
     int length = rect.width();
@@ -208,10 +208,10 @@
     int y = rect.bottom();
     for (int i = 0; i < chanLabelCount; i += stride) {
         QString label = m_freqLabels.at(i);
-        int x = rect.left() + (2 * i) + i * barWidth + barWidth / 2 - fontMetrics().horizontalAdvance(label) / 2;
+        int x = rect.left() + (2 * i) + i * barWidth + barWidth / 2 - fontMetrics().width(label) / 2;
         if (x > prevX) {
             p.drawText(x, y, label);
-            prevX = x + fontMetrics().horizontalAdvance(label);
+            prevX = x + fontMetrics().width(label);
         }
     }
 }
@@ -237,7 +237,7 @@
     QRect rect(0, 0, width() - 3, height());
     p.setFont(QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont));
     p.setOpacity(0.6);
-    int offset = fontMetrics().horizontalAdvance(QStringLiteral("888")) + 2;
+    int offset = fontMetrics().width(QStringLiteral("888")) + 2;
     if (rect.width() - offset > 10) {
         drawDbLabels(p, rect);
         rect.adjust(offset, 0, 0, 0);
diff -ruN kdenlive-19.12.0/src/monitor/scopes/monitoraudiolevel.cpp "kdenlive-19.12.0 patched/src/monitor/scopes/monitoraudiolevel.cpp"
--- kdenlive-19.12.0/src/monitor/scopes/monitoraudiolevel.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/monitor/scopes/monitoraudiolevel.cpp"	2019-12-26 20:23:58.729586000 +0000
@@ -152,7 +152,7 @@
     for (int i = 0; i < dbLabelCount; i++) {
         int value = dbscale.at(i);
         QString label = QString().sprintf("%d", value);
-        int labelWidth = fontMetrics().horizontalAdvance(label);
+        int labelWidth = fontMetrics().width(label);
         double xf = pow(10.0, (double)dbscale.at(i) / 50.0) * m_pixmap.width() * 40.0 / 42;
         if (xf + labelWidth / 2 > m_pixmap.width()) {
             xf = width() - labelWidth / 2;
diff -ruN kdenlive-19.12.0/src/monitor/view/kdenliveclipmonitor.qml "kdenlive-19.12.0 patched/src/monitor/view/kdenliveclipmonitor.qml"
--- kdenlive-19.12.0/src/monitor/view/kdenliveclipmonitor.qml	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/monitor/view/kdenliveclipmonitor.qml"	2019-12-26 21:45:07.189583752 +0000
@@ -333,7 +333,7 @@
                 id: dragRow
                 ToolButton {
                     id: videoDragButton
-                    icon.name: "kdenlive-show-video"
+//                    icon.name: "kdenlive-show-video"
                     MouseArea {
                         id: dragVideoArea
                         hoverEnabled: true
@@ -354,7 +354,7 @@
                 }
                 ToolButton {
                     id: audioDragButton
-                    icon.name: "audio-volume-medium"
+//                    icon.name: "audio-volume-medium"
                     MouseArea {
                         id: dragAudioArea
                         hoverEnabled: true
diff -ruN kdenlive-19.12.0/src/scopes/audioscopes/audiosignal.cpp "kdenlive-19.12.0 patched/src/scopes/audioscopes/audiosignal.cpp"
--- kdenlive-19.12.0/src/scopes/audioscopes/audiosignal.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/scopes/audioscopes/audiosignal.cpp"	2019-12-26 20:24:19.729672000 +0000
@@ -76,7 +76,7 @@
     int dbsize = 20;
     if (!horiz) {
         // calculate actual width of lowest=longest db scale mark based on drawing font
-        dbsize = p.fontMetrics().horizontalAdvance(QString().sprintf("%d", m_dbscale.at(m_dbscale.size() - 1)));
+        dbsize = p.fontMetrics().width(QString().sprintf("%d", m_dbscale.at(m_dbscale.size() - 1)));
     }
     bool showdb = width() > (dbsize + 40);
     // valpixel=1.0 for 127, 1.0+(1/40) for 1 short oversample, 1.0+(2/40) for longer oversample
diff -ruN kdenlive-19.12.0/src/timecodedisplay.cpp "kdenlive-19.12.0 patched/src/timecodedisplay.cpp"
--- kdenlive-19.12.0/src/timecodedisplay.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/timecodedisplay.cpp"	2019-12-26 20:25:19.645917000 +0000
@@ -64,7 +64,7 @@
     setPalette(palette);
     setTimeCodeFormat(KdenliveSettings::frametimecode(), true);
     setValue(m_minimum);
-    setMinimumWidth(fm.horizontalAdvance(QStringLiteral("88:88:88:88")) + contentsMargins().right() + contentsMargins().left() + frameSize().width() -
+    setMinimumWidth(fm.width(QStringLiteral("88:88:88:88")) + contentsMargins().right() + contentsMargins().left() + frameSize().width() -
                     lineEdit()->contentsRect().width() + (int)QStyle::PM_SpinBoxFrameWidth + 6);
 
     setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Maximum);
diff -ruN kdenlive-19.12.0/src/timeline2/view/timelinewidget.cpp "kdenlive-19.12.0 patched/src/timeline2/view/timelinewidget.cpp"
--- kdenlive-19.12.0/src/timeline2/view/timelinewidget.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/timeline2/view/timelinewidget.cpp"	2019-12-26 20:28:50.098780000 +0000
@@ -57,8 +57,12 @@
 {
     KDeclarative::KDeclarative kdeclarative;
     kdeclarative.setDeclarativeEngine(engine());
+#if KDECLARATIVE_VERSION >= QT_VERSION_CHECK(5, 45, 0)
     kdeclarative.setupEngine(engine());
     kdeclarative.setupContext();
+#else
+    kdeclarative.setupBindings();
+#endif
     setClearColor(palette().window().color());
     registerTimelineItems();
     // Build transition model for context menu
diff -ruN kdenlive-19.12.0/src/titler/graphicsscenerectmove.cpp "kdenlive-19.12.0 patched/src/titler/graphicsscenerectmove.cpp"
--- kdenlive-19.12.0/src/titler/graphicsscenerectmove.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/titler/graphicsscenerectmove.cpp"	2019-12-26 20:24:38.037747000 +0000
@@ -189,10 +189,10 @@
             linePath.addText(0, linePos, font(), line);
             linePos += lineSpacing;
             if (m_alignment == Qt::AlignHCenter) {
-                double offset = (bounding.width() - metrics.horizontalAdvance(line)) / 2;
+                double offset = (bounding.width() - metrics.width(line)) / 2;
                 linePath.translate(offset, 0);
             } else if (m_alignment == Qt::AlignRight) {
-                double offset = bounding.width() - metrics.horizontalAdvance(line);
+                double offset = bounding.width() - metrics.width(line);
                 linePath.translate(offset, 0);
             }
             m_path.addPath(linePath);
diff -ruN kdenlive-19.12.0/src/transitions/view/transitionparameterview.cpp "kdenlive-19.12.0 patched/src/transitions/view/transitionparameterview.cpp"
--- kdenlive-19.12.0/src/transitions/view/transitionparameterview.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/transitions/view/transitionparameterview.cpp"	2019-12-26 20:29:17.054891000 +0000
@@ -33,8 +33,12 @@
 {
     KDeclarative::KDeclarative kdeclarative;
     kdeclarative.setDeclarativeEngine(engine());
+#if KDECLARATIVE_VERSION >= QT_VERSION_CHECK(5, 45, 0)
     kdeclarative.setupEngine(engine());
     kdeclarative.setupContext();
+#else
+    kdeclarative.setupBindings();
+#endif
 
     // Set void model for the moment
     auto *model = new QStringListModel();
diff -ruN kdenlive-19.12.0/src/utils/thumbnailcache.cpp "kdenlive-19.12.0 patched/src/utils/thumbnailcache.cpp"
--- kdenlive-19.12.0/src/utils/thumbnailcache.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/utils/thumbnailcache.cpp"	2019-12-26 20:22:39.229262000 +0000
@@ -192,10 +192,10 @@
             } else {
                 m_storedVolatile[binId].push_back(pos);
             }
-            m_volatileCache->insert(key, img, (int)img.sizeInBytes());
+            m_volatileCache->insert(key, img, (int)img.bytesPerLine() * img.height());
         }
     } else {
-        m_volatileCache->insert(key, img, (int)img.sizeInBytes());
+        m_volatileCache->insert(key, img, (int)img.bytesPerLine() * img.height());
         m_storedVolatile[binId].push_back(pos);
     }
 }
diff -ruN kdenlive-19.12.0/src/widgets/dragvalue.cpp "kdenlive-19.12.0 patched/src/widgets/dragvalue.cpp"
--- kdenlive-19.12.0/src/widgets/dragvalue.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/src/widgets/dragvalue.cpp"	2019-12-26 20:25:04.561855000 +0000
@@ -419,7 +419,7 @@
         setRange(0, range);
         QSize sh;
         const QFontMetrics &fm = fontMetrics();
-        sh.setWidth(fm.horizontalAdvance(QLatin1Char(' ') + label + QLatin1Char(' ')));
+        sh.setWidth(fm.width(QLatin1Char(' ') + label + QLatin1Char(' ')));
         setMaximumWidth(sh.width());
         setObjectName(QStringLiteral("dragOnly"));
     }
diff -ruN kdenlive-19.12.0/thumbnailer/mltpreview.cpp "kdenlive-19.12.0 patched/thumbnailer/mltpreview.cpp"
--- kdenlive-19.12.0/thumbnailer/mltpreview.cpp	2019-12-08 20:52:13.000000000 +0000
+++ "kdenlive-19.12.0 patched/thumbnailer/mltpreview.cpp"	2019-12-26 20:21:14.020917000 +0000
@@ -115,7 +115,7 @@
     }
     uint delta = 0;
     uint avg = 0;
-    uint bytes = image.sizeInBytes();
+    uint bytes = image.bytesPerLine() * image.height();
     uint STEPS = bytes / 2;
     if (STEPS < 1) {
         return 0;
Comment 1 Vincent PINON 2020-01-12 22:58:39 UTC
Hello

Many thanks for your contribution, and sorry for the long delay to handle it.
I'm currently in the process of uploading dependencies & 19.12.1 with your patch to the ppa.
Comment 2 Vincent PINON 2020-01-12 23:29:42 UTC
*** Bug 414165 has been marked as a duplicate of this bug. ***
Comment 3 Justin Zobel 2020-11-13 03:21:19 UTC
(In reply to Vincent PINON from comment #1)
> Hello
> 
> Many thanks for your contribution, and sorry for the long delay to handle it.
> I'm currently in the process of uploading dependencies & 19.12.1 with your
> patch to the ppa.

Was this finalised, can it now be marked as resolved?
Comment 4 Vincent PINON 2020-11-13 21:10:18 UTC
Sorry with this patch kdenlive was compiling but not working properly, so I removed the bianries from the ppa after recieving several complains shortly after publication