diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2017-07-14 13:58:41 -0500 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2017-08-14 14:08:17 -0500 |
commit | 0a0eec2adca785e6fff1b1e798bbded196188f4c (patch) | |
tree | facdaf889d0f6d467849acd8ebf09f740a2825aa /gtk2_ardour/session_metadata_dialog.cc | |
parent | a1143a0ed648a0f3dd0febc204dd38e70dc363b0 (diff) |
Session Metadata: add a Description field.
* This is a multi-line text field.
* If the session is a template, we might show this in the New Session dialog.
Diffstat (limited to 'gtk2_ardour/session_metadata_dialog.cc')
-rw-r--r-- | gtk2_ardour/session_metadata_dialog.cc | 59 |
1 files changed, 56 insertions, 3 deletions
diff --git a/gtk2_ardour/session_metadata_dialog.cc b/gtk2_ardour/session_metadata_dialog.cc index 43bf320be8..ce8d76c57e 100644 --- a/gtk2_ardour/session_metadata_dialog.cc +++ b/gtk2_ardour/session_metadata_dialog.cc @@ -88,7 +88,7 @@ Gtk::Widget & TextMetadataField::name_widget () { label = Gtk::manage (new Gtk::Label(_name + ':')); - label->set_alignment (1, 0.5); + label->set_alignment (1, 0); return *label; } @@ -117,6 +117,44 @@ TextMetadataField::update_value () _value = entry->get_text (); } +/* LongTextMetadataField */ + +LongTextMetadataField::LongTextMetadataField (Getter getter, Setter setter, string const & field_name, guint width ) : + TextMetadataField (getter, setter, field_name, width) +{ + tview = 0; + label = 0; + value_label = 0; +} + +MetadataPtr +LongTextMetadataField::copy () +{ + return MetadataPtr (new TextMetadataField (getter, setter, _name, width)); +} + +Gtk::Widget & +LongTextMetadataField::edit_widget () +{ + tview = Gtk::manage (new Gtk::TextView()); + + tview->get_buffer()->set_text (_value); + tview->set_wrap_mode (Gtk::WRAP_WORD); + tview->set_size_request (-1, 400); + tview->set_editable (true); + + Glib::RefPtr<Gtk::TextBuffer> tb (tview->get_buffer()); + tb->signal_changed().connect (sigc::mem_fun(*this, &LongTextMetadataField::update_value)); + + return *tview; +} + +void +LongTextMetadataField::update_value () +{ + _value = tview->get_buffer()->get_text (); +} + /* NumberMetadataField */ NumberMetadataField::NumberMetadataField (Getter getter, Setter setter, string const & field_name, guint numbers, guint width) : @@ -167,7 +205,7 @@ Gtk::Widget & NumberMetadataField::name_widget () { label = Gtk::manage (new Gtk::Label(_name + ':')); - label->set_alignment (1, 0.5); + label->set_alignment (1, 0); return *label; } @@ -307,7 +345,7 @@ Gtk::Widget & EAN13MetadataField::name_widget () { label = Gtk::manage (new Gtk::Label(_name + ':')); - label->set_alignment (1, 0.5); + label->set_alignment (1, 0); return *label; } @@ -569,6 +607,7 @@ SessionMetadataDialog<DataSet>::init_data ( bool skip_user ) init_album_data (); init_people_data (); init_school_data (); + init_description_data (); for (DataSetList::iterator it = data_list.begin(); it != data_list.end(); ++it) { (*it)->set_session (_session); @@ -668,6 +707,20 @@ SessionMetadataDialog<DataSet>::init_user_data () template <typename DataSet> void +SessionMetadataDialog<DataSet>::init_description_data () +{ + DataSetPtr data_set (new DataSet (_("Description"))); + data_list.push_back (data_set); + + MetadataPtr ptr; + + ptr = MetadataPtr (new LongTextMetadataField (&ARDOUR::SessionMetadata::description, &ARDOUR::SessionMetadata::set_description, _("Description"))); + data_set->add_data_field (ptr); +} + + +template <typename DataSet> +void SessionMetadataDialog<DataSet>::init_track_data () { DataSetPtr data_set (new DataSet (_("Track"))); |