summaryrefslogtreecommitdiff
path: root/gtk2_ardour/sfdb_ui.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-09-02 19:28:42 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-09-02 19:28:42 +0000
commit48c12d940b81185996987b045db8218ca9d39939 (patch)
tree4a46546f2d2c453298514427bc89833996f31679 /gtk2_ardour/sfdb_ui.cc
parentf2a2e9c00281c9bfe5ff7df31cdc8860129b282c (diff)
lots of GUI tweaks for the import dialog
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2362 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/sfdb_ui.cc')
-rw-r--r--gtk2_ardour/sfdb_ui.cc118
1 files changed, 81 insertions, 37 deletions
diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc
index 0abb810bc2..5c7e0c06f4 100644
--- a/gtk2_ardour/sfdb_ui.cc
+++ b/gtk2_ardour/sfdb_ui.cc
@@ -64,40 +64,74 @@ SoundFileBox::SoundFileBox ()
:
_session(0),
current_pid(0),
- main_box (false, 3),
- bottom_box (true, 4),
- play_btn (Stock::MEDIA_PLAY),
+ table (6, 2),
+ length_clock ("sfboxLengthClock", true, "EditCursorClock", false, true, false),
+ timecode_clock ("sfboxTimecodeClock", true, "EditCursorClock", false, false, false),
+ main_box (false, 6),
+ bottom_box (true, 6),
stop_btn (Stock::MEDIA_STOP)
{
set_name (X_("SoundFileBox"));
- set_size_request (250, 250);
+ // set_size_request (250, 250);
- Label* label = manage (new Label);
- label->set_markup (_("<b>Soundfile Info</b>"));
+ preview_label.set_markup (_("<b>Soundfile Info</b>"));
- border_frame.set_label_widget (*label);
+ border_frame.set_label_widget (preview_label);
border_frame.add (main_box);
pack_start (border_frame, true, true);
- set_border_width (4);
+ set_border_width (6);
- main_box.set_border_width (4);
+ main_box.set_border_width (6);
- main_box.pack_start(length, false, false);
- main_box.pack_start(format, false, false);
- main_box.pack_start(channels, false, false);
- main_box.pack_start(samplerate, false, false);
- main_box.pack_start(timecode, false, false);
+ length.set_text (_("Length:"));
+ timecode.set_text (_("Timestamp:"));
+ format.set_text (_("Format:"));
+ channels.set_text (_("Channels:"));
+ samplerate.set_text (_("Sample rate:"));
+
+ format_text.set_editable (false);
+
+ table.set_col_spacings (6);
+ table.set_homogeneous (false);
+
+ table.attach (channels, 0, 1, 0, 1, FILL|EXPAND, (AttachOptions) 0);
+ table.attach (samplerate, 0, 1, 1, 2, FILL|EXPAND, (AttachOptions) 0);
+ table.attach (format, 0, 1, 2, 4, FILL|EXPAND, (AttachOptions) 0);
+ table.attach (length, 0, 1, 4, 5, FILL|EXPAND, (AttachOptions) 0);
+ table.attach (timecode, 0, 1, 5, 6, FILL|EXPAND, (AttachOptions) 0);
+
+ table.attach (channels_value, 1, 2, 0, 1, FILL, (AttachOptions) 0);
+ table.attach (samplerate_value, 1, 2, 1, 2, FILL, (AttachOptions) 0);
+ table.attach (format_text, 1, 2, 2, 4, FILL, AttachOptions (0));
+ table.attach (length_clock, 1, 2, 4, 5, FILL, (AttachOptions) 0);
+ table.attach (timecode_clock, 1, 2, 5, 6, FILL, (AttachOptions) 0);
+
+ length_clock.set_mode (AudioClock::MinSec);
+ timecode_clock.set_mode (AudioClock::SMPTE);
tags_entry.set_editable (true);
tags_entry.signal_focus_out_event().connect (mem_fun (*this, &SoundFileBox::tags_entry_left));
HBox* hbox = manage (new HBox);
hbox->pack_start (tags_entry, true, true);
- main_box.pack_start(*hbox, true, true);
+ main_box.pack_start (table, false, false);
+
+ VBox* vbox = manage (new VBox);
+
+ Label* label = manage (new Label (_("Tags:")));
+ label->set_alignment (0.0f, 0.5f);
+ vbox->set_spacing (6);
+ vbox->pack_start(*label, false, false);
+ vbox->pack_start(*hbox, true, true);
+
+ main_box.pack_start(*vbox, true, true);
main_box.pack_start(bottom_box, false, false);
+ play_btn.set_image (*(manage (new Image (Stock::MEDIA_PLAY, ICON_SIZE_BUTTON))));
+ play_btn.set_label (_("Play (double click)"));
+
bottom_box.set_homogeneous(true);
bottom_box.pack_start(play_btn);
bottom_box.pack_start(stop_btn);
@@ -105,11 +139,14 @@ SoundFileBox::SoundFileBox ()
play_btn.signal_clicked().connect (mem_fun (*this, &SoundFileBox::audition));
stop_btn.signal_clicked().connect (mem_fun (*this, &SoundFileBox::stop_btn_clicked));
- length.set_alignment (0.0f, 0.0f);
- format.set_alignment (0.0f, 0.0f);
- channels.set_alignment (0.0f, 0.0f);
- samplerate.set_alignment (0.0f, 0.0f);
- timecode.set_alignment (0.0f, 0.0f);
+ length.set_alignment (0.0f, 0.5f);
+ format.set_alignment (0.0f, 0.5f);
+ channels.set_alignment (0.0f, 0.5f);
+ samplerate.set_alignment (0.0f, 0.5f);
+ timecode.set_alignment (0.0f, 0.5f);
+
+ channels_value.set_alignment (0.0f, 0.5f);
+ samplerate_value.set_alignment (0.0f, 0.5f);
stop_btn.set_no_show_all (true);
stop_btn.hide();
@@ -118,13 +155,18 @@ SoundFileBox::SoundFileBox ()
void
SoundFileBox::set_session(Session* s)
{
+ audition_connection.disconnect ();
+
_session = s;
if (!_session) {
play_btn.set_sensitive(false);
} else {
- _session->AuditionActive.connect(mem_fun (*this, &SoundFileBox::audition_status_changed));
+ audition_connection = _session->AuditionActive.connect(mem_fun (*this, &SoundFileBox::audition_status_changed));
}
+
+ length_clock.set_session (s);
+ timecode_clock.set_session (s);
}
bool
@@ -135,12 +177,15 @@ SoundFileBox::setup_labels (const Glib::ustring& filename)
string error_msg;
if(!AudioFileSource::get_soundfile_info (filename, sf_info, error_msg)) {
- length.set_text (_("Length: n/a"));
- format.set_text (_("Format: n/a"));
- channels.set_text (_("Channels: n/a"));
- samplerate.set_text (_("Sample rate: n/a"));
- timecode.set_text (_("Timecode: n/a"));
+
+ preview_label.set_markup (_("<b>Soundfile Info</b>"));
+ format_text.get_buffer()->set_text (_("n/a"));
+ channels_value.set_text (_("n/a"));
+ samplerate_value.set_text (_("n/a"));
tags_entry.get_buffer()->set_text ("");
+
+ length_clock.set (0);
+ timecode_clock.set (0);
tags_entry.set_sensitive (false);
play_btn.set_sensitive (false);
@@ -148,11 +193,13 @@ SoundFileBox::setup_labels (const Glib::ustring& filename)
return false;
}
- length.set_text (string_compose(_("Length: %1"), length2string(sf_info.length, sf_info.samplerate)));
- format.set_text (sf_info.format_name);
- channels.set_text (string_compose(_("Channels: %1"), sf_info.channels));
- samplerate.set_text (string_compose(_("Samplerate: %1"), sf_info.samplerate));
- timecode.set_text (string_compose (_("Timecode: %1"), length2string(sf_info.timecode, sf_info.samplerate)));
+ preview_label.set_markup (string_compose ("<b>%1</b>", Glib::path_get_basename (filename)));
+ format_text.get_buffer()->set_text (sf_info.format_name);
+ channels_value.set_text (to_string (sf_info.channels, std::dec));
+ samplerate_value.set_text (string_compose (X_("%1 Hz"), sf_info.samplerate));
+
+ length_clock.set (sf_info.length, true);
+ timecode_clock.set (sf_info.timecode, true);
// this is a hack that is fixed in trunk, i think (august 26th, 2007)
@@ -298,7 +345,6 @@ SoundFileBrowser::SoundFileBrowser (Gtk::Window& parent, string title, ARDOUR::S
found_search_btn (_("Search")),
selected_track_cnt (selected_tracks)
{
- VBox* vpacker;
VBox* vbox;
HBox* hbox;
HBox* hpacker;
@@ -306,13 +352,10 @@ SoundFileBrowser::SoundFileBrowser (Gtk::Window& parent, string title, ARDOUR::S
set_session (s);
resetting_ourselves = false;
- vpacker = manage (new VBox);
- vpacker->pack_start (preview, true, true);
-
hpacker = manage (new HBox);
hpacker->set_spacing (6);
hpacker->pack_start (notebook, true, true);
- hpacker->pack_start (*vpacker, false, false);
+ hpacker->pack_start (preview, false, false);
block_two.set_border_width (12);
block_three.set_border_width (12);
@@ -482,6 +525,7 @@ SoundFileBrowser::set_session (Session* s)
{
ArdourDialog::set_session (s);
preview.set_session (s);
+
}
bool
@@ -641,7 +685,7 @@ SoundFileBrowser::reset_options ()
channel_strings.push_back (_("sequence files"));
}
if (same_size) {
- channel_strings.push_back (_("all files in one track"));
+ channel_strings.push_back (_("all files in one region"));
}
}