mirror of
https://github.com/alexkay/spek.git
synced 2025-06-18 07:53:20 +03:00
Suggest file name for the image
This commit is contained in:
parent
5d1749b144
commit
6f57f45eb1
@ -23,8 +23,8 @@ using Gtk;
|
|||||||
namespace Spek {
|
namespace Spek {
|
||||||
class Spectrogram : DrawingArea {
|
class Spectrogram : DrawingArea {
|
||||||
|
|
||||||
|
public string file_name { get; private set; }
|
||||||
private Source source;
|
private Source source;
|
||||||
private string file_name;
|
|
||||||
private const int THRESHOLD = -92;
|
private const int THRESHOLD = -92;
|
||||||
private const int BANDS = 1024;
|
private const int BANDS = 1024;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ namespace Spek {
|
|||||||
public class Window : Gtk.Window {
|
public class Window : Gtk.Window {
|
||||||
|
|
||||||
private Spectrogram spectrogram;
|
private Spectrogram spectrogram;
|
||||||
private string path;
|
private string cur_dir;
|
||||||
|
|
||||||
public Window () {
|
public Window () {
|
||||||
title = _("Spek - Acoustic Spectrum Analyser");
|
title = _("Spek - Acoustic Spectrum Analyser");
|
||||||
@ -73,7 +73,7 @@ namespace Spek {
|
|||||||
toolbar.insert (about, -1);
|
toolbar.insert (about, -1);
|
||||||
|
|
||||||
spectrogram = new Spectrogram ();
|
spectrogram = new Spectrogram ();
|
||||||
path = Environment.get_home_dir ();
|
cur_dir = Environment.get_home_dir ();
|
||||||
|
|
||||||
var vbox = new VBox (false, 0);
|
var vbox = new VBox (false, 0);
|
||||||
vbox.pack_start (toolbar, false, true, 0);
|
vbox.pack_start (toolbar, false, true, 0);
|
||||||
@ -89,12 +89,11 @@ namespace Spek {
|
|||||||
STOCK_OPEN, ResponseType.ACCEPT, null);
|
STOCK_OPEN, ResponseType.ACCEPT, null);
|
||||||
chooser.set_default_response (ResponseType.ACCEPT);
|
chooser.set_default_response (ResponseType.ACCEPT);
|
||||||
chooser.select_multiple = false;
|
chooser.select_multiple = false;
|
||||||
chooser.local_only = false;
|
chooser.set_current_folder (cur_dir);
|
||||||
chooser.set_current_folder (path);
|
|
||||||
if (chooser.run () == ResponseType.ACCEPT) {
|
if (chooser.run () == ResponseType.ACCEPT) {
|
||||||
var filename = chooser.get_filename ();
|
var file_name = chooser.get_filename ();
|
||||||
path = Path.get_dirname (filename);
|
cur_dir = Path.get_dirname (file_name);
|
||||||
spectrogram.open (filename);
|
spectrogram.open (file_name);
|
||||||
}
|
}
|
||||||
chooser.destroy ();
|
chooser.destroy ();
|
||||||
}
|
}
|
||||||
@ -104,12 +103,22 @@ namespace Spek {
|
|||||||
_("Save Spectrogram"), this, FileChooserAction.SAVE,
|
_("Save Spectrogram"), this, FileChooserAction.SAVE,
|
||||||
STOCK_CANCEL, ResponseType.CANCEL,
|
STOCK_CANCEL, ResponseType.CANCEL,
|
||||||
STOCK_SAVE, ResponseType.ACCEPT, null);
|
STOCK_SAVE, ResponseType.ACCEPT, null);
|
||||||
|
chooser.set_default_response (ResponseType.ACCEPT);
|
||||||
|
chooser.set_current_folder (cur_dir);
|
||||||
|
|
||||||
|
// Suggested name is <file_name>.png
|
||||||
|
var file_name = Path.get_basename (spectrogram.file_name);
|
||||||
|
file_name += ".png";
|
||||||
|
chooser.set_current_name (file_name);
|
||||||
|
|
||||||
var filter = new FileFilter ();
|
var filter = new FileFilter ();
|
||||||
filter.add_pattern ("*.png");
|
filter.add_pattern ("*.png");
|
||||||
filter.set_name (_("PNG Images"));
|
filter.set_name (_("PNG Images"));
|
||||||
chooser.add_filter (filter);
|
chooser.add_filter (filter);
|
||||||
if (chooser.run () == ResponseType.ACCEPT) {
|
if (chooser.run () == ResponseType.ACCEPT) {
|
||||||
spectrogram.save (chooser.get_filename ());
|
file_name = chooser.get_filename ();
|
||||||
|
cur_dir = Path.get_dirname (file_name);
|
||||||
|
spectrogram.save (file_name);
|
||||||
}
|
}
|
||||||
chooser.destroy ();
|
chooser.destroy ();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user