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
3022c6ac
Commit
3022c6ac
authored
Oct 22, 2019
by
Jean-Baptiste Mardelle
Browse files
Save/load active track state in project. Make first audio and video track active by default
parent
af76fd92
Pipeline
#9320
passed with stage
in 15 minutes
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/doc/kdenlivedoc.cpp
View file @
3022c6ac
...
...
@@ -346,10 +346,10 @@ QDomDocument KdenliveDoc::createEmptyDocument(int videotracks, int audiotracks)
videoTrack
.
duration
=
0
;
tracks
.
append
(
videoTrack
);
}
return
createEmptyDocument
(
tracks
);
return
createEmptyDocument
(
tracks
,
audiotracks
);
}
QDomDocument
KdenliveDoc
::
createEmptyDocument
(
const
QList
<
TrackInfo
>
&
tracks
)
QDomDocument
KdenliveDoc
::
createEmptyDocument
(
const
QList
<
TrackInfo
>
&
tracks
,
int
audiotracks
)
{
// Creating new document
QDomDocument
doc
;
...
...
@@ -361,12 +361,21 @@ QDomDocument KdenliveDoc::createEmptyDocument(const QList<TrackInfo> &tracks)
Mlt
::
Tractor
tractor
(
docProfile
);
Mlt
::
Producer
bk
(
docProfile
,
"color:black"
);
tractor
.
insert_track
(
bk
,
0
);
bool
firstVideoTrackFound
=
false
;
for
(
int
i
=
0
;
i
<
tracks
.
count
();
++
i
)
{
Mlt
::
Tractor
track
(
docProfile
);
track
.
set
(
"kdenlive:track_name"
,
tracks
.
at
(
i
).
trackName
.
toUtf8
().
constData
());
track
.
set
(
"kdenlive:trackheight"
,
KdenliveSettings
::
trackheight
());
if
(
tracks
.
at
(
i
).
type
==
AudioTrack
)
{
track
.
set
(
"kdenlive:audio_track"
,
1
);
if
(
i
==
audiotracks
-
1
)
{
// top most audio track, make active by default
track
.
set
(
"kdenlive:timeline_active"
,
1
);
}
}
else
if
(
!
firstVideoTrackFound
)
{
firstVideoTrackFound
=
true
;
// bottom video track, make active by default
track
.
set
(
"kdenlive:timeline_active"
,
1
);
}
if
(
tracks
.
at
(
i
).
isLocked
)
{
track
.
set
(
"kdenlive:locked_track"
,
1
);
...
...
src/doc/kdenlivedoc.h
View file @
3022c6ac
...
...
@@ -189,7 +189,7 @@ private:
/** @brief Creates a new project. */
QDomDocument
createEmptyDocument
(
int
videotracks
,
int
audiotracks
);
QDomDocument
createEmptyDocument
(
const
QList
<
TrackInfo
>
&
tracks
);
QDomDocument
createEmptyDocument
(
const
QList
<
TrackInfo
>
&
tracks
,
int
audiotracks
);
/** @brief Updates the project folder location entry in the kdenlive file dialogs to point to the current project folder. */
void
updateProjectFolderPlacesEntry
();
...
...
src/timeline2/model/builders/meltBuilder.cpp
View file @
3022c6ac
...
...
@@ -63,7 +63,7 @@ bool constructTimelineFromMelt(const std::shared_ptr<TimelineItemModel> &timelin
QLatin1String
(
"black_track"
)};
bool
ok
=
true
;
qDebug
()
<<
"//////////////////////
\n
Trying to construct"
<<
tractor
.
count
()
<<
"tracks.
\n
////////////////////////////////"
;
// Import master track effects
for
(
int
i
=
0
;
i
<
tractor
.
filter_count
();
i
++
)
{
std
::
unique_ptr
<
Mlt
::
Filter
>
filter
(
tractor
.
filter
(
i
));
...
...
@@ -71,7 +71,7 @@ bool constructTimelineFromMelt(const std::shared_ptr<TimelineItemModel> &timelin
timeline
->
tractor
()
->
attach
(
*
filter
.
get
());
}
}
QList
<
int
>
videoTracksIndexes
;
// Black track index
videoTracksIndexes
<<
0
;
...
...
@@ -99,6 +99,7 @@ bool constructTimelineFromMelt(const std::shared_ptr<TimelineItemModel> &timelin
ok
=
ok
&&
constructTrackFromMelt
(
timeline
,
tid
,
local_tractor
,
binIdCorresp
,
undo
,
redo
,
audioTrack
,
progressDialog
);
timeline
->
setTrackProperty
(
tid
,
QStringLiteral
(
"kdenlive:thumbs_format"
),
track
->
get
(
"kdenlive:thumbs_format"
));
timeline
->
setTrackProperty
(
tid
,
QStringLiteral
(
"kdenlive:audio_rec"
),
track
->
get
(
"kdenlive:audio_rec"
));
timeline
->
setTrackProperty
(
tid
,
QStringLiteral
(
"kdenlive:timeline_active"
),
track
->
get
(
"kdenlive:timeline_active"
));
if
(
lockState
>
0
)
{
timeline
->
setTrackLockedState
(
tid
,
true
);
}
...
...
@@ -123,6 +124,7 @@ bool constructTimelineFromMelt(const std::shared_ptr<TimelineItemModel> &timelin
ok
=
ok
&&
constructTrackFromMelt
(
timeline
,
tid
,
local_playlist
,
binIdCorresp
,
undo
,
redo
,
audioTrack
,
progressDialog
);
timeline
->
setTrackProperty
(
tid
,
QStringLiteral
(
"kdenlive:thumbs_format"
),
local_playlist
.
get
(
"kdenlive:thumbs_format"
));
timeline
->
setTrackProperty
(
tid
,
QStringLiteral
(
"kdenlive:audio_rec"
),
track
->
get
(
"kdenlive:audio_rec"
));
timeline
->
setTrackProperty
(
tid
,
QStringLiteral
(
"kdenlive:timeline_active"
),
track
->
get
(
"kdenlive:timeline_active"
));
if
(
lockState
>
0
)
{
timeline
->
setTrackLockedState
(
tid
,
true
);
}
...
...
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