Skip to content
GitLab
Menu
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
63ca93a4
Commit
63ca93a4
authored
Jul 29, 2020
by
Jean-Baptiste Mardelle
Browse files
Fix having several geometry effects messing monitor overlay (like rotoscoping and transform).
Related to
#649
parent
5d9f20c1
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/assets/keyframes/model/keyframemonitorhelper.cpp
View file @
63ca93a4
...
...
@@ -38,7 +38,7 @@ KeyframeMonitorHelper::KeyframeMonitorHelper(Monitor *monitor, std::shared_ptr<A
bool
KeyframeMonitorHelper
::
connectMonitor
(
bool
activate
)
{
if
(
activate
==
m_active
)
{
return
fals
e
;
return
tru
e
;
}
m_active
=
activate
;
if
(
activate
)
{
...
...
src/assets/keyframes/view/keyframeview.cpp
View file @
63ca93a4
...
...
@@ -114,13 +114,13 @@ void KeyframeView::slotAddKeyframe(int pos)
void
KeyframeView
::
slotAddRemove
()
{
emit
activateEffect
();
int
offset
=
pCore
->
getItemIn
(
m_model
->
getOwnerId
());
if
(
m_model
->
hasKeyframe
(
m_position
+
offset
))
{
slotRemoveKeyframe
(
m_position
);
}
else
{
slotAddKeyframe
(
m_position
);
}
emit
activateEffect
();
}
void
KeyframeView
::
slotEditType
(
int
type
,
const
QPersistentModelIndex
&
index
)
...
...
@@ -150,6 +150,7 @@ void KeyframeView::setDuration(int dur)
void
KeyframeView
::
slotGoToNext
()
{
emit
activateEffect
();
if
(
m_position
==
m_duration
-
1
)
{
return
;
}
...
...
@@ -164,11 +165,11 @@ void KeyframeView::slotGoToNext()
// no keyframe after current position
emit
seekToPos
(
m_duration
-
1
);
}
emit
activateEffect
();
}
void
KeyframeView
::
slotGoToPrev
()
{
emit
activateEffect
();
if
(
m_position
==
0
)
{
return
;
}
...
...
@@ -183,7 +184,6 @@ void KeyframeView::slotGoToPrev()
// no keyframe after current position
emit
seekToPos
(
m_duration
-
1
);
}
emit
activateEffect
();
}
void
KeyframeView
::
mousePressEvent
(
QMouseEvent
*
event
)
...
...
src/assets/view/widgets/keyframewidget.cpp
View file @
63ca93a4
...
...
@@ -52,6 +52,7 @@ KeyframeWidget::KeyframeWidget(std::shared_ptr<AssetParameterModel> model, QMode
,
m_sourceFrameSize
(
frameSize
.
isValid
()
&&
!
frameSize
.
isNull
()
?
frameSize
:
pCore
->
getCurrentFrameSize
())
,
m_baseHeight
(
0
)
,
m_addedHeight
(
0
)
,
m_effectIsSelected
(
false
)
{
setSizePolicy
(
QSizePolicy
::
Preferred
,
QSizePolicy
::
Preferred
);
m_lay
=
new
QVBoxLayout
(
this
);
...
...
@@ -243,7 +244,7 @@ void KeyframeWidget::slotRefreshParams()
((
GeometryWidget
*
)
w
.
second
)
->
setValue
(
rect
,
opacity
);
}
}
if
(
m_monitorHelper
)
{
if
(
m_monitorHelper
&&
m_effectIsSelected
)
{
m_monitorHelper
->
refreshParams
(
pos
);
return
;
}
...
...
@@ -407,6 +408,7 @@ void KeyframeWidget::addParameter(const QPersistentModelIndex &index)
void
KeyframeWidget
::
slotInitMonitor
(
bool
active
)
{
Monitor
*
monitor
=
pCore
->
getMonitor
(
m_model
->
monitorId
);
m_effectIsSelected
=
active
;
if
(
m_keyframeview
)
{
m_keyframeview
->
initKeyframePos
();
connect
(
monitor
,
&
Monitor
::
updateScene
,
m_keyframeview
,
&
KeyframeView
::
slotModelChanged
,
Qt
::
UniqueConnection
);
...
...
@@ -417,7 +419,7 @@ void KeyframeWidget::slotInitMonitor(bool active)
void
KeyframeWidget
::
connectMonitor
(
bool
active
)
{
if
(
m_monitorHelper
)
{
if
(
m_monitorHelper
->
connectMonitor
(
active
))
{
if
(
m_monitorHelper
->
connectMonitor
(
active
)
&&
m_effectIsSelected
)
{
slotRefreshParams
();
}
}
...
...
src/assets/view/widgets/keyframewidget.hpp
View file @
63ca93a4
...
...
@@ -100,6 +100,7 @@ private:
std
::
unordered_map
<
QPersistentModelIndex
,
QWidget
*>
m_parameters
;
int
m_baseHeight
;
int
m_addedHeight
;
bool
m_effectIsSelected
;
signals:
void
addIndex
(
QPersistentModelIndex
ix
);
...
...
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