[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdenlive/refactoring_timeline] src/timeline2: groups are now moved by the model and not the view. M
From: Nicolas Carion <null () kde ! org>
Date: 2018-05-01 0:16:43
Message-ID: E1fDIyJ-0002J9-Lk () code ! kde ! org
[Download RAW message or body]
Git commit 0b413c8b5b5c130bf48379c0201fc8b50bad27f5 by Nicolas Carion.
Committed on 01/05/2018 at 00:17.
Pushed by alcinos into branch 'refactoring_timeline'.
groups are now moved by the model and not the view. Moving av group has the intended \
effect
M +26 -13 src/timeline2/model/timelinemodel.cpp
M +2 -2 src/timeline2/view/qml/timeline.qml
https://commits.kde.org/kdenlive/0b413c8b5b5c130bf48379c0201fc8b50bad27f5
diff --git a/src/timeline2/model/timelinemodel.cpp \
b/src/timeline2/model/timelinemodel.cpp index de4761631..665276262 100644
--- a/src/timeline2/model/timelinemodel.cpp
+++ b/src/timeline2/model/timelinemodel.cpp
@@ -627,7 +627,7 @@ bool TimelineModel::requestClipInsertion(const QString \
&binClipId, int trackId, audioDrop = true;
}
}
- if (res && logUndo && !audioDrop) {
+ if (res && !audioDrop) {
QList<int> possibleTracks = m_audioTarget >= 0 ? QList<int>() << \
m_audioTarget : getLowerTracksId(trackId, TrackType::AudioTrack); if \
(possibleTracks.isEmpty()) { // No available audio track for splitting, abort
@@ -682,7 +682,6 @@ bool TimelineModel::requestItemDeletion(int clipId, Fun &undo, \
Fun &redo) return requestGroupDeletion(clipId, undo, redo);
}
return requestClipDeletion(clipId, undo, redo);
-
}
bool TimelineModel::requestItemDeletion(int itemId, bool logUndo)
@@ -826,7 +825,7 @@ bool TimelineModel::requestGroupMove(int clipId, int groupId, int \
delta_track, i return !(track_pos1 <= track_pos2) == !(delta_track <= 0);
});
// Parse all tracks then check none is locked. Maybe find a better way/place to \
do this
- QList <int> trackList;
+ QList<int> trackList;
for (int clip : sorted_clips) {
int current_track_id = getItemTrackId(clip);
if (!trackList.contains(current_track_id)) {
@@ -839,20 +838,35 @@ bool TimelineModel::requestGroupMove(int clipId, int groupId, \
int delta_track, i return false;
}
}
+ int audio_delta, video_delta;
+ audio_delta = video_delta = delta_track;
+ // if the topmost group is a AVSplit, then we will apply opposite movement to \
audio and video + if (m_groups->getType(groupId) == GroupType::AVSplit) {
+ if (getTrackById(getItemTrackId(clipId))->isAudioTrack()) {
+ video_delta = -delta_track;
+ } else {
+ audio_delta = -delta_track;
+ }
+ }
for (int clip : sorted_clips) {
int current_track_id = getItemTrackId(clip);
int current_track_position = getTrackPosition(current_track_id);
- int target_track_position = current_track_position + delta_track;
+ int d = getTrackById(current_track_id)->isAudioTrack() ? audio_delta : \
video_delta; + int target_track_position = current_track_position + d;
+ bool updateThisView = true;
+ if (clip == clipId) {
+ updateThisView = updateView;
+ }
if (target_track_position >= 0 && target_track_position < getTracksCount()) \
{ auto it = m_allTracks.cbegin();
std::advance(it, target_track_position);
int target_track = (*it)->getId();
if (isClip(clip)) {
int target_position = m_allClips[clip]->getPosition() + delta_pos;
- ok = requestClipMove(clip, target_track, target_position, \
updateView, finalMove, undo, redo); + ok = requestClipMove(clip, \
target_track, target_position, updateThisView, finalMove, undo, redo); } else {
int target_position = m_allCompositions[clip]->getPosition() + \
delta_pos;
- ok = requestCompositionMove(clip, target_track, \
m_allCompositions[clip]->getForcedTrack(), target_position, updateView, undo, redo); \
+ ok = requestCompositionMove(clip, target_track, \
m_allCompositions[clip]->getForcedTrack(), target_position, updateThisView, undo, \
redo); }
} else {
qDebug() << "// ABORTING; MOVE TRIED ON TRACK: " << \
target_track_position << "..\n..\n.."; @@ -943,7 +957,7 @@ int \
TimelineModel::requestItemResize(int itemId, int size, bool right, \
bool logU
<< (snapDistance > 0 ? "true" : "false") << " ); " << std::endl;
#endif
if (logUndo) {
- qDebug()<<"---------------------\n---------------------\nRESIZE W/UNDO \
CALLED\n++++++++++++++++\n++++"; + qDebug() << \
"---------------------\n---------------------\nRESIZE W/UNDO \
CALLED\n++++++++++++++++\n++++"; }
QWriteLocker locker(&m_lock);
Q_ASSERT(isClip(itemId) || isComposition(itemId));
@@ -958,7 +972,7 @@ int TimelineModel::requestItemResize(int itemId, int size, bool \
right, bool logU // only test move if proposed_size is valid
bool success = false;
if (isClip(itemId)) {
- qDebug()<<"+++MODEL REQUEST RESIZE (LOGUNDO) "<<logUndo<<", SIZE: \
"<<proposed_size; + qDebug() << "+++MODEL REQUEST RESIZE (LOGUNDO) " \
<< logUndo << ", SIZE: " << proposed_size;
success = m_allClips[itemId]->requestResize(proposed_size, right, \
temp_undo, temp_redo, false); } else {
success = m_allCompositions[itemId]->requestResize(proposed_size, \
right, temp_undo, temp_redo, false); @@ -1050,8 +1064,8 @@ int \
TimelineModel::requestClipsGroup(const std::unordered_set<int> &ids, bool lo if \
(m_temporarySelectionGroup > -1) { \
m_groups->destructGroupItem(m_temporarySelectionGroup); // We don't log in undo the \
selection changes
- //int firstChild = \
*m_groups->getDirectChildren(m_temporarySelectionGroup).begin();
- //requestClipUngroup(firstChild, undo, redo);
+ // int firstChild = \
*m_groups->getDirectChildren(m_temporarySelectionGroup).begin(); + // \
requestClipUngroup(firstChild, undo, redo); m_temporarySelectionGroup = -1;
}
int result = requestClipsGroup(ids, undo, redo, type);
@@ -2081,7 +2095,7 @@ QStringList TimelineModel::extractCompositionLumas() const
void TimelineModel::adjustAssetRange(int clipId, int in, int out)
{
- //pCore->adjustAssetRange(clipId, in, out);
+ // pCore->adjustAssetRange(clipId, in, out);
}
void TimelineModel::requestClipReload(int clipId)
@@ -2189,7 +2203,6 @@ bool TimelineModel::changeItemSpeed(int clipId, int speed)
return false;
}
-
const QString TimelineModel::getTrackTagById(int trackId) const
{
Q_ASSERT(isTrack(trackId));
@@ -2212,5 +2225,5 @@ const QString TimelineModel::getTrackTagById(int trackId) const
}
it++;
}
- return isAudio ? QStringLiteral("A%1").arg(totalAudio - count) : \
QStringLiteral("V%1").arg(count-1); + return isAudio ? \
QStringLiteral("A%1").arg(totalAudio - count) : QStringLiteral("V%1").arg(count - 1); \
}
diff --git a/src/timeline2/view/qml/timeline.qml \
b/src/timeline2/view/qml/timeline.qml index dfa866b6e..6df17b282 100644
--- a/src/timeline2/view/qml/timeline.qml
+++ b/src/timeline2/view/qml/timeline.qml
@@ -934,7 +934,7 @@ Rectangle {
clip.y = track.y - \
Logic.getTrackById(clip.originalTrackId).y clip.trackId = track.trackId
clip.currentFrame = frame
- if (root.dragList.length > 1) {
+ /*if (root.dragList.length > 1) {
var currentMasterY = track.y
var sourceTrack = \
Logic.getTrackIndexFromId(clip.originalTrackId)
var destTrack = Logic.getTrackIndexFromId(clip.trackId)
@@ -960,7 +960,7 @@ Rectangle {
}
}
}
- }
+ }*/
} else {
if (track.trackId != clip.trackId) {
// check if we can move on existing track
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic