From 610d9fd3b9e4a60a63c9a7523a992de31dfa80b8 Mon Sep 17 00:00:00 2001 From: Johannes Mueller Date: Mon, 3 Jul 2017 12:27:25 +0200 Subject: First draft of a template management dialog Goal is to a simple dialog that can rename and remove templates. This is helpful in order to keep the template list tidy. So far it works for session templates. Track templates tbd. --- gtk2_ardour/template_dialog.h | 71 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 gtk2_ardour/template_dialog.h (limited to 'gtk2_ardour/template_dialog.h') diff --git a/gtk2_ardour/template_dialog.h b/gtk2_ardour/template_dialog.h new file mode 100644 index 0000000000..7523213a58 --- /dev/null +++ b/gtk2_ardour/template_dialog.h @@ -0,0 +1,71 @@ +/* + Copyright (C) 2010 Paul Davis + Author: Johannes Mueller + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __gtk2_ardour_template_dialog_h__ +#define __gtk2_ardour_template_dialog_h__ + +#include + +#include +#include + +#include "ardour_dialog.h" + +class TemplateDialog : public ArdourDialog +{ +public: + TemplateDialog (); + ~TemplateDialog () {} + +private: + void setup_session_templates (); + + void row_selection_changed (); + void render_template_names (Gtk::CellRenderer* rnd, const Gtk::TreeModel::iterator& it); + void validate_edit (const Glib::ustring& path_string, const Glib::ustring& new_name); + void start_edit (); + + bool key_event (GdkEventKey* ev); + + void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); + void delete_selected_template (); + + struct SessionTemplateColumns : public Gtk::TreeModel::ColumnRecord { + SessionTemplateColumns () { + add (name); + add (path); + } + + Gtk::TreeModelColumn name; + Gtk::TreeModelColumn path; + }; + + SessionTemplateColumns _session_template_columns; + Glib::RefPtr _session_template_model; + + Gtk::TreeView _session_template_treeview; + Gtk::CellRendererText _validating_cellrenderer; + Gtk::TreeView::Column _validated_column; + + Gtk::Button _remove_button; + Gtk::Button _rename_button; +}; + +#endif /* __gtk2_ardour_template_dialog_h__ */ -- cgit v1.2.3