Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package shotcut for openSUSE:Factory checked 
in at 2021-04-08 21:32:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shotcut (Old)
 and      /work/SRC/openSUSE:Factory/.shotcut.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "shotcut"

Thu Apr  8 21:32:06 2021 rev:41 rq:883545 version:21.03.21

Changes:
--------
--- /work/SRC/openSUSE:Factory/shotcut/shotcut.changes  2021-03-02 
12:46:37.420416047 +0100
+++ /work/SRC/openSUSE:Factory/.shotcut.new.2401/shotcut.changes        
2021-04-08 21:32:12.767810237 +0200
@@ -1,0 +2,14 @@
+Wed Apr  7 07:49:42 UTC 2021 - Michael Vetter <mvet...@suse.com>
+
+- Update to 21.03.21:
+  * Fixed <tractor> and blank considered missing and blocking export (broke in 
v21.01).
+  * Added an Ignore button to the missing files error dialog in Export.
+  * Fixed black frames appearing in Slideshow Generator (broke in v20.02).
+  * Fixed being able to use mouse wheel over Timeline and Keyframes zoom 
sliders (broke in v20.01).
+  * Improved sound quality with small changes in Speed with Pitch Compensation 
or Pitch audio filter (broke in v20.11).
+  * Fixed the Timeline clip audio waveform incorrect after adding transition 
by dragging the clip left.
+  * Fixed repairing a project file opened using a network path on Windows.
+  * Fixed writing a raw FLAC file does not set its duration.
+  * Fixed an elided file name in clip Properties can become the clip name.
+
+-------------------------------------------------------------------

Old:
----
  shotcut-21.02.27.tar.gz

New:
----
  shotcut-21.03.21.tar.gz

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

Other differences:
------------------
++++++ shotcut.spec ++++++
--- /var/tmp/diff_new_pack.mlDPGE/_old  2021-04-08 21:32:13.379810909 +0200
+++ /var/tmp/diff_new_pack.mlDPGE/_new  2021-04-08 21:32:13.383810914 +0200
@@ -25,7 +25,7 @@
 %global __requires_exclude 
qmlimport\\((Shotcut\\.Controls|org\\.shotcut\\.qml).*
 
 Name:           shotcut
-Version:        21.02.27
+Version:        21.03.21
 Release:        0
 # This package creates a build time version from the current date and uses it 
to check
 # for updates. See patch1 and prep/build section. For reproducible builds.

++++++ shotcut-21.02.27.tar.gz -> shotcut-21.03.21.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/shotcut-21.02.27/.github/workflows/build-linux-unstable.yml 
new/shotcut-21.03.21/.github/workflows/build-linux-unstable.yml
--- old/shotcut-21.02.27/.github/workflows/build-linux-unstable.yml     
2021-02-27 03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/.github/workflows/build-linux-unstable.yml     
2021-03-19 04:39:38.000000000 +0100
@@ -11,7 +11,7 @@
 
 jobs:
   build:
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-18.04
 
     steps:
       - uses: actions/checkout@v2
@@ -76,7 +76,7 @@
             put packaging/linux/out/*.AppImage 
s3://builds.us.meltytech/shotcut/
 
       - name: Install Snapcraft
-        uses: samuelmeuli/action-snapcraft@v1
+        uses: samuelmeuli/action-snapcraft@v1.2.0
         with:
           snapcraft_token: ${{ secrets.SNAPCRAFT_TOKEN }}
           use_lxd: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/.github/workflows/build-linux.yml 
new/shotcut-21.03.21/.github/workflows/build-linux.yml
--- old/shotcut-21.02.27/.github/workflows/build-linux.yml      2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/.github/workflows/build-linux.yml      2021-03-19 
04:39:38.000000000 +0100
@@ -11,7 +11,7 @@
 
 jobs:
   build:
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-18.04
 
     steps:
       - uses: actions/checkout@v2
@@ -72,7 +72,7 @@
             put packaging/linux/out/*.AppImage 
s3://builds.us.meltytech/shotcut/
 
       - name: Install Snapcraft
-        uses: samuelmeuli/action-snapcraft@v1
+        uses: samuelmeuli/action-snapcraft@v1.2.0
         with:
           snapcraft_token: ${{ secrets.SNAPCRAFT_TOKEN }}
           use_lxd: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/shotcut-21.02.27/.github/workflows/build-sdk-windows-unstable.yml 
new/shotcut-21.03.21/.github/workflows/build-sdk-windows-unstable.yml
--- old/shotcut-21.02.27/.github/workflows/build-sdk-windows-unstable.yml       
2021-02-27 03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/.github/workflows/build-sdk-windows-unstable.yml       
2021-03-19 04:39:38.000000000 +0100
@@ -1,4 +1,4 @@
-name: build-shotcut-sdk-windows
+name: build-shotcut-sdk-windows-unstable
 
 on:
   workflow_dispatch:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/scripts/build-shotcut-msys2.sh 
new/shotcut-21.03.21/scripts/build-shotcut-msys2.sh
--- old/shotcut-21.02.27/scripts/build-shotcut-msys2.sh 2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/scripts/build-shotcut-msys2.sh 2021-03-19 
04:39:38.000000000 +0100
@@ -42,8 +42,8 @@
 SHOTCUT_REVISION=
 SHOTCUT_VERSION=$(date '+%y.%m.%d')
 ENABLE_BIGSH0T=1
-BIGSH0T_HEAD=1
-BIGSH0T_REVISION=
+BIGSH0T_HEAD=0
+BIGSH0T_REVISION="5fad6d3b5963ce69141e9debcc3b733b84a0842d"
 ENABLE_ZIMG=1
 ZIMG_HEAD=1
 ZIMG_REVISION=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/scripts/build-shotcut.sh 
new/shotcut-21.03.21/scripts/build-shotcut.sh
--- old/shotcut-21.02.27/scripts/build-shotcut.sh       2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/scripts/build-shotcut.sh       2021-03-19 
04:39:38.000000000 +0100
@@ -68,11 +68,11 @@
 SHOTCUT_REVISION=
 SHOTCUT_VERSION=$(date '+%y.%m.%d')
 ENABLE_RUBBERBAND=1
-RUBBERBAND_HEAD=1
-RUBBERBAND_REVISION=
+RUBBERBAND_HEAD=0
+RUBBERBAND_REVISION="v1.9"
 ENABLE_BIGSH0T=1
-BIGSH0T_HEAD=1
-BIGSH0T_REVISION=
+BIGSH0T_HEAD=0
+BIGSH0T_REVISION="5fad6d3b5963ce69141e9debcc3b733b84a0842d"
 ENABLE_ZIMG=1
 ZIMG_HEAD=1
 ZIMG_REVISION=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/shotcut-21.02.27/src/dialogs/multifileexportdialog.cpp 
new/shotcut-21.03.21/src/dialogs/multifileexportdialog.cpp
--- old/shotcut-21.02.27/src/dialogs/multifileexportdialog.cpp  2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/dialogs/multifileexportdialog.cpp  2021-03-19 
04:39:38.000000000 +0100
@@ -58,7 +58,7 @@
     // Directory
     glayout->addWidget(new QLabel(tr("Directory")), col, 0, Qt::AlignRight);
     QHBoxLayout* dirHbox = new QHBoxLayout();
-    m_dir = new QLineEdit(directory);
+    m_dir = new QLineEdit(QDir::toNativeSeparators(directory));
     m_dir->setReadOnly(true);
     QPushButton* browseButton = new QPushButton(this);
     browseButton->setIcon(QIcon::fromTheme("document-open", 
QIcon(":/icons/oxygen/32x32/actions/document-open.png")));
@@ -209,7 +209,7 @@
         filename = appendField(filename, m_field2, i);
         filename = appendField(filename, m_field3, i);
         if (!filename.isEmpty()) {
-            filename = m_dir->text() + "/" + filename + "." + m_ext->text();
+            filename = m_dir->text() + QDir::separator() + filename + "." + 
m_ext->text();
             m_stringList << filename;
         }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/docks/encodedock.cpp 
new/shotcut-21.03.21/src/docks/encodedock.cpp
--- old/shotcut-21.02.27/src/docks/encodedock.cpp       2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/docks/encodedock.cpp       2021-03-19 
04:39:38.000000000 +0100
@@ -392,10 +392,10 @@
     ui->fromCombo->clear();
     if (MAIN.isMultitrackValid())
         ui->fromCombo->addItem(tr("Timeline"), "timeline");
-    if (MAIN.playlist() && MAIN.playlist()->count() > 0)
+    if (MAIN.playlist() && MAIN.playlist()->count() > 0) {
         ui->fromCombo->addItem(tr("Playlist"), "playlist");
-    if (MAIN.playlist() && MAIN.playlist()->count() > 1)
         ui->fromCombo->addItem(tr("Each Playlist Item"), "batch");
+    }
     if (MLT.isClip() && MLT.producer() && MLT.producer()->is_valid()
             && qstrcmp("_hide", MLT.producer()->get("resource"))) {
         ui->fromCombo->addItem(tr("Source"), "clip");
@@ -1119,7 +1119,7 @@
             &&  ui->dualPassCheckbox->isEnabled() && 
ui->dualPassCheckbox->isChecked())? 1 : 0;
     if (!service) {
         // For each playlist item.
-        if (MAIN.playlist() && MAIN.playlist()->count() > 1) {
+        if (MAIN.playlist() && MAIN.playlist()->count() > 0) {
             int n = MAIN.playlist()->count();
             for (int i = 0; i < n; i++) {
                 QScopedPointer<Mlt::ClipInfo> 
info(MAIN.playlist()->clip_info(i));
@@ -1406,7 +1406,7 @@
     if (ui->fromCombo->currentData().toString() == "batch") {
         caption = tr("Export Files");
         MultiFileExportDialog dialog(tr("Export Each Playlist Item"), 
MAIN.playlist(),
-            QFileInfo(directory).absolutePath(), 
QFileInfo(MAIN.fileName()).completeBaseName(), m_extension, this);
+            QDir(directory).absolutePath(), 
QFileInfo(MAIN.fileName()).completeBaseName(), m_extension, this);
         if (dialog.exec() != QDialog::Accepted) {
             return;
         }
@@ -2091,11 +2091,13 @@
            tr("Your project is missing some files.\n\n"
               "Save your project, close it, and reopen it.\n"
               "Shotcut will attempt to repair your project."),
-           QMessageBox::Ok,
+           QMessageBox::Ok | QMessageBox::Ignore,
            this);
         dialog.setWindowModality(QmlApplication::dialogModality());
         dialog.setDefaultButton(QMessageBox::Ok);
-        dialog.exec();
+        if (QMessageBox::Ignore == dialog.exec()) {
+            return false;
+        }
         return true;
     }
     return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/docks/timelinedock.cpp 
new/shotcut-21.03.21/src/docks/timelinedock.cpp
--- old/shotcut-21.02.27/src/docks/timelinedock.cpp     2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/docks/timelinedock.cpp     2021-03-19 
04:39:38.000000000 +0100
@@ -1259,8 +1259,10 @@
         if (clipIndex >= 0)
             m_model.removeClip(trackIndex, clipIndex, 
Settings.timelineRippleAllTracks());
     }
+    disconnect(&m_model, &MultitrackModel::appended, this, 
&TimelineDock::selectClip);
     MAIN.undoStack()->push(
         new Timeline::AppendCommand(m_model, trackIndex, MLT.XML(playlist), 
skipProxy));
+    connect(&m_model, &MultitrackModel::appended, this, 
&TimelineDock::selectClip, Qt::QueuedConnection);
 }
 
 void TimelineDock::splitClip(int trackIndex, int clipIndex)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/jobs/ffprobejob.cpp 
new/shotcut-21.03.21/src/jobs/ffprobejob.cpp
--- old/shotcut-21.02.27/src/jobs/ffprobejob.cpp        2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/jobs/ffprobejob.cpp        2021-03-19 
04:39:38.000000000 +0100
@@ -43,7 +43,7 @@
     QString shotcutPath = qApp->applicationDirPath();
     QFileInfo ffprobePath(shotcutPath, "ffprobe");
     setReadChannel(QProcess::StandardOutput);
-    LOG_DEBUG() << ffprobePath.absoluteFilePath() << m_args;
+    LOG_DEBUG() << ffprobePath.absoluteFilePath()  + " " + m_args.join(' ');
     QProcess::start(ffprobePath.absoluteFilePath(), m_args);
     AbstractJob::start();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/jobs/meltjob.cpp 
new/shotcut-21.03.21/src/jobs/meltjob.cpp
--- old/shotcut-21.02.27/src/jobs/meltjob.cpp   2021-02-27 03:57:47.000000000 
+0100
+++ new/shotcut-21.03.21/src/jobs/meltjob.cpp   2021-03-19 04:39:38.000000000 
+0100
@@ -108,7 +108,7 @@
     } else {
         args << QUrl::toPercentEncoding(xmlPath());
     }
-    LOG_DEBUG() << meltPath.absoluteFilePath() << args;
+    LOG_DEBUG() << meltPath.absoluteFilePath()  + " " + args.join(' ');
 #ifndef Q_OS_MAC
     QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
     // These environment variables fix rich text rendering for high DPI
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/mainwindow.cpp 
new/shotcut-21.03.21/src/mainwindow.cpp
--- old/shotcut-21.02.27/src/mainwindow.cpp     2021-02-27 03:57:47.000000000 
+0100
+++ new/shotcut-21.03.21/src/mainwindow.cpp     2021-03-19 04:39:38.000000000 
+0100
@@ -1017,11 +1017,10 @@
         .arg(fi.completeBaseName()).arg(tr("Repaired")).arg(fi.suffix()));
     repaired.open(QIODevice::WriteOnly);
     LOG_INFO() << "repaired MLT XML file name" << repaired.fileName();
-    QFile temp(checker.tempFileName());
-    if (temp.exists() && repaired.exists()) {
-        temp.open(QIODevice::ReadOnly);
-        QByteArray xml = temp.readAll();
-        temp.close();
+    if (checker.tempFile().exists()) {
+        checker.tempFile().open();
+        QByteArray xml = checker.tempFile().readAll();
+        checker.tempFile().close();
 
         qint64 n = repaired.write(xml);
         while (n > 0 && n < xml.size()) {
@@ -1393,7 +1392,7 @@
         checker.setLocale();
         LOG_INFO() << "decimal point" << MLT.decimalPoint();
     }
-    QString urlToOpen = checker.isUpdated()? checker.tempFileName() : url;
+    QString urlToOpen = checker.isUpdated()? checker.tempFile().fileName() : 
url;
     if (!MLT.open(QDir::fromNativeSeparators(urlToOpen), 
QDir::fromNativeSeparators(url))
             && MLT.producer() && MLT.producer()->is_valid()) {
         Mlt::Properties* props = const_cast<Mlt::Properties*>(properties);
@@ -4059,6 +4058,7 @@
 
 void MainWindow::on_actionExportFrame_triggered()
 {
+    if (!MLT.producer() || !MLT.producer()->is_valid()) return;
     filterController()->setCurrentFilter(QmlFilter::DeselectCurrentFilter);
     Mlt::GLWidget* glw = qobject_cast<Mlt::GLWidget*>(MLT.videoWidget());
     connect(glw, SIGNAL(imageReady()), SLOT(onGLWidgetImageReady()));
@@ -4071,8 +4071,8 @@
 {
     Mlt::GLWidget* glw = qobject_cast<Mlt::GLWidget*>(MLT.videoWidget());
     QImage image = glw->image();
+    disconnect(glw, SIGNAL(imageReady()), this, nullptr);
     if (Settings.playerGPU() || Settings.playerPreviewScale()) {
-        disconnect(glw, SIGNAL(imageReady()), this, 0);
         MLT.setPreviewScale(Settings.playerPreviewScale());
     }
     if (!image.isNull()) {
@@ -4642,7 +4642,7 @@
             }
             if (checker.isUpdated()) {
                 QFile::remove(fileName);
-                fileName = checker.tempFileName();
+                fileName = checker.tempFile().fileName();
             }
 
             // Open the temporary file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/mltxmlchecker.cpp 
new/shotcut-21.03.21/src/mltxmlchecker.cpp
--- old/shotcut-21.02.27/src/mltxmlchecker.cpp  2021-02-27 03:57:47.000000000 
+0100
+++ new/shotcut-21.03.21/src/mltxmlchecker.cpp  2021-03-19 04:39:38.000000000 
+0100
@@ -450,6 +450,10 @@
     if (fileName != "vidstab.trf")
     // not the generic <producer> resource
     if (fileName != "<producer>")
+    // not an invalid <tractor>
+    if (fileName != "<tractor>")
+    // not an invalid blank
+    if (mlt_service != "blank" || fileName != "blank")
     // not a URL
     if (!m_resource.info.filePath().isEmpty() && 
!isNetworkResource(m_resource.info.filePath()))
     // not an image sequence
@@ -620,11 +624,16 @@
             m_isUpdated = true;
             for (auto& p : properties) {
                 if (p.first == "resource") {
-                    if (QFileInfo(p.second).isRelative()) {
+                    auto pathName = p.second;
+                    auto plain = QLatin1String("plain:");
+                    if (pathName.startsWith(plain)) {
+                        pathName = pathName.mid(plain.size());
+                    }
+                    if (QFileInfo(pathName).isRelative()) {
                         QDir 
projectDir(QFileInfo(m_tempFile->fileName()).dir());
-                        p.second = projectDir.filePath(p.second);
+                        pathName = projectDir.filePath(pathName);
                     }
-                    QFile file(p.second);
+                    QFile file(pathName);
                     if (file.open(QIODevice::ReadOnly)) {
                         p.first = "html";
                         p.second = QString::fromUtf8(file.readAll());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/mltxmlchecker.h 
new/shotcut-21.03.21/src/mltxmlchecker.h
--- old/shotcut-21.02.27/src/mltxmlchecker.h    2021-02-27 03:57:47.000000000 
+0100
+++ new/shotcut-21.03.21/src/mltxmlchecker.h    2021-03-19 04:39:38.000000000 
+0100
@@ -52,7 +52,7 @@
     bool hasEffects() const { return m_hasEffects; }
     bool isCorrected() const { return m_isCorrected; }
     bool isUpdated() const { return m_isUpdated; }
-    QString tempFileName() const { return m_tempFile->fileName(); }
+    QTemporaryFile& tempFile() const { return *m_tempFile; }
     QStandardItemModel& unlinkedFilesModel() { return m_unlinkedFilesModel; }
     void setLocale();
     bool usesLocale() const { return m_usesLocale; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/models/multitrackmodel.cpp 
new/shotcut-21.03.21/src/models/multitrackmodel.cpp
--- old/shotcut-21.02.27/src/models/multitrackmodel.cpp 2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/models/multitrackmodel.cpp 2021-03-19 
04:39:38.000000000 +0100
@@ -1612,6 +1612,7 @@
             roles << StartRole;
             roles << InPointRole;
             roles << DurationRole;
+            roles << AudioLevelsRole;
             emit dataChanged(modelIndex, modelIndex, roles);
             emit modified();
             return targetIndex + 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/proxymanager.cpp 
new/shotcut-21.03.21/src/proxymanager.cpp
--- old/shotcut-21.02.27/src/proxymanager.cpp   2021-02-27 03:57:47.000000000 
+0100
+++ new/shotcut-21.03.21/src/proxymanager.cpp   2021-03-19 04:39:38.000000000 
+0100
@@ -274,10 +274,7 @@
             if (p.first == "resource") {
                 // Convert to relative
                 if (!root.isEmpty() && newResource.startsWith(root)) {
-                    if (root.endsWith('/'))
-                        newResource = newResource.mid(root.size());
-                    else
-                        newResource = newResource.mid(root.size() + 1);
+                    newResource = newResource.mid(root.size());
                 }
                 if (service == "timewarp") {
                     newProperties << MltProperty(p.first, 
QString("%1:%2").arg(speed).arg(newResource));
@@ -304,7 +301,7 @@
     properties.clear();
 }
 
-bool ProxyManager::filterXML(QString& xmlString, const QString& root)
+bool ProxyManager::filterXML(QString& xmlString, QString root)
 {
     QString output;
     QXmlStreamReader xml(xmlString);
@@ -312,6 +309,12 @@
     bool isPropertyElement = false;
     QVector<MltProperty> properties;
 
+    // This prevents processProperties() from mis-matching a resource path 
that begins with root
+    // when it is converting to relative paths.
+    if (!root.isEmpty() && root.endsWith('/')) {
+        root.append('/');
+    }
+
     newXml.setAutoFormatting(true);
     newXml.setAutoFormattingIndent(2);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/proxymanager.h 
new/shotcut-21.03.21/src/proxymanager.h
--- old/shotcut-21.02.27/src/proxymanager.h     2021-02-27 03:57:47.000000000 
+0100
+++ new/shotcut-21.03.21/src/proxymanager.h     2021-03-19 04:39:38.000000000 
+0100
@@ -45,7 +45,7 @@
     static void generateVideoProxy(Mlt::Producer& producer, bool fullRange,
         ScanMode scanMode = Automatic, const QPoint& aspectRatio = QPoint(), 
bool replace = true);
     static void generateImageProxy(Mlt::Producer& producer, bool replace = 
true);
-    static bool filterXML(QString& xml, const QString& root);
+    static bool filterXML(QString& xml, QString root);
     static bool fileExists(Mlt::Producer& producer);
     static bool filePending(Mlt::Producer& producer);
     static bool isValidImage(Mlt::Producer& producer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/shotcut-21.02.27/src/qml/views/keyframes/ZoomSlider.qml 
new/shotcut-21.03.21/src/qml/views/keyframes/ZoomSlider.qml
--- old/shotcut-21.02.27/src/qml/views/keyframes/ZoomSlider.qml 2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/qml/views/keyframes/ZoomSlider.qml 2021-03-19 
04:39:38.000000000 +0100
@@ -41,6 +41,7 @@
         to: 3.0
         value: 1
         focusPolicy: Qt.NoFocus
+        wheelEnabled: true
         function setScaleFactor() {
             timeScale = Math.pow(value, 3) + 0.01
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/shotcut-21.02.27/src/qml/views/timeline/ZoomSlider.qml 
new/shotcut-21.03.21/src/qml/views/timeline/ZoomSlider.qml
--- old/shotcut-21.02.27/src/qml/views/timeline/ZoomSlider.qml  2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/qml/views/timeline/ZoomSlider.qml  2021-03-19 
04:39:38.000000000 +0100
@@ -41,6 +41,7 @@
         to: 3.0
         value: 1
         focusPolicy: Qt.NoFocus
+        wheelEnabled: true
         function setScaleFactor() {
             multitrack.scaleFactor = Math.pow(value, 3) + 0.01
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/shotcut-21.02.27/src/util.cpp 
new/shotcut-21.03.21/src/util.cpp
--- old/shotcut-21.02.27/src/util.cpp   2021-02-27 03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/util.cpp   2021-03-19 04:39:38.000000000 +0100
@@ -480,6 +480,19 @@
         }
     }
     return false;
+#elif defined(__FreeBSD__)
+    QProcess p;
+    p.start("sysctl -n hw.usermem");
+    p.waitForFinished();
+    auto lines = p.readAllStandardOutput();
+    p.close();
+    bool ok = false;
+    auto availableKB = lines.toUInt(&ok);
+    if (ok) {
+           return availableKB < kLowMemoryThresholdKB;
+    }
+
+    return false;
 #elif defined(Q_OS_LINUX)
     unsigned int availableKB = UINT_MAX;
     QFile meminfo("/proc/meminfo");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/shotcut-21.02.27/src/widgets/avformatproducerwidget.cpp 
new/shotcut-21.03.21/src/widgets/avformatproducerwidget.cpp
--- old/shotcut-21.02.27/src/widgets/avformatproducerwidget.cpp 2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/widgets/avformatproducerwidget.cpp 2021-03-19 
04:39:38.000000000 +0100
@@ -90,7 +90,6 @@
     , ui(new Ui::AvformatProducerWidget)
     , m_defaultDuration(-1)
     , m_recalcDuration(true)
-    , m_userDefinedCaption(false)
 {
     ui->setupUi(this);
     ui->timelineDurationText->setFixedWidth(ui->durationSpinBox->width());
@@ -294,15 +293,9 @@
         else
             caption = name;
         m_producer->set(kShotcutCaptionProperty, caption.toUtf8().constData());
-        
ui->filenameLabel->setText(ui->filenameLabel->fontMetrics().elidedText(caption, 
Qt::ElideLeft, width() - 30));
-        m_userDefinedCaption = false;
-    } else {
-        
ui->filenameLabel->setText(ui->filenameLabel->fontMetrics().elidedText(caption, 
Qt::ElideLeft, width() - 30));
-        auto computedCaption = name;
-        if (warpSpeed != 1.0)
-            computedCaption = QString("%1 (%2x)").arg(name).arg(warpSpeed);
-        m_userDefinedCaption = caption != computedCaption;
     }
+    ui->filenameLabel->setText(caption);
+    ui->filenameLabel->setCursorPosition(caption.length());
     ui->filenameLabel->setToolTip(resource);
     
ui->notesTextEdit->setPlainText(QString::fromUtf8(m_producer->get(kCommentProperty)));
     ui->durationSpinBox->setValue(m_producer->get_length());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/shotcut-21.02.27/src/widgets/avformatproducerwidget.h 
new/shotcut-21.03.21/src/widgets/avformatproducerwidget.h
--- old/shotcut-21.02.27/src/widgets/avformatproducerwidget.h   2021-02-27 
03:57:47.000000000 +0100
+++ new/shotcut-21.03.21/src/widgets/avformatproducerwidget.h   2021-03-19 
04:39:38.000000000 +0100
@@ -124,7 +124,6 @@
     int m_defaultDuration;
     bool m_recalcDuration;
     bool m_askToConvert;
-    bool m_userDefinedCaption;
 
     void reopen(Mlt::Producer* p);
     void recreateProducer();

Reply via email to