Hello Paul,
Am 12.04.2023 um 21:09 schrieb Paul Gevers:
Control: tags -1 moreinfo
Hi Patrick
On 27-03-2023 17:06, Patrick Matthäi wrote:
as mentioned in my unblock #1033554 for mlt I were a bit too stupid
to read the
freeze policy correctly. I would like to see kdenlive 22.12.3-2 in
bookworm,
it just fixes some upstream bugs and two Debian bugs (missing
dependencies).
Can you please elaborate? It appears that this is a bug fix only
release, can you confirm? What's the upstream policy for such
releases? I didn't spot any upstream changelog, can you describe what
the changes are supposed to achieve?
Yes, normaly the minor versions just contains bugfixes. Here are the
release notes: https://kdenlive.org/de/2023/03/kdenlive-22-12-3/
The debdiff is - except of the translation files - small.
Might have been nice to filter them out :).
Attached :)
Fixing annoying upstream bugs and missing dependencies in the packaging.
Any pointers to which bugs those are?
* Fix subtitle scrolling. Commit.
<http://commits.kde.org/kdenlive/bdbf0bf5122ae5fce7334203a7d990dd7032a129>
* Fix language model combobox too small. Commit.
<http://commits.kde.org/kdenlive/7432631c675d034bfbf266443cc2f7ab6774128b>Fixes
bug #465787 <https://bugs.kde.org/465787>
* Scroll timeline when moving a subtitle. Related to #1634. Commit.
<http://commits.kde.org/kdenlive/b53e78e697793e8fff51dc5ef7cc8eb3584147df>
* Fix subtitles overlap on import. Commit.
<http://commits.kde.org/kdenlive/ffda87a8de2bed6812edc23cc9536a01d3d58f0c>
* Fix subtitle move regression. Commit.
<http://commits.kde.org/kdenlive/cbc0201a7179834dc63a517919238400bb233d5b>
* Fix subtitle offset on group move. Commit.
<http://commits.kde.org/kdenlive/56d4646ec9ac56b09c64a7cae39fda98848e927e>
* Fix subtitles snapping. Commit.
<http://commits.kde.org/kdenlive/c3cfcd9e0254b2b74a5b58d49591bbc08d4c719c>
* Fix compilation. Commit.
<http://commits.kde.org/kdenlive/7e2421b2aa82e2658a31291f0a769543e3cddada>
* Fix crash and offset when moving a group with subtitle. Commit.
<http://commits.kde.org/kdenlive/998ddfa5e0471b7dba34ebb16909931cae3d7922>
[ Risks ]
If mlt is not allowed to enter bookworm the "risk" would be that I
would like
to request a upload of this kdenlive version directly to testing?
You may have guessed from the silence (see also our FAQ [1]) that
we're not enthusiastic about mlt. I'm currently leaning towards the
tpu route for kdenlive.
Paul
[1] https://release.debian.org/testing/FAQ.html
Yes especially for the mlt case it is understandable for me.
--
/*
Mit freundlichem Gruß / With kind regards,
Patrick Matthäi
GNU/Linux Debian Developer
Blog:https://www.linux-dev.org/
E-Mail:pmatth...@debian.org
patr...@linux-dev.org
*/
diff -Nru kdenlive-22.12.2/debian/changelog kdenlive-22.12.3/debian/changelog
--- kdenlive-22.12.2/debian/changelog 2023-02-03 09:49:23.000000000 +0100
+++ kdenlive-22.12.3/debian/changelog 2023-03-10 09:43:45.000000000 +0100
@@ -1,3 +1,19 @@
+kdenlive (22.12.3-2) unstable; urgency=medium
+
+ * Add missing dependency on qml-module-org-kde-newstuff.
+ Closes: #1032470
+
+ -- Patrick Matthäi <pmatth...@debian.org> Fri, 10 Mar 2023 09:43:45 +0100
+
+kdenlive (22.12.3-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Add dependency on qml-module-org-kde-kcm.
+ Closes: #1030782
+ * Update signing-key.asc.
+
+ -- Patrick Matthäi <pmatth...@debian.org> Tue, 07 Mar 2023 09:13:27 +0100
+
kdenlive (22.12.2-1) unstable; urgency=medium
* New upstream release.
diff -Nru kdenlive-22.12.2/debian/control kdenlive-22.12.3/debian/control
--- kdenlive-22.12.2/debian/control 2023-02-03 09:49:23.000000000 +0100
+++ kdenlive-22.12.3/debian/control 2023-03-10 09:43:45.000000000 +0100
@@ -60,6 +60,8 @@
qml-module-qtquick-dialogs,
qml-module-qtquick-layouts,
qml-module-qtquick-window2,
+ qml-module-org-kde-kcm,
+ qml-module-org-kde-newstuff,
breeze,
breeze-icon-theme (>= 4:5.83.0),
kinit,
diff -Nru kdenlive-22.12.2/debian/upstream/signing-key.asc
kdenlive-22.12.3/debian/upstream/signing-key.asc
--- kdenlive-22.12.2/debian/upstream/signing-key.asc 2023-02-03
09:49:23.000000000 +0100
+++ kdenlive-22.12.3/debian/upstream/signing-key.asc 2023-03-10
09:43:45.000000000 +0100
@@ -11,19 +11,147 @@
P0B3l1E4Ccw1ne2/O1BdsnXeUaI3YVYz9aZkVlL7ywda3h/goRKxc1b18bmgu/Ed
QmcTEMj29B3szMpetWNt1ZbaMJzfDw+z+SiQ3toOTUiqMuWq+l+JK0dVUzOvpGhG
VHv5m9CtJFP671ivEc4it0hJRH5kdW9aNbeG0g9TxHQqQMJIpeLvRq5WKwARAQAB
-tCFBbGJlcnQgQXN0YWxzIENpZCA8YWFjaWRAa2RlLm9yZz6JAlQEEwEIAD4CGwMF
-CwkIBwIGFQgJCgsCBBYCAwECHgECF4AWIQTKJixsg95NL7KKMyo6ak24Oeqm1wUC
-Yv52/wUJDRPXIAAKCRA6ak24Oeqm1zksD/95HdsLbCMlQWImftxAY0wUNVLTvt7+
-9rjpt/unyCqdtD9uS7J6Tfldmd2zPxIJFxpDx3AK5gJGAl8hBuARBTG6mzDSyohy
-0ldLAroab2zKn/hGfnAlxZtsa8DGmNhKKb8zEyKraM2grdc2bCF/sQ5yKmC0THAQ
-wMBjLHoszKYV+y/R34o1nZZaufPrNWMPd3hmiyCl5vzmRDQJatmkDvueYyPMt3Ff
-JovWtixWFHsdnQ72l2kelkhpNc51RpgZ6lCm9ghWWTLvOEPhR5tpYQ+CykPatmzh
-LXUthnfTCphQNf6nX7jjllq7Sd4MaTAmnj0yfoTyHjdqPAYv26dMbBlR2lAxXz2S
-oyQZVHgGQeEW4nll6Xej25d1yKnOXwO4g3RBt/dv4Q8IQKHyDZY5hJotg2OrA1hL
-9zsb+6lKjMr0UEJa8lhhwSKhlVzD0fdrOaP7pJUfjyd0CrPrlrgdNoo4eV0bXV5k
-uFKfCgmwRHKWyJKDc1CmnJReFMJQGfFMiuOyvYhVhUxNBzS7sV3IF28r1n1iKN9e
-GSgcBjAVW2LKaq0ThW1QXWcWT7vudcXjbq9kQuOTh7fBEM47wHhyqhLP5TOIBBaI
-xW2x87Ag4i2HKUM2PsV+j6rzMwiCfzINUS+IEfUTX52Mc3JUKCqOrqVlNJ1d/4+m
-kshlzwQA2oFzEQ==
-=rmmH
+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
+hC+sXh0NMOq4pxE=
+=Wqdv
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBFlRpEYBCACecX3F5xzF6wzeXiuBAuHq74bVHON7I89U+ROloEWYUYMRNTz2
+l1BkNHWRTTqfmPO7LhMY6g4gOPeQVCwgTGVjI8bn6sJd3SFdeiRvvaFBpmn7SjBd
+s1rkKKJIjeMUl1w8dFnmf22V0PnhSSepmNwmd8RQnl1umCTSihDJydGxixw6ZNhr
+4tzbn+Rfadybli61H2hc6/JJHe91i+V1ltgkHwGcs6MUCqXgSL0dUIJs49gSrla0
+gkrcJYF5MWyGxKlajbCjkMCJtN+8bhEmpc4Oe8NZ33arEWnlyh1RVgi5p3RTNApY
+Pxctcg57ExczbKn9R8VLYmPJ7Di3gX0cmotrABEBAAG0HkNocmlzdG9waCBGZWNr
+IDxjZmVja0BrZGUub3JnPokBTgQTAQgAOBYhBPIydeS/EK/B32kUptvSzok+LRyH
+BQJZUaRGAhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJENvSzok+LRyHeWcH
+/A1E2d5UL2oHsrLIolIiWMmheRorcac+0Hgll1mMUQ5tfPH+LVzgrlMMG7g1Amky
+Hk1qZ5oszrXUg2H/28/cOF/WVlHgQcSGr7aQbHieUivPtZMua+lHUdILC3UV2l1V
+22Zz8HIDl4kxmK6EpoNIOK5Mo550S3e3AKYq5pa/FlckCV9/JoK9+thRCsoAAj3g
+oWwTx9RY5pmLPtklqyC5961Je7KHSIVqapJ/G5DX+yfOC1Psc+vIfyQVqnaefZPW
+dIxXQQhn46i6IRRimw94Gkwca+wslkimt/L/Z7ByZqBsXMyixSQPq+dtSO9CMgr0
+WxTX78wATkTGzh5oSwKCMga5AQ0EWVGkRgEIAMuUnfNfrdx8xn7Jjcm6MGkB/Yep
+XVysrlHxUUS6q7629JdSlVWnQo9GFO927GZClWI9rCGLQMfZZk/jfgKV/nkpLod3
+I51remOg7ohSkwRLAdwJ7xCuNrafhKntFh5/NxuaXxaVIY1muvZbTAsIRyks2jCE
+pUoK43Z8dr4/QPhBstssB8czDME1Tw4r7X+RwjFrQqDItFv6f0BIdEwR462khLEw
+vbXRN1nzs+6Y0foJbJCS3VDZC9scsrrMVMV+OEBF3DXp9ypSWsLnkuBPPIus6Y8G
+j7JvYUBtrUhKL5a7o5G3Te9YhwGgOKVqWlncs6ZLiOV6HnG0BO3xdPcn09cAEQEA
+AYkBNgQYAQgAIBYhBPIydeS/EK/B32kUptvSzok+LRyHBQJZUaRGAhsMAAoJENvS
+zok+LRyHaRMIAI5YaTfGeQDmR08I2LvztOEH/3YF63cNCP/Vp+WAtF/Kr8mMFpFS
+oTHJNMi7p964lHYTTPzPeQzLzV3ayiQjq+DHs6HFmYl73ukzlGGc7KDlyhugQjm6
+AqNtqqXAVykaixnFj8jf2WtQGl1hqpm8GhDRBmZycqMqne4tZokujhtpdC6suRvc
+AB0S+lRZUwrY05k6Nc1A8J8k/lxXXa9KzXNaqKsqppgBZoqKN3zS4146uEjvuLsh
+CarZ/6uUidvP0LBTR7HKye5A9Qdbjlg9qvtR7YF3hqy4g1PRNZWRlsQ1pkCdCTfN
+TA+HYUzK0ESVpY72lWvH49lNg+ufZ1bKvKI=
+=MZJ5
+-----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=PVLg
-----END PGP PUBLIC KEY BLOCK-----
diff -Nru kdenlive-22.12.2/src/bin/model/subtitlemodel.cpp
kdenlive-22.12.3/src/bin/model/subtitlemodel.cpp
--- kdenlive-22.12.2/src/bin/model/subtitlemodel.cpp 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/bin/model/subtitlemodel.cpp 2023-02-27
05:00:53.000000000 +0100
@@ -205,9 +205,9 @@
srtTime = timeLine.split(separator);
if (srtTime.count() > endIndex) {
start = srtTime.at(0);
- startPos = stringtoTime(start)/transformMult;
+ startPos = stringtoTime(start, transformMult);
end = srtTime.at(endIndex);
- endPos = stringtoTime(end)/transformMult;
+ endPos = stringtoTime(end, transformMult);
} else {
continue;
}
@@ -328,9 +328,9 @@
if (dialogue.count() > textIndex) {
// TIME
start = dialogue.at(1);
- startPos = stringtoTime(start)/transformMult;
+ startPos = stringtoTime(start, transformMult);
end = dialogue.at(2);
- endPos = stringtoTime(end)/transformMult;
+ endPos = stringtoTime(end, transformMult);
// Text field is always the last field, since it
can have commas
comment = line.section(",", numEventFields - 1);
// qDebug()<<"Start: "<< start << "End: "<<end <<
comment;
@@ -389,7 +389,7 @@
return m_subtitleFilter->get("av.filename");
}
-GenTime SubtitleModel::stringtoTime(QString &str)
+GenTime SubtitleModel::stringtoTime(QString &str, const double factor)
{
QStringList total, secs;
double hours = 0, mins = 0, seconds = 0, ms = 0;
@@ -419,8 +419,10 @@
}
total_sec = hours * 3600 + mins * 60 + seconds + ms * 0.001;
- pos = GenTime(total_sec);
- return pos;
+ pos = GenTime(total_sec) / factor;
+ // Ensure times are aligned with our project's frames
+ int frames = pos.frames(pCore->getCurrentFps());
+ return GenTime(frames, pCore->getCurrentFps());
}
bool SubtitleModel::addSubtitle(GenTime start, GenTime end, const QString
&str, Fun &undo, Fun &redo, bool updateFilter)
@@ -950,7 +952,6 @@
bool SubtitleModel::moveSubtitle(int subId, GenTime newPos, bool updateModel,
bool updateView)
{
- qDebug() << "Moving Subtitle";
if (m_timeline->m_allSubtitles.count(subId) == 0 || isLocked()) {
return false;
}
diff -Nru kdenlive-22.12.2/src/bin/model/subtitlemodel.hpp
kdenlive-22.12.3/src/bin/model/subtitlemodel.hpp
--- kdenlive-22.12.2/src/bin/model/subtitlemodel.hpp 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/bin/model/subtitlemodel.hpp 2023-02-27
05:00:53.000000000 +0100
@@ -41,7 +41,7 @@
bool addSubtitle(int id, GenTime start, GenTime end, const QString &str,
bool temporary = false, bool updateFilter = true);
bool addSubtitle(GenTime start, GenTime end, const QString &str, Fun
&undo, Fun &redo, bool updateFilter = true);
/** @brief Converts string of time to GenTime */
- GenTime stringtoTime(QString &str);
+ GenTime stringtoTime(QString &str, const double factor = 1.);
/** @brief Return model data item according to the role passed */
QVariant data(const QModelIndex &index, int role) const override;
QHash<int, QByteArray> roleNames() const override; // override the same
function of QAbstractListModel
diff -Nru kdenlive-22.12.2/src/dialogs/textbasededit.cpp
kdenlive-22.12.3/src/dialogs/textbasededit.cpp
--- kdenlive-22.12.2/src/dialogs/textbasededit.cpp 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/dialogs/textbasededit.cpp 2023-02-27
05:00:53.000000000 +0100
@@ -605,6 +605,7 @@
connect(pCore.get(), &Core::voskModelUpdate, this, [&](const QStringList
&models) {
language_box->clear();
language_box->addItems(models);
+
if (models.isEmpty()) {
showMessage(i18n("Please install speech recognition models"),
KMessageWidget::Information, m_voskConfig);
} else {
diff -Nru kdenlive-22.12.2/src/timeline2/model/timelinemodel.cpp
kdenlive-22.12.3/src/timeline2/model/timelinemodel.cpp
--- kdenlive-22.12.2/src/timeline2/model/timelinemodel.cpp 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/timeline2/model/timelinemodel.cpp 2023-02-27
05:00:53.000000000 +0100
@@ -1204,7 +1204,7 @@
return -1;
}
-bool TimelineModel::requestSubtitleMove(int clipId, int position, bool
updateView, bool logUndo, bool invalidateTimeline)
+bool TimelineModel::requestSubtitleMove(int clipId, int position, bool
updateView, bool logUndo, bool finalMove)
{
QWriteLocker locker(&m_lock);
Q_ASSERT(m_allSubtitles.count(clipId) > 0);
@@ -1221,21 +1221,24 @@
}
std::function<bool(void)> undo = []() { return true; };
std::function<bool(void)> redo = []() { return true; };
- bool res = requestSubtitleMove(clipId, position, updateView, logUndo,
logUndo, invalidateTimeline, undo, redo);
+ bool res = requestSubtitleMove(clipId, position, updateView, logUndo,
logUndo, finalMove, undo, redo);
if (res && logUndo) {
PUSH_UNDO(undo, redo, i18n("Move subtitle"));
}
return res;
}
-bool TimelineModel::requestSubtitleMove(int clipId, int position, bool
updateView, bool first, bool last, bool invalidateTimeline, Fun &undo, Fun
&redo)
+bool TimelineModel::requestSubtitleMove(int clipId, int position, bool
updateView, bool first, bool last, bool finalMove, Fun &undo, Fun &redo)
{
- Q_UNUSED(invalidateTimeline)
QWriteLocker locker(&m_lock);
GenTime oldPos = m_allSubtitles.at(clipId);
GenTime newPos(position, pCore->getCurrentFps());
- Fun local_redo = [this, clipId, newPos, last, updateView]() { return
m_subtitleModel->moveSubtitle(clipId, newPos, last, updateView); };
- Fun local_undo = [this, oldPos, clipId, first, updateView]() { return
m_subtitleModel->moveSubtitle(clipId, oldPos, first, updateView); };
+ Fun local_redo = [this, clipId, newPos, reloadSubFile = last && finalMove,
updateView]() {
+ return m_subtitleModel->moveSubtitle(clipId, newPos, reloadSubFile,
updateView);
+ };
+ Fun local_undo = [this, oldPos, clipId, reloadSubFile = first &&
finalMove, updateView]() {
+ return m_subtitleModel->moveSubtitle(clipId, oldPos, reloadSubFile,
updateView);
+ };
bool res = local_redo();
if (res) {
UPDATE_UNDO_REDO(local_redo, local_undo, undo, redo);
@@ -1319,16 +1322,10 @@
all_items = m_groups->getLeaves(groupId);
}
for (int current_clipId : all_items) {
- if (getItemTrackId(current_clipId) != -1) {
- if (isClip(current_clipId)) {
- m_allClips[current_clipId]->allSnaps(ignored_pts, offset);
- } else if (isComposition(current_clipId)) {
- // Composition
- int in = getItemPosition(current_clipId) - offset;
- ignored_pts.push_back(in);
- ignored_pts.push_back(in +
getItemPlaytime(current_clipId));
- }
- } else if (isSubTitle(current_clipId)) {
+ if (isClip(current_clipId)) {
+ m_allClips[current_clipId]->allSnaps(ignored_pts, offset);
+ } else if (isComposition(current_clipId) ||
isSubTitle(current_clipId)) {
+ // Composition or subtitle
int in = getItemPosition(current_clipId) - offset;
ignored_pts.push_back(in);
ignored_pts.push_back(in + getItemPlaytime(current_clipId));
@@ -1380,20 +1377,13 @@
all_items = m_groups->getLeaves(groupId);
}
for (int current_clipId : all_items) {
- if (getItemTrackId(current_clipId) != -1) {
- if (isClip(current_clipId)) {
- m_allClips[current_clipId]->allSnaps(ignored_pts, offset);
- } else if (isComposition(current_clipId)) {
- // Composition
- int in = getItemPosition(current_clipId) - offset;
- ignored_pts.push_back(in);
- ignored_pts.push_back(in +
getItemPlaytime(current_clipId));
- }
- } else if (isSubTitle(current_clipId)) {
- // TODO: Subtitle
- /*int in = getItemPosition(current_clipId) - offset;
+ if (isClip(current_clipId)) {
+ m_allClips[current_clipId]->allSnaps(ignored_pts, offset);
+ } else if (isComposition(current_clipId) ||
isSubTitle(current_clipId)) {
+ // Composition
+ int in = getItemPosition(current_clipId) - offset;
ignored_pts.push_back(in);
- ignored_pts.push_back(in + getItemPlaytime(current_clipId));*/
+ ignored_pts.push_back(in + getItemPlaytime(current_clipId));
}
}
int snapped = getBestSnapPos(currentPos, position - currentPos,
ignored_pts, cursorPosition, snapDistance);
@@ -1533,12 +1523,19 @@
int track_space;
if (!after) {
// Check space before the position
- track_space = i.value() -
getTrackById_const(i.key())->getBlankStart(i.value() - 1);
+ if (isSubtitleTrack(i.key())) {
+ track_space = i.value();
+ } else {
+ track_space = i.value() -
getTrackById_const(i.key())->getBlankStart(i.value() - 1);
+ }
if (blank_length == 0 || blank_length > track_space) {
blank_length = track_space;
}
} else {
// Check space after the position
+ if (isSubtitleTrack(i.key())) {
+ continue;
+ }
track_space = getTrackById(i.key())->getBlankEnd(i.value() + 1) -
i.value();
if (blank_length == 0 || blank_length > track_space) {
blank_length = track_space;
@@ -2419,13 +2416,11 @@
}
return true;
};
- // Move subtitles
- if (!sorted_subtitles.empty()) {
- std::vector<std::pair<int, GenTime>>::iterator ptr;
- auto last = std::prev(sorted_subtitles.end());
- for (ptr = sorted_subtitles.begin(); ptr < sorted_subtitles.end();
ptr++) {
- requestSubtitleMove((*ptr).first,
(*ptr).second.frames(pCore->getCurrentFps()) + delta_pos, updateView, ptr ==
sorted_subtitles.begin(),
- ptr == last, finalMove, local_undo,
local_redo);
+ // Check that we don't move subtitles before 0
+ if (!sorted_subtitles.empty() &&
sorted_subtitles.front().second.frames(pCore->getCurrentFps()) + delta_pos < 0)
{
+ delta_pos =
-sorted_subtitles.front().second.frames(pCore->getCurrentFps());
+ if (delta_pos == 0) {
+ return false;
}
}
@@ -2481,6 +2476,7 @@
}
}
}
+ bool updateSubtitles = updateView;
if (delta_track == 0 && updateView) {
updateView = false;
allowViewRefresh = false;
@@ -2633,7 +2629,7 @@
if (ok) {
sync_mix();
PUSH_LAMBDA(sync_mix, local_redo);
-
+ // Move compositions
for (const std::pair<int, std::pair<int, int>> &item :
sorted_compositions) {
int current_track_id = getItemTrackId(item.first);
if (!allowedTracks.isEmpty() &&
!allowedTracks.contains(current_track_id)) {
@@ -2703,6 +2699,21 @@
if (!ok) {
bool undone = local_undo();
Q_ASSERT(undone);
+ return false;
+ }
+ }
+ }
+ // Move subtitles
+ if (!sorted_subtitles.empty()) {
+ std::vector<std::pair<int, GenTime>>::iterator ptr;
+ auto last = std::prev(sorted_subtitles.end());
+
+ for (ptr = sorted_subtitles.begin(); ptr < sorted_subtitles.end();
ptr++) {
+ ok = requestSubtitleMove((*ptr).first,
(*ptr).second.frames(pCore->getCurrentFps()) + delta_pos, updateSubtitles, ptr
== sorted_subtitles.begin(),
+ ptr == last, finalMove, local_undo,
local_redo);
+ if (!ok) {
+ bool undone = local_undo();
+ Q_ASSERT(undone);
return false;
}
}
diff -Nru kdenlive-22.12.2/src/timeline2/model/timelinemodel.hpp
kdenlive-22.12.3/src/timeline2/model/timelinemodel.hpp
--- kdenlive-22.12.2/src/timeline2/model/timelinemodel.hpp 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/timeline2/model/timelinemodel.hpp 2023-02-27
05:00:53.000000000 +0100
@@ -384,8 +384,8 @@
*/
Q_INVOKABLE bool requestClipMove(int clipId, int trackId, int position,
bool moveMirrorTracks = true, bool updateView = true, bool logUndo = true,
bool invalidateTimeline = false, bool
revertMove = false);
- Q_INVOKABLE bool requestSubtitleMove(int clipId, int position, bool
updateView = true, bool logUndo = true, bool invalidateTimeline = false);
- bool requestSubtitleMove(int clipId, int position, bool updateView, bool
first, bool last, bool invalidateTimeline, Fun &undo, Fun &redo);
+ Q_INVOKABLE bool requestSubtitleMove(int clipId, int position, bool
updateView = true, bool logUndo = true, bool finalMove = false);
+ bool requestSubtitleMove(int clipId, int position, bool updateView, bool
first, bool last, bool finalMove, Fun &undo, Fun &redo);
int cutSubtitle(int position, Fun &undo, Fun &redo);
bool requestClipMix(const QString &mixId, std::pair<int, int> clipIds,
std::pair<int, int> mixDurations, int trackId, int position, bool updateView,
bool invalidateTimeline, bool finalMove, Fun &undo,
Fun &redo, bool groupMove);
diff -Nru kdenlive-22.12.2/src/timeline2/view/qml/SubTitle.qml
kdenlive-22.12.3/src/timeline2/view/qml/SubTitle.qml
--- kdenlive-22.12.2/src/timeline2/view/qml/SubTitle.qml 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/timeline2/view/qml/SubTitle.qml 2023-02-27
05:00:53.000000000 +0100
@@ -73,13 +73,14 @@
property int diff: -1
property int oldStartFrame
property int snappedFrame
+ // Used for continuous scrolling
+ property int incrementalOffset
property double delta: -1
property double oldDelta: 0
property bool startMove: false
visible: root.activeTool === 0
acceptedButtons: Qt.LeftButton | Qt.RightButton
cursorShape: (pressed ? Qt.ClosedHandCursor :
((startMouseArea.drag.active || endMouseArea.drag.active)? Qt.SizeHorCursor:
Qt.PointingHandCursor));
- //drag.target: subtitleBase
drag.axis: Drag.XAxis
drag.smoothed: false
drag.minimumX: 0
@@ -93,11 +94,16 @@
onPressed: {
console.log('ENTERED ITEM CLCKD:', subtitleRoot.subtitle, '
ID: ', subtitleRoot.subId, 'START FRM: ', subtitleRoot.startFrame)
root.autoScrolling = false
- oldStartX = mouseX
+ oldStartX = scrollView.contentX + mapToItem(scrollView,
mouseX, 0).x
oldStartFrame = subtitleRoot.startFrame
snappedFrame = oldStartFrame
x = subtitleBase.x
startMove = mouse.button & Qt.LeftButton
+ if (startMove) {
+ root.subtitleMoving = true
+ root.subtitleItem = subtitleClipArea
+ incrementalOffset = 0
+ }
if (timeline.selection.indexOf(subtitleRoot.subId) === -1) {
controller.requestAddToSelection(subtitleRoot.subId,
!(mouse.modifiers & Qt.ShiftModifier))
timeline.showAsset(subtitleRoot.subId);
@@ -108,14 +114,22 @@
timeline.showAsset(subtitleRoot.subId)
}
}
- onPositionChanged: {
+ function checkOffset(offset) {
if (pressed && !subtitleBase.textEditBegin && startMove) {
- newStart = Math.max(0, oldStartFrame + (mouseX -
oldStartX)/ root.timeScale)
+ incrementalOffset += offset
+ newStart = Math.max(0, oldStartFrame +
(scrollView.contentX + mapToItem(scrollView,mouseX, 0).x + incrementalOffset -
oldStartX)/ root.timeScale)
snappedFrame =
controller.suggestSubtitleMove(subtitleRoot.subId, newStart,
root.consumerPosition, root.snapping)
+ root.continuousScrolling(scrollView.contentX +
mapToItem(scrollView, mouseX, 0).x + incrementalOffset, 0)
}
}
+ onPositionChanged: {
+ incrementalOffset = 0
+ checkOffset(0)
+ }
onReleased: {
root.autoScrolling = timeline.autoScroll
+ root.subtitleMoving = false
+ root.subtitleItem = undefined
if (subtitleBase.textEditBegin) {
mouse.accepted = false
return
@@ -127,7 +141,7 @@
if (oldStartFrame != snappedFrame) {
console.log("old start
frame",oldStartFrame/timeline.scaleFactor, "new frame after shifting
",oldStartFrame/timeline.scaleFactor + delta)
controller.requestSubtitleMove(subtitleRoot.subId,
oldStartFrame, false, false);
- controller.requestSubtitleMove(subtitleRoot.subId,
snappedFrame, true, true);
+ controller.requestSubtitleMove(subtitleRoot.subId,
snappedFrame, true, true, true);
x = snappedFrame * root.timeScale
}
}
diff -Nru kdenlive-22.12.2/src/timeline2/view/qml/timeline.qml
kdenlive-22.12.3/src/timeline2/view/qml/timeline.qml
--- kdenlive-22.12.2/src/timeline2/view/qml/timeline.qml 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/timeline2/view/qml/timeline.qml 2023-02-27
05:00:53.000000000 +0100
@@ -22,6 +22,8 @@
color: activePalette.window
property bool debugmode: false
property bool validMenu: false
+ property bool subtitleMoving: false
+ property var subtitleItem
property color textColor: activePalette.text
property var groupTrimData
property bool trimInProgress: false
@@ -2278,8 +2280,12 @@
dragProxyArea.moveItem()
}
if (scrollView.contentX == 0 || (clipBeingMovedId == -1 &&
!rubberSelect.visible)) {
- horizontal = 0
- stop()
+ if (root.subtitleMoving) {
+ root.subtitleItem.checkOffset(horizontal)
+ } else {
+ horizontal = 0
+ stop()
+ }
}
}
if (rubberSelect.visible) {
diff -Nru kdenlive-22.12.2/src/ui/guidecategories_ui.ui
kdenlive-22.12.3/src/ui/guidecategories_ui.ui
--- kdenlive-22.12.2/src/ui/guidecategories_ui.ui 2023-01-30
08:41:54.000000000 +0100
+++ kdenlive-22.12.3/src/ui/guidecategories_ui.ui 2023-02-27
05:00:53.000000000 +0100
@@ -10,9 +10,6 @@
<height>398</height>
</rect>
</property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
diff -Nru kdenlive-22.12.2/src/ui/guideslist_ui.ui
kdenlive-22.12.3/src/ui/guideslist_ui.ui
--- kdenlive-22.12.2/src/ui/guideslist_ui.ui 2023-01-30 08:41:54.000000000
+0100
+++ kdenlive-22.12.3/src/ui/guideslist_ui.ui 2023-02-27 05:00:53.000000000
+0100
@@ -10,9 +10,6 @@
<height>288</height>
</rect>
</property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout">
diff -Nru kdenlive-22.12.2/src/ui/textbasededit_ui.ui
kdenlive-22.12.3/src/ui/textbasededit_ui.ui
--- kdenlive-22.12.2/src/ui/textbasededit_ui.ui 2023-01-30 08:41:54.000000000
+0100
+++ kdenlive-22.12.3/src/ui/textbasededit_ui.ui 2023-02-27 05:00:53.000000000
+0100
@@ -10,10 +10,16 @@
<rect>
<x>0</x>
<y>0</y>
- <width>411</width>
- <height>422</height>
+ <width>332</width>
+ <height>355</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="KSqueezedTextLabel" name="clipNameLabel"/>
@@ -94,7 +100,8 @@
<string>...</string>
</property>
<property name="icon">
- <iconset theme="go-up"/>
+ <iconset theme="go-up">
+ <normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
@@ -114,7 +121,8 @@
<string>...</string>
</property>
<property name="icon">
- <iconset theme="go-down"/>
+ <iconset theme="go-down">
+ <normaloff>.</normaloff>.</iconset>
</property>
</widget>
</item>
@@ -124,19 +132,17 @@
<item row="6" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
- <widget class="QComboBox" name="language_box"/>
+ <widget class="QComboBox" name="language_box">
+ <property name="sizeAdjustPolicy">
+ <enum>QComboBox::AdjustToContents</enum>
+ </property>
+ </widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>250</width>
- <height>20</height>
- </size>
- </property>
</spacer>
</item>
<item>
@@ -176,8 +182,8 @@
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>244</width>
- <height>20</height>
+ <width>0</width>
+ <height>0</height>
</size>
</property>
</spacer>
@@ -188,7 +194,8 @@
<string>...</string>
</property>
<property name="icon">
- <iconset theme="edit-find"/>
+ <iconset theme="edit-find">
+ <normaloff>.</normaloff>.</iconset>
</property>
<property name="checkable">
<bool>true</bool>
diff -Nru kdenlive-22.12.2/tests/trimmingtest.cpp
kdenlive-22.12.3/tests/trimmingtest.cpp
--- kdenlive-22.12.2/tests/trimmingtest.cpp 2023-01-30 08:41:54.000000000
+0100
+++ kdenlive-22.12.3/tests/trimmingtest.cpp 2023-02-27 05:00:53.000000000
+0100
@@ -6,6 +6,7 @@
*/
#include "doc/kdenlivedoc.h"
#include "test_utils.hpp"
+#include "timeline2/model/timelinefunctions.hpp"
using namespace fakeit;
Mlt::Profile profile_trimming;