public:
virtual ~TemplateManager () {}
- virtual void init () = 0;
+ void init ();
void handle_dirty_description ();
PBD::Signal0<void> TemplatesImported;
bool key_event (GdkEventKey* ev);
+ virtual void get_templates (vector<TemplateInfo>& templates) const = 0;
+
virtual void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name) = 0;
virtual void save_template_desc ();
SessionTemplateManager () : TemplateManager () {}
~SessionTemplateManager () {}
- void init ();
+ void get_templates (vector<TemplateInfo>& templates) const;
private:
void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name);
RouteTemplateManager () : TemplateManager () {}
~RouteTemplateManager () {}
- void init ();
+ void get_templates (vector<TemplateInfo>& templates) const;
private:
void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name);
_progress_bar.hide ();
}
+void
+TemplateManager::init ()
+{
+ vector<TemplateInfo> templates;
+ get_templates (templates);
+ setup_model (templates);
+
+ _progress_bar.hide ();
+ _description_editor.set_sensitive (false);
+ _save_desc.set_sensitive (false);
+}
+
void
TemplateManager::setup_model (const vector<TemplateInfo>& templates)
{
void
TemplateManager::row_selection_changed ()
{
- handle_dirty_description ();
+ if (_current_selection) {
+ handle_dirty_description ();
+ } else {
+ _description_editor.get_buffer()->set_text ("");
+ _desc_dirty = false;
+ }
_current_selection = _template_treeview.get_selection()->get_selected ();
if (_current_selection) {
_save_desc.set_sensitive (false);
}
+ _description_editor.set_sensitive (_current_selection);
_rename_button.set_sensitive (_current_selection);
_remove_button.set_sensitive (_current_selection);
}
_progress_bar.set_fraction (p);
}
-
-void SessionTemplateManager::init ()
+void
+SessionTemplateManager::get_templates (vector<TemplateInfo>& templates) const
{
- vector<TemplateInfo> templates;
find_session_templates (templates, /* read_xml = */ true);
- setup_model (templates);
-
- _progress_bar.hide ();
}
-void RouteTemplateManager::init ()
+void RouteTemplateManager::get_templates (vector<TemplateInfo>& templates) const
{
- vector<TemplateInfo> templates;
find_route_templates (templates);
- setup_model (templates);
-
- _progress_bar.hide ();
}
#include <cerrno>
PBD::remove_directory (_current_selection->get_value (_template_columns.path));
_template_model->erase (_current_selection);
+ _current_selection = TreeIter ();
row_selection_changed ();
}