app: sequence management -- new-sequence dialog, folders, sequences in the project bin
- File > New > Sequence opens a real dialog (name, PAL/NTSC/HD presets, width/height/frame rate, progressive/interlaced); VideoParams gains an interlaced flag - File > New > Folder creates a folder in the project root - sequences are mounted under the root folder so they appear in the project explorer (including the auto-created Sequence 1 and orphans from older projects); right-click > Sequence Properties edits the parameters afterwards - dropping footage onto an empty, sequence-less timeline auto-creates a sequence from the footage's first video stream
This commit is contained in:
@@ -151,9 +151,19 @@ impl<E: AppEngine> ProjectExplorerPanel<E> {
|
||||
})
|
||||
.detach();
|
||||
}
|
||||
LOCAL_RENAME | LOCAL_DELETE | LOCAL_PROPERTIES | LOCAL_OPEN_IN_NEW_TAB => {
|
||||
LOCAL_RENAME | LOCAL_DELETE | LOCAL_OPEN_IN_NEW_TAB => {
|
||||
println!("[project explorer] menu action {item} (not implemented yet)");
|
||||
}
|
||||
LOCAL_PROPERTIES => {
|
||||
let Some(id) = self.context_entry else {
|
||||
return;
|
||||
};
|
||||
if self.engine.read(cx).entry_is_sequence(id) {
|
||||
cx.emit(SequencePropertiesRequested(id));
|
||||
} else {
|
||||
println!("[project explorer] properties for non-sequence entry {id} (not implemented yet)");
|
||||
}
|
||||
}
|
||||
LOCAL_PROXY_GENERATE | LOCAL_PROXY_USE | LOCAL_PROXY_REVEAL | LOCAL_PROXY_DELETE => {
|
||||
let Some(id) = self.context_entry else {
|
||||
return;
|
||||
@@ -243,6 +253,13 @@ impl<E: AppEngine> EventEmitter<PanelEvent> for ProjectExplorerPanel<E> {}
|
||||
|
||||
impl<E: AppEngine> EventEmitter<ContextMenuTriggered> for ProjectExplorerPanel<E> {}
|
||||
|
||||
/// The project explorer asked the shell to open the sequence properties
|
||||
/// dialog for the given sequence entry.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub struct SequencePropertiesRequested(pub u64);
|
||||
|
||||
impl<E: AppEngine> EventEmitter<SequencePropertiesRequested> for ProjectExplorerPanel<E> {}
|
||||
|
||||
impl<E: AppEngine> DockPanel for ProjectExplorerPanel<E> {
|
||||
fn panel_id(&self) -> gpui::dock::PanelId {
|
||||
PROJECT
|
||||
|
||||
Reference in New Issue
Block a user