Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Multimedia
Kdenlive
Commits
b0b6e57a
Commit
b0b6e57a
authored
Mar 01, 2018
by
Jean-Baptiste Mardelle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix qml monitor scene keyframe when seeking out of a clip
parent
0dc470b4
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
23 additions
and
13 deletions
+23
-13
src/assets/keyframes/view/keyframeview.cpp
src/assets/keyframes/view/keyframeview.cpp
+14
-7
src/assets/keyframes/view/keyframeview.hpp
src/assets/keyframes/view/keyframeview.hpp
+1
-1
src/assets/view/widgets/geometryeditwidget.cpp
src/assets/view/widgets/geometryeditwidget.cpp
+1
-0
src/assets/view/widgets/keyframewidget.cpp
src/assets/view/widgets/keyframewidget.cpp
+6
-5
src/widgets/geometrywidget.cpp
src/widgets/geometrywidget.cpp
+1
-0
No files found.
src/assets/keyframes/view/keyframeview.cpp
View file @
b0b6e57a
...
...
@@ -61,8 +61,13 @@ void KeyframeView::slotModelChanged()
update
();
}
void
KeyframeView
::
slotSetPosition
(
int
pos
)
void
KeyframeView
::
slotSetPosition
(
int
pos
,
bool
isInRange
)
{
if
(
!
isInRange
)
{
m_position
=
-
1
;
update
();
return
;
}
if
(
pos
!=
m_position
)
{
m_position
=
pos
;
emit
atKeyframe
(
m_model
->
hasKeyframe
(
pos
),
m_model
->
singleKeyframe
());
...
...
@@ -299,10 +304,12 @@ void KeyframeView::paintEvent(QPaintEvent *event)
/*
* current position
*/
QPolygon
pa
(
3
);
int
cursorwidth
=
(
m_size
-
(
m_lineHeight
+
headOffset
/
2
))
/
2
+
1
;
QPolygonF
position
=
QPolygonF
()
<<
QPointF
(
-
cursorwidth
,
m_size
)
<<
QPointF
(
cursorwidth
,
m_size
)
<<
QPointF
(
0
,
m_lineHeight
+
(
headOffset
/
2
)
+
1
);
position
.
translate
(
m_position
*
m_scale
,
0
);
p
.
setBrush
(
m_colKeyframe
);
p
.
drawPolygon
(
position
);
if
(
m_position
>=
0
)
{
QPolygon
pa
(
3
);
int
cursorwidth
=
(
m_size
-
(
m_lineHeight
+
headOffset
/
2
))
/
2
+
1
;
QPolygonF
position
=
QPolygonF
()
<<
QPointF
(
-
cursorwidth
,
m_size
)
<<
QPointF
(
cursorwidth
,
m_size
)
<<
QPointF
(
0
,
m_lineHeight
+
(
headOffset
/
2
)
+
1
);
position
.
translate
(
m_position
*
m_scale
,
0
);
p
.
setBrush
(
m_colKeyframe
);
p
.
drawPolygon
(
position
);
}
}
src/assets/keyframes/view/keyframeview.hpp
View file @
b0b6e57a
...
...
@@ -37,7 +37,7 @@ public:
public
slots
:
/* @brief moves the current position*/
void
slotSetPosition
(
int
pos
);
void
slotSetPosition
(
int
pos
,
bool
isInRange
);
/* @brief remove the keyframe at given position
If pos is negative, we remove keyframe at current position
*/
...
...
src/assets/view/widgets/geometryeditwidget.cpp
View file @
b0b6e57a
...
...
@@ -95,6 +95,7 @@ void GeometryEditWidget::monitorSeek(int pos)
// Update monitor scene for geometry params
if
(
pos
>=
m_range
.
first
&&
pos
<
m_range
.
second
)
{
m_geom
->
connectMonitor
(
true
);
pCore
->
getMonitor
(
m_model
->
monitorId
)
->
setEffectKeyframe
(
true
);
}
else
{
m_geom
->
connectMonitor
(
false
);
}
...
...
src/assets/view/widgets/keyframewidget.cpp
View file @
b0b6e57a
...
...
@@ -122,10 +122,11 @@ void KeyframeWidget::monitorSeek(int pos)
{
int
in
=
pCore
->
getItemPosition
(
m_model
->
getOwnerId
());
int
out
=
in
+
pCore
->
getItemDuration
(
m_model
->
getOwnerId
());
m_buttonAddDelete
->
setEnabled
(
pos
-
in
>
0
);
connectMonitor
(
pos
>=
in
&&
pos
<
out
);
bool
isInRange
=
pos
>=
in
&&
pos
<
out
;
m_buttonAddDelete
->
setEnabled
(
isInRange
);
connectMonitor
(
isInRange
);
int
framePos
=
qBound
(
in
,
pos
,
out
)
-
in
;
m_keyframeview
->
slotSetPosition
(
framePos
);
m_keyframeview
->
slotSetPosition
(
framePos
,
isInRange
);
m_time
->
setValue
(
framePos
);
}
...
...
@@ -164,10 +165,10 @@ void KeyframeWidget::slotSetPosition(int pos, bool update)
{
if
(
pos
<
0
)
{
pos
=
m_time
->
getValue
();
m_keyframeview
->
slotSetPosition
(
pos
);
m_keyframeview
->
slotSetPosition
(
pos
,
true
);
}
else
{
m_time
->
setValue
(
pos
);
m_keyframeview
->
slotSetPosition
(
pos
);
m_keyframeview
->
slotSetPosition
(
pos
,
true
);
}
slotRefreshParams
();
...
...
src/widgets/geometrywidget.cpp
View file @
b0b6e57a
...
...
@@ -427,6 +427,7 @@ void GeometryWidget::connectMonitor(bool activate)
QRect
rect
(
m_spinX
->
value
(),
m_spinY
->
value
(),
m_spinWidth
->
value
(),
m_spinHeight
->
value
());
m_monitor
->
setUpEffectGeometry
(
rect
);
}
else
{
m_monitor
->
setEffectKeyframe
(
false
);
disconnect
(
m_monitor
,
&
Monitor
::
effectChanged
,
this
,
&
GeometryWidget
::
slotUpdateGeometryRect
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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