Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Multimedia
Kdenlive
Commits
177a8974
Commit
177a8974
authored
Dec 07, 2020
by
Jean-Baptiste Mardelle
Browse files
Fix unwanted keyframe move on keyframe widget seek
parent
b558390f
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/assets/keyframes/view/keyframeview.cpp
View file @
177a8974
...
@@ -42,6 +42,7 @@ KeyframeView::KeyframeView(std::shared_ptr<KeyframeModelList> model, int duratio
...
@@ -42,6 +42,7 @@ KeyframeView::KeyframeView(std::shared_ptr<KeyframeModelList> model, int duratio
,
m_scale
(
1
)
,
m_scale
(
1
)
,
m_zoomFactor
(
1
)
,
m_zoomFactor
(
1
)
,
m_zoomStart
(
0
)
,
m_zoomStart
(
0
)
,
m_moveKeyframeMode
(
false
)
,
m_zoomHandle
(
0
,
1
)
,
m_zoomHandle
(
0
,
1
)
,
m_hoverZoomIn
(
false
)
,
m_hoverZoomIn
(
false
)
,
m_hoverZoomOut
(
false
)
,
m_hoverZoomOut
(
false
)
...
@@ -220,6 +221,7 @@ void KeyframeView::mousePressEvent(QMouseEvent *event)
...
@@ -220,6 +221,7 @@ void KeyframeView::mousePressEvent(QMouseEvent *event)
double
zoomFactor
=
(
width
()
-
2
*
m_offset
)
/
(
zoomEnd
-
zoomStart
);
double
zoomFactor
=
(
width
()
-
2
*
m_offset
)
/
(
zoomEnd
-
zoomStart
);
int
pos
=
((
event
->
x
()
-
m_offset
)
/
zoomFactor
+
zoomStart
)
/
m_scale
;
int
pos
=
((
event
->
x
()
-
m_offset
)
/
zoomFactor
+
zoomStart
)
/
m_scale
;
pos
=
qBound
(
0
,
pos
,
m_duration
-
1
);
pos
=
qBound
(
0
,
pos
,
m_duration
-
1
);
m_moveKeyframeMode
=
false
;
if
(
event
->
button
()
==
Qt
::
LeftButton
)
{
if
(
event
->
button
()
==
Qt
::
LeftButton
)
{
if
(
event
->
y
()
<
m_lineHeight
)
{
if
(
event
->
y
()
<
m_lineHeight
)
{
// mouse click in keyframes area
// mouse click in keyframes area
...
@@ -230,6 +232,7 @@ void KeyframeView::mousePressEvent(QMouseEvent *event)
...
@@ -230,6 +232,7 @@ void KeyframeView::mousePressEvent(QMouseEvent *event)
m_currentKeyframeOriginal
=
keyframe
.
first
.
frames
(
pCore
->
getCurrentFps
())
-
offset
;
m_currentKeyframeOriginal
=
keyframe
.
first
.
frames
(
pCore
->
getCurrentFps
())
-
offset
;
// Select and seek to keyframe
// Select and seek to keyframe
m_currentKeyframe
=
m_currentKeyframeOriginal
;
m_currentKeyframe
=
m_currentKeyframeOriginal
;
m_moveKeyframeMode
=
true
;
if
(
KdenliveSettings
::
keyframeseek
())
{
if
(
KdenliveSettings
::
keyframeseek
())
{
emit
seekToPos
(
m_currentKeyframeOriginal
);
emit
seekToPos
(
m_currentKeyframeOriginal
);
}
else
{
}
else
{
...
@@ -310,7 +313,7 @@ void KeyframeView::mouseMoveEvent(QMouseEvent *event)
...
@@ -310,7 +313,7 @@ void KeyframeView::mouseMoveEvent(QMouseEvent *event)
if
(
m_currentKeyframe
==
pos
)
{
if
(
m_currentKeyframe
==
pos
)
{
return
;
return
;
}
}
if
(
m_currentKeyframe
>
0
&&
(
m_
currentKeyframe
!=
m_currentKeyframeOriginal
||
event
->
y
()
<
m_lineHeight
)
)
{
if
(
m_currentKeyframe
>
0
&&
m_
moveKeyframeMode
)
{
if
(
!
m_model
->
hasKeyframe
(
pos
+
offset
))
{
if
(
!
m_model
->
hasKeyframe
(
pos
+
offset
))
{
GenTime
currentPos
(
m_currentKeyframe
+
offset
,
pCore
->
getCurrentFps
());
GenTime
currentPos
(
m_currentKeyframe
+
offset
,
pCore
->
getCurrentFps
());
if
(
m_model
->
moveKeyframe
(
currentPos
,
position
,
false
))
{
if
(
m_model
->
moveKeyframe
(
currentPos
,
position
,
false
))
{
...
@@ -375,6 +378,7 @@ void KeyframeView::mouseMoveEvent(QMouseEvent *event)
...
@@ -375,6 +378,7 @@ void KeyframeView::mouseMoveEvent(QMouseEvent *event)
void
KeyframeView
::
mouseReleaseEvent
(
QMouseEvent
*
event
)
void
KeyframeView
::
mouseReleaseEvent
(
QMouseEvent
*
event
)
{
{
Q_UNUSED
(
event
)
Q_UNUSED
(
event
)
m_moveKeyframeMode
=
false
;
if
(
m_currentKeyframe
>=
0
&&
m_currentKeyframeOriginal
!=
m_currentKeyframe
)
{
if
(
m_currentKeyframe
>=
0
&&
m_currentKeyframeOriginal
!=
m_currentKeyframe
)
{
int
offset
=
pCore
->
getItemIn
(
m_model
->
getOwnerId
());
int
offset
=
pCore
->
getItemIn
(
m_model
->
getOwnerId
());
GenTime
initPos
(
m_currentKeyframeOriginal
+
offset
,
pCore
->
getCurrentFps
());
GenTime
initPos
(
m_currentKeyframeOriginal
+
offset
,
pCore
->
getCurrentFps
());
...
...
src/assets/keyframes/view/keyframeview.hpp
View file @
177a8974
...
@@ -81,6 +81,7 @@ private:
...
@@ -81,6 +81,7 @@ private:
double
m_scale
;
double
m_scale
;
double
m_zoomFactor
;
double
m_zoomFactor
;
double
m_zoomStart
;
double
m_zoomStart
;
bool
m_moveKeyframeMode
;
/** @brief The zoom factor (start, end - between 0 and 1) */
/** @brief The zoom factor (start, end - between 0 and 1) */
QPointF
m_zoomHandle
;
QPointF
m_zoomHandle
;
QPointF
m_lastZoomHandle
;
QPointF
m_lastZoomHandle
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment