Fix Show clip in project bin not selecting correct zone (7039cde2) · Commits · Multimedia / Kdenlive · GitLab
Admin message
Join us at
Akademy
to celebrate KDE's 30th anniversary!
Travel support requests
are open till May 31st.
Register now
Verified
Commit
7039cde2
authored
Dec 01, 2025
by
Jean-Baptiste Mardelle
Browse files
parent
325a39cb
Loading
Loading
Loading
Loading
Changes
Pipelines
Loading
Original line number
Diff line number
Diff line
@@ -2938,7 +2938,12 @@ void Bin::selectClipById(const QString &clipId, int frame, const QPoint &zone, b
if
clip
==
nullptr
return
// We can only set zone after the clip is loaded
m_activateClipZoneInfo
clipId
clip
->
clipId
();
m_activateClipZoneInfo
zone
zone
m_activateClipZoneInfo
seekFrame
frame
selectClip
clip
);
return
Monitor
monitor
pCore
->
getMonitor
Kdenlive
::
ClipMonitor
);
if
zone
isNull
())
@@ -3809,8 +3814,21 @@ void Bin::slotOpenCurrent()
void
Bin
::
openProducer
std
::
shared_ptr
ProjectClip
controller
const
QUuid
sequenceUuid
if
m_activateClipZoneInfo
clipId
isEmpty
())
int
in
int
out
int
seekFrame
if
controller
->
clipId
()
==
m_activateClipZoneInfo
clipId
in
m_activateClipZoneInfo
zone
();
out
m_activateClipZoneInfo
zone
();
seekFrame
m_activateClipZoneInfo
seekFrame
m_activateClipZoneInfo
clipId
clear
();
Q_EMIT
openClip
std
::
move
controller
),
in
out
sequenceUuid
seekFrame
);
else
Q_EMIT
openClip
std
::
move
controller
),
sequenceUuid
);
void
Bin
::
openProducer
std
::
shared_ptr
ProjectClip
controller
int
in
int
out
@@ -3905,13 +3923,17 @@ void Bin::setupGeneratorMenu()
connect
this
Bin
::
openClip
this
Bin
::
openClipInMonitor
Qt
::
QueuedConnection
);
void
Bin
::
openClipInMonitor
std
::
shared_ptr
ProjectClip
clip
int
in
int
out
const
QUuid
uuid
void
Bin
::
openClipInMonitor
std
::
shared_ptr
ProjectClip
clip
int
in
int
out
const
QUuid
uuid
int
seekFrame
if
pCore
->
getMonitor
Kdenlive
::
ClipMonitor
->
slotOpenClip
clip
in
out
uuid
&&
clip
Q_EMIT
pCore
->
requestShowBinEffectStack
clip
->
clipName
(),
clip
->
m_effectStack
clip
->
getFrameSize
(),
false
);
if
clip
->
hasLimitedDuration
())
clip
->
refreshBounds
();
if
seekFrame
Monitor
monitor
pCore
->
getMonitor
Kdenlive
::
ClipMonitor
);
monitor
->
slotSeek
seekFrame
);
pCore
->
textEditWidget
()
->
openClip
clip
);
Original line number
Diff line number
Diff line
@@ -200,6 +200,13 @@ public:
explicit
Bin
std
::
shared_ptr
ProjectItemModel
model
QWidget
parent
nullptr
bool
isMainBin
true
BinViewType
type
BinUnknownView
);
Bin
()
override
struct
ClipZoneInfo
QString
clipId
QPoint
zone
int
seekFrame
};
bool
isLoading
/** @brief Sets the document for the bin and initialize some stuff */
const
QString
setDocument
KdenliveDoc
project
const
QString
id
QString
());
@@ -469,7 +476,7 @@ private Q_SLOTS:
/** @brief Open a new Bin widget */
void
slotOpenNewBin
();
/** @brief Open clip in monitor */
void
openClipInMonitor
std
::
shared_ptr
ProjectClip
clip
int
in
int
out
const
QUuid
uuid
QUuid
());
void
openClipInMonitor
std
::
shared_ptr
ProjectClip
clip
int
in
int
out
const
QUuid
uuid
QUuid
()
int
seekFrame
);
/** @brief Perform the drag */
bool
performDrag
const
QModelIndexList
indexes
);
@@ -643,6 +650,7 @@ private:
int
wheelAccumulatedDelta
QString
m_keyBindingMessage
QString
m_clipsCountMessage
ClipZoneInfo
m_activateClipZoneInfo
/** @brief Show the clip count and key binfing info in status bar. */
void
showBinInfo
();
/** @brief Find all clip Ids that have a specific tag. */
@@ -663,7 +671,7 @@ Q_SIGNALS:
void
requesteInvalidRemoval
const
QString
const
QString
const
QString
);
/** @brief Analysis data changed, refresh panel. */
void
updateAnalysisData
const
QString
);
void
openClip
std
::
shared_ptr
ProjectClip
int
in
int
out
const
QUuid
sequenceUuid
QUuid
());
void
openClip
std
::
shared_ptr
ProjectClip
int
in
int
out
const
QUuid
sequenceUuid
QUuid
()
int
seekFrame
);
/** @brief Fill context menu with occurrences of this clip in timeline. */
void
findInTimeline
const
QString
QList
int
ids
QList
int
());
void
clipNameChanged
int
const
QString
);
Loading
US