[longomatch] Add support to split playlists in several files
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Add support to split playlists in several files
- Date: Tue, 19 Feb 2013 20:39:28 +0000 (UTC)
commit 41c278347d95fbae2330a06c4161b7b01648eb67
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Tue Feb 19 21:38:33 2013 +0100
Add support to split playlists in several files
LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs | 2 +-
.../Gui/Dialog/VideoEditionProperties.cs | 33 +++++
LongoMatch.GUI/Gui/GUIToolkit.cs | 41 +++++-
...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 1 +
...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 144 ++++++++++++++------
.../gtk-gui/LongoMatch.Gui.MainWindow.cs | 2 +-
LongoMatch.GUI/gtk-gui/gui.stetic | 84 +++++++++++-
LongoMatch.GUI/gtk-gui/objects.xml | 58 ++++----
LongoMatch.Services/Services/PlaylistManager.cs | 5 +-
9 files changed, 288 insertions(+), 82 deletions(-)
---
diff --git a/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs b/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
index 494fc3c..8da29f0 100644
--- a/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
+++ b/LongoMatch.Core/Interfaces/GUI/IGUIToolkit.cs
@@ -46,7 +46,7 @@ namespace LongoMatch.Interfaces.GUI
IBusyDialog BusyDialog(string message);
- Job ConfigureRenderingJob (IPlayList playlist);
+ List<Job> ConfigureRenderingJob (IPlayList playlist);
void ExportFrameSeries(Project openenedProject, Play play, string snapshotDir);
ProjectDescription SelectProject(List<ProjectDescription> projects);
diff --git a/LongoMatch.GUI/Gui/Dialog/VideoEditionProperties.cs
b/LongoMatch.GUI/Gui/Dialog/VideoEditionProperties.cs
index d3585dd..efa529e 100644
--- a/LongoMatch.GUI/Gui/Dialog/VideoEditionProperties.cs
+++ b/LongoMatch.GUI/Gui/Dialog/VideoEditionProperties.cs
@@ -65,6 +65,16 @@ namespace LongoMatch.Gui.Dialog
return descriptioncheckbutton.Active;
}
}
+
+ public String OutputDir {
+ get;
+ set;
+ }
+
+ public bool SplitFiles {
+ get;
+ set;
+ }
#endregion Properties
@@ -165,11 +175,34 @@ namespace LongoMatch.Gui.Dialog
}
fChooser.Destroy();
}
+
protected virtual void OnButtonCancelClicked(object sender, System.EventArgs e)
{
this.Destroy();
}
+ protected void OnSplitfilesbuttonClicked (object sender, System.EventArgs e)
+ {
+ dirbox.Visible = splitfilesbutton.Active;
+ filebox.Visible = !splitfilesbutton.Active;
+ SplitFiles = splitfilesbutton.Active;
+ }
+
+ protected void OnOpendirbuttonClicked (object sender, System.EventArgs e)
+ {
+ FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Output folder
..."),
+ this,
+ FileChooserAction.SelectFolder,
+ "gtk-cancel",ResponseType.Cancel,
+ "gtk-open",ResponseType.Accept);
+ fChooser.SetCurrentFolder(Config.VideosDir());
+ fChooser.CurrentName = "Playlist";
+ if(fChooser.Run() == (int)ResponseType.Accept) {
+ dirlabel.Text = fChooser.Filename;
+ OutputDir = fChooser.Filename;
+ }
+ fChooser.Destroy();
+ }
}
}
diff --git a/LongoMatch.GUI/Gui/GUIToolkit.cs b/LongoMatch.GUI/Gui/GUIToolkit.cs
index ce86c6f..f4d9ba6 100644
--- a/LongoMatch.GUI/Gui/GUIToolkit.cs
+++ b/LongoMatch.GUI/Gui/GUIToolkit.cs
@@ -17,6 +17,7 @@
//
using System;
using System.Collections.Generic;
+using System.IO;
using Gtk;
using Gdk;
using Mono.Unix;
@@ -98,10 +99,10 @@ namespace LongoMatch.Gui
extensionFilter, FileChooserAction.Open);
}
- public Job ConfigureRenderingJob (IPlayList playlist)
+ public List<Job> ConfigureRenderingJob (IPlayList playlist)
{
VideoEditionProperties vep;
- Job job = null;
+ List<Job> jobs = new List<Job>();
int response;
if (playlist.Count == 0) {
@@ -112,14 +113,38 @@ namespace LongoMatch.Gui
vep = new VideoEditionProperties();
vep.TransientFor = mainWindow as Gtk.Window;
response = vep.Run();
- while(response == (int)ResponseType.Ok && vep.EncodingSettings.OutputFile == "") {
- WarningMessage(Catalog.GetString("Please, select a video file."));
- response=vep.Run();
+ while(response == (int)ResponseType.Ok) {
+ if (!vep.SplitFiles && vep.EncodingSettings.OutputFile == "") {
+ WarningMessage(Catalog.GetString("Please, select a video file."));
+ response=vep.Run();
+ } else if (vep.SplitFiles && vep.OutputDir == "") {
+ WarningMessage(Catalog.GetString("Please, select an output
directory."));
+ response=vep.Run();
+ } else {
+ break;
+ }
+ }
+ if(response ==(int)ResponseType.Ok) {
+ if (!vep.SplitFiles) {
+ jobs.Add(new Job(playlist, vep.EncodingSettings,
+ vep.EnableAudio, vep.TitleOverlay));
+ } else {
+ int i = 0;
+ foreach (PlayListPlay play in playlist) {
+ EncodingSettings settings = vep.EncodingSettings;
+ PlayList pl = new PlayList();
+ string filename = String.Format ("{0}-{1}.{2}", play.Name,
i.ToString("d4"),
+
settings.EncodingProfile.Extension);
+
+ pl.Add(play);
+ settings.OutputFile = Path.Combine (vep.OutputDir, filename);
+ jobs.Add(new Job(pl, settings, vep.EnableAudio,
vep.TitleOverlay));
+ i++;
+ }
+ }
}
- if(response ==(int)ResponseType.Ok)
- job = new Job(playlist, vep.EncodingSettings, vep.EnableAudio,
vep.TitleOverlay);
vep.Destroy();
- return job;
+ return jobs;
}
public void ExportFrameSeries(Project openedProject, Play play, string snapshotsDir) {
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
index 46a1e31..47ae7d8 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
@@ -48,6 +48,7 @@ namespace LongoMatch.Gui.Dialog
this.fromfileradiobutton = new global::Gtk.RadioButton
(global::Mono.Unix.Catalog.GetString ("New project using a video file"));
this.fromfileradiobutton.CanFocus = true;
this.fromfileradiobutton.Name = "fromfileradiobutton";
+ this.fromfileradiobutton.Active = true;
this.fromfileradiobutton.DrawIndicator = true;
this.fromfileradiobutton.UseUnderline = true;
this.fromfileradiobutton.FocusOnClick = false;
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs
index f79f4db..02fe1b1 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.Dialog.VideoEditionProperties.cs
@@ -17,11 +17,17 @@ namespace LongoMatch.Gui.Dialog
private global::Gtk.HBox hbox6;
private global::Gtk.CheckButton descriptioncheckbutton;
private global::Gtk.CheckButton audiocheckbutton;
- private global::Gtk.HBox hbox1;
+ private global::Gtk.CheckButton splitfilesbutton;
+ private global::Gtk.HBox filebox;
private global::Gtk.Label filenamelabel;
private global::Gtk.HBox hbox3;
private global::Gtk.Label filelabel;
private global::Gtk.Button openbutton;
+ private global::Gtk.HBox dirbox;
+ private global::Gtk.Label directorynamelabel1;
+ private global::Gtk.HBox hbox8;
+ private global::Gtk.Label dirlabel;
+ private global::Gtk.Button opendirbutton;
private global::Gtk.Button buttonCancel;
private global::Gtk.Button buttonOk;
@@ -153,19 +159,31 @@ namespace LongoMatch.Gui.Dialog
w13.Expand = false;
w13.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
- this.hbox1 = new global::Gtk.HBox ();
- this.hbox1.Name = "hbox1";
- this.hbox1.Spacing = 6;
- // Container child hbox1.Gtk.Box+BoxChild
+ this.splitfilesbutton = new global::Gtk.CheckButton ();
+ this.splitfilesbutton.CanFocus = true;
+ this.splitfilesbutton.Name = "splitfilesbutton";
+ this.splitfilesbutton.Label = global::Mono.Unix.Catalog.GetString ("Split output in
one file per playlist element");
+ this.splitfilesbutton.DrawIndicator = true;
+ this.splitfilesbutton.UseUnderline = true;
+ this.vbox2.Add (this.splitfilesbutton);
+ global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2
[this.splitfilesbutton]));
+ w14.Position = 4;
+ w14.Expand = false;
+ w14.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.filebox = new global::Gtk.HBox ();
+ this.filebox.Name = "filebox";
+ this.filebox.Spacing = 6;
+ // Container child filebox.Gtk.Box+BoxChild
this.filenamelabel = new global::Gtk.Label ();
this.filenamelabel.Name = "filenamelabel";
this.filenamelabel.LabelProp = global::Mono.Unix.Catalog.GetString ("File name: ");
- this.hbox1.Add (this.filenamelabel);
- global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox1
[this.filenamelabel]));
- w14.Position = 0;
- w14.Expand = false;
- w14.Fill = false;
- // Container child hbox1.Gtk.Box+BoxChild
+ this.filebox.Add (this.filenamelabel);
+ global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.filebox
[this.filenamelabel]));
+ w15.Position = 0;
+ w15.Expand = false;
+ w15.Fill = false;
+ // Container child filebox.Gtk.Box+BoxChild
this.hbox3 = new global::Gtk.HBox ();
this.hbox3.Name = "hbox3";
this.hbox3.Spacing = 6;
@@ -173,8 +191,8 @@ namespace LongoMatch.Gui.Dialog
this.filelabel = new global::Gtk.Label ();
this.filelabel.Name = "filelabel";
this.hbox3.Add (this.filelabel);
- global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.filelabel]));
- w15.Position = 0;
+ global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.filelabel]));
+ w16.Position = 0;
// Container child hbox3.Gtk.Box+BoxChild
this.openbutton = new global::Gtk.Button ();
this.openbutton.CanFocus = true;
@@ -183,29 +201,72 @@ namespace LongoMatch.Gui.Dialog
this.openbutton.UseUnderline = true;
this.openbutton.Label = "gtk-save-as";
this.hbox3.Add (this.openbutton);
- global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.openbutton]));
- w16.Position = 1;
- w16.Expand = false;
- w16.Fill = false;
- this.hbox1.Add (this.hbox3);
- global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.hbox3]));
+ global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.openbutton]));
w17.Position = 1;
- this.vbox2.Add (this.hbox1);
- global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox1]));
- w18.Position = 4;
- w18.Expand = false;
- w18.Fill = false;
- w1.Add (this.vbox2);
- global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2]));
- w19.Position = 0;
+ w17.Expand = false;
+ w17.Fill = false;
+ this.filebox.Add (this.hbox3);
+ global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.filebox
[this.hbox3]));
+ w18.Position = 1;
+ this.vbox2.Add (this.filebox);
+ global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox2
[this.filebox]));
+ w19.Position = 5;
w19.Expand = false;
w19.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.dirbox = new global::Gtk.HBox ();
+ this.dirbox.Name = "dirbox";
+ this.dirbox.Spacing = 6;
+ // Container child dirbox.Gtk.Box+BoxChild
+ this.directorynamelabel1 = new global::Gtk.Label ();
+ this.directorynamelabel1.Name = "directorynamelabel1";
+ this.directorynamelabel1.LabelProp = global::Mono.Unix.Catalog.GetString ("Directory
name: ");
+ this.dirbox.Add (this.directorynamelabel1);
+ global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.dirbox
[this.directorynamelabel1]));
+ w20.Position = 0;
+ w20.Expand = false;
+ w20.Fill = false;
+ // Container child dirbox.Gtk.Box+BoxChild
+ this.hbox8 = new global::Gtk.HBox ();
+ this.hbox8.Name = "hbox8";
+ this.hbox8.Spacing = 6;
+ // Container child hbox8.Gtk.Box+BoxChild
+ this.dirlabel = new global::Gtk.Label ();
+ this.dirlabel.Name = "dirlabel";
+ this.hbox8.Add (this.dirlabel);
+ global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.hbox8
[this.dirlabel]));
+ w21.Position = 0;
+ // Container child hbox8.Gtk.Box+BoxChild
+ this.opendirbutton = new global::Gtk.Button ();
+ this.opendirbutton.CanFocus = true;
+ this.opendirbutton.Name = "opendirbutton";
+ this.opendirbutton.UseStock = true;
+ this.opendirbutton.UseUnderline = true;
+ this.opendirbutton.Label = "gtk-save-as";
+ this.hbox8.Add (this.opendirbutton);
+ global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.hbox8
[this.opendirbutton]));
+ w22.Position = 1;
+ w22.Expand = false;
+ w22.Fill = false;
+ this.dirbox.Add (this.hbox8);
+ global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.dirbox [this.hbox8]));
+ w23.Position = 1;
+ this.vbox2.Add (this.dirbox);
+ global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.dirbox]));
+ w24.Position = 6;
+ w24.Expand = false;
+ w24.Fill = false;
+ w1.Add (this.vbox2);
+ global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2]));
+ w25.Position = 0;
+ w25.Expand = false;
+ w25.Fill = false;
// Internal child LongoMatch.Gui.Dialog.VideoEditionProperties.ActionArea
- global::Gtk.HButtonBox w20 = this.ActionArea;
- w20.Name = "dialog1_ActionArea";
- w20.Spacing = 6;
- w20.BorderWidth = ((uint)(5));
- w20.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+ global::Gtk.HButtonBox w26 = this.ActionArea;
+ w26.Name = "dialog1_ActionArea";
+ w26.Spacing = 6;
+ w26.BorderWidth = ((uint)(5));
+ w26.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
this.buttonCancel = new global::Gtk.Button ();
this.buttonCancel.CanDefault = true;
@@ -215,9 +276,9 @@ namespace LongoMatch.Gui.Dialog
this.buttonCancel.UseUnderline = true;
this.buttonCancel.Label = "gtk-cancel";
this.AddActionWidget (this.buttonCancel, -6);
- global::Gtk.ButtonBox.ButtonBoxChild w21 =
((global::Gtk.ButtonBox.ButtonBoxChild)(w20 [this.buttonCancel]));
- w21.Expand = false;
- w21.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w27 =
((global::Gtk.ButtonBox.ButtonBoxChild)(w26 [this.buttonCancel]));
+ w27.Expand = false;
+ w27.Fill = false;
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
this.buttonOk = new global::Gtk.Button ();
this.buttonOk.CanDefault = true;
@@ -227,17 +288,20 @@ namespace LongoMatch.Gui.Dialog
this.buttonOk.UseUnderline = true;
this.buttonOk.Label = "gtk-ok";
this.AddActionWidget (this.buttonOk, -5);
- global::Gtk.ButtonBox.ButtonBoxChild w22 =
((global::Gtk.ButtonBox.ButtonBoxChild)(w20 [this.buttonOk]));
- w22.Position = 1;
- w22.Expand = false;
- w22.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w28 =
((global::Gtk.ButtonBox.ButtonBoxChild)(w26 [this.buttonOk]));
+ w28.Position = 1;
+ w28.Expand = false;
+ w28.Fill = false;
if ((this.Child != null)) {
this.Child.ShowAll ();
}
this.DefaultWidth = 516;
- this.DefaultHeight = 245;
+ this.DefaultHeight = 309;
+ this.dirbox.Hide ();
this.Show ();
+ this.splitfilesbutton.Clicked += new global::System.EventHandler
(this.OnSplitfilesbuttonClicked);
this.openbutton.Clicked += new global::System.EventHandler (this.OnOpenbuttonClicked);
+ this.opendirbutton.Clicked += new global::System.EventHandler
(this.OnOpendirbuttonClicked);
this.buttonCancel.Clicked += new global::System.EventHandler
(this.OnButtonCancelClicked);
this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked);
}
diff --git a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
index defbc6d..56b512b 100644
--- a/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch.GUI/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@ -137,7 +137,7 @@ namespace LongoMatch.Gui
this.ImportProjectAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("_Import
Project");
w1.Add (this.ImportProjectAction, "<Control>i");
this.ManualTaggingViewAction = new global::Gtk.RadioAction
("ManualTaggingViewAction", global::Mono.Unix.Catalog.GetString ("Manual tagging view"), null, null, 0);
- this.ManualTaggingViewAction.Group = this.TimelineViewAction.Group;
+ this.ManualTaggingViewAction.Group = this.TaggingViewAction.Group;
this.ManualTaggingViewAction.Sensitive = false;
this.ManualTaggingViewAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Free
Capture Mode");
w1.Add (this.ManualTaggingViewAction, "<Control>f");
diff --git a/LongoMatch.GUI/gtk-gui/gui.stetic b/LongoMatch.GUI/gtk-gui/gui.stetic
index 93b7af6..34f21c9 100644
--- a/LongoMatch.GUI/gtk-gui/gui.stetic
+++ b/LongoMatch.GUI/gtk-gui/gui.stetic
@@ -3015,7 +3015,7 @@ new one.</property>
</widget>
</child>
</widget>
- <widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.VideoEditionProperties" design-size="516 245">
+ <widget class="Gtk.Dialog" id="LongoMatch.Gui.Dialog.VideoEditionProperties" design-size="516 309">
<property name="MemberName" />
<property name="Title" translatable="yes">Video Properties</property>
<property name="Icon">stock:longomatch Dialog</property>
@@ -3185,7 +3185,24 @@ Extra</property>
</packing>
</child>
<child>
- <widget class="Gtk.HBox" id="hbox1">
+ <widget class="Gtk.CheckButton" id="splitfilesbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes">Split output in one file per playlist
element</property>
+ <property name="DrawIndicator">True</property>
+ <property name="HasLabel">True</property>
+ <property name="UseUnderline">True</property>
+ <signal name="Clicked" handler="OnSplitfilesbuttonClicked" />
+ </widget>
+ <packing>
+ <property name="Position">4</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.HBox" id="filebox">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
@@ -3238,7 +3255,68 @@ Extra</property>
</child>
</widget>
<packing>
- <property name="Position">4</property>
+ <property name="Position">5</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.HBox" id="dirbox">
+ <property name="MemberName" />
+ <property name="Visible">False</property>
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Label" id="directorynamelabel1">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Directory name: </property>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.HBox" id="hbox8">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Label" id="dirlabel">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Button" id="opendirbutton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="UseStock">True</property>
+ <property name="Type">StockItem</property>
+ <property name="StockId">gtk-save-as</property>
+ <signal name="Clicked" handler="OnOpendirbuttonClicked" />
+ <property name="label">gtk-save-as</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">6</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
diff --git a/LongoMatch.GUI/gtk-gui/objects.xml b/LongoMatch.GUI/gtk-gui/objects.xml
index aff1431..7081c33 100644
--- a/LongoMatch.GUI/gtk-gui/objects.xml
+++ b/LongoMatch.GUI/gtk-gui/objects.xml
@@ -259,33 +259,7 @@
<signal name="SnapshotSeriesEvent" />
<signal name="TagPlay" />
<signal name="NewRenderingJob" />
- </itemgroup>
- </signals>
- </object>
- <object type="LongoMatch.Gui.Component.PlaysSelectionWidget" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals>
- <itemgroup label="PlaysSelectionWidget Signals">
- <signal name="PlaysDeleted" />
- <signal name="PlaySelected" />
- <signal name="PlayListNodeAdded" />
- <signal name="SnapshotSeries" />
- <signal name="RenderPlaylist" />
- <signal name="TagPlay" />
- </itemgroup>
- </signals>
- </object>
- <object type="LongoMatch.Gui.Component.PlaysListTreeWidget" palette-category="LongoMatch"
allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals>
- <itemgroup label="PlaysListTreeWidget Signals">
- <signal name="TimeNodeSelected" />
- <signal name="TimeNodeChanged" />
- <signal name="TimeNodeDeleted" />
- <signal name="PlayListNodeAdded" />
- <signal name="SnapshotSeriesEvent" />
- <signal name="TagPlay" />
- <signal name="RenderPlaylistEvent" />
+ <signal name="PlayCategoryChanged" />
</itemgroup>
</signals>
</object>
@@ -321,6 +295,7 @@
<signal name="SnapshotSeriesEvent" />
<signal name="TagPlay" />
<signal name="NewRenderingJob" />
+ <signal name="PlayCategoryChanged" />
</itemgroup>
</signals>
</object>
@@ -341,4 +316,33 @@
</itemgroup>
</signals>
</object>
+ <object type="LongoMatch.Gui.Component.PlaysSelectionWidget" palette-category="General"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="PlaysSelectionWidget Signals">
+ <signal name="PlaysDeleted" />
+ <signal name="PlaySelected" />
+ <signal name="PlayCategoryChanged" />
+ <signal name="PlayListNodeAdded" />
+ <signal name="SnapshotSeries" />
+ <signal name="RenderPlaylist" />
+ <signal name="TagPlay" />
+ </itemgroup>
+ </signals>
+ </object>
+ <object type="LongoMatch.Gui.Component.PlaysListTreeWidget" palette-category="LongoMatch"
allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="PlaysListTreeWidget Signals">
+ <signal name="TimeNodeSelected" />
+ <signal name="TimeNodeChanged" />
+ <signal name="TimeNodeDeleted" />
+ <signal name="PlayListNodeAdded" />
+ <signal name="PlayCategoryChanged" />
+ <signal name="SnapshotSeriesEvent" />
+ <signal name="TagPlay" />
+ <signal name="RenderPlaylistEvent" />
+ </itemgroup>
+ </signals>
+ </object>
</objects>
\ No newline at end of file
diff --git a/LongoMatch.Services/Services/PlaylistManager.cs b/LongoMatch.Services/Services/PlaylistManager.cs
index 5ec1e07..6d244f4 100644
--- a/LongoMatch.Services/Services/PlaylistManager.cs
+++ b/LongoMatch.Services/Services/PlaylistManager.cs
@@ -17,6 +17,7 @@
//
using System;
using System.Threading;
+using System.Collections.Generic;
using LongoMatch.Interfaces;
using LongoMatch.Interfaces.GUI;
@@ -170,8 +171,8 @@ namespace LongoMatch.Services
protected virtual void OnRenderPlaylistEvent (IPlayList playlist)
{
- Job job = guiToolkit.ConfigureRenderingJob(playlist);
- if (job != null)
+ List<Job> jobs = guiToolkit.ConfigureRenderingJob(playlist);
+ foreach (Job job in jobs)
videoRenderer.AddJob(job);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]