diff options
Diffstat (limited to 'src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs')
-rw-r--r-- | src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs | 56 |
1 files changed, 50 insertions, 6 deletions
diff --git a/src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs b/src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs index fc291de..863925c 100644 --- a/src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs +++ b/src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs @@ -11,6 +11,12 @@ namespace Banshee.CueSheets _sheet=s; } + private Gtk.HSeparator hsep() { + Gtk.HSeparator h=new Gtk.HSeparator(); + h.Show (); + return h; + } + private void CreateGui() { Gtk.FileChooserButton fc=new Gtk.FileChooserButton("Choose directory to put your splitted files",Gtk.FileChooserAction.SelectFolder); string fn=Banshee.Configuration.ConfigurationClient.Get<string>("cuesheets_todevice",""); @@ -19,30 +25,68 @@ namespace Banshee.CueSheets fn=fc.Filename; Banshee.Configuration.ConfigurationClient.Set<string>("cuesheets_todevice",fn); }); - Gtk.Button btn=new Gtk.Button("Split!"); + Gtk.Button btn=new Gtk.Button("Split CueSheet Audio File"); + Gtk.Button csplit=new Gtk.Button("Cancel"); + csplit.Clicked+=delegate(object sender,EventArgs args) { + _splt.CancelSplit(); + }; Gtk.ProgressBar bar=new Gtk.ProgressBar(); Gtk.ProgressBar nr=new Gtk.ProgressBar(); Gtk.Button ok=(Gtk.Button) base.AddButton ("OK",1); + Gtk.Label result=new Gtk.Label("-"); + btn.Clicked+=delegate(object sender,EventArgs args) { + btn.Hide (); + csplit.Show (); + result.Markup=""; + ok.Sensitive=false; + fc.Sensitive=false; + btn.Sensitive=false; + _splt.SplitWithPaths (); - //_splt.convertToLatin1 (); - _splt.SplitToDir (fn,true); - GLib.Timeout.Add(10,delegate () { + + bool convert_to_latin1=true; + _splt.SplitToDir (fn,convert_to_latin1); + + GLib.Timeout.Add(50,delegate () { bar.Fraction=_splt.ProgressOfCurrentTrack; int n=_splt.ProgressNTracks; int i=_splt.ProgressCurrentTrack; double d=((double) i)/((double) n); nr.Fraction=d; - if (_splt.SplitFinished) { ok.Sensitive=true; } + if (_splt.SplitFinished) { + ok.Sensitive=true; + btn.Sensitive=true; + fc.Sensitive=true; + csplit.Hide (); + btn.Show (); + if (_splt.Cancelled) { + result.Markup="<b>Split Cancelled</b>"; + } else { + result.Markup="<b>Finished</b>"; + } + } return !_splt.SplitFinished; }); + }; + fc.Show (); + nr.Show (); + bar.Show (); + btn.Show (); + result.Show (); base.VBox.Add (fc); + base.VBox.Add (hsep()); base.VBox.Add (nr); base.VBox.Add (bar); + base.VBox.Add (hsep ()); + base.VBox.Add (result); + base.VBox.Add (hsep ()); base.VBox.Add (btn); - base.VBox.ShowAll (); + base.VBox.Add (csplit); + + base.VBox.Show(); } public void Do() { |