summaryrefslogtreecommitdiff
path: root/src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs')
-rw-r--r--src/CueSheets/Banshee.CueSheets/Gui/MusicToDevice.cs56
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() {