From 43b69e1fa3157a57dc7257cafd2abc05ec986981 Mon Sep 17 00:00:00 2001 From: Johannes Mueller Date: Sun, 20 Aug 2017 00:54:19 +0200 Subject: [PATCH] TemplateDialog: keep private things private and header files simple --- gtk2_ardour/template_dialog.cc | 124 +++++++++++++++++++++++++++++++ gtk2_ardour/template_dialog.h | 129 --------------------------------- 2 files changed, 124 insertions(+), 129 deletions(-) diff --git a/gtk2_ardour/template_dialog.cc b/gtk2_ardour/template_dialog.cc index 0f8fc8ed77..49d6f44f3f 100644 --- a/gtk2_ardour/template_dialog.cc +++ b/gtk2_ardour/template_dialog.cc @@ -19,17 +19,22 @@ */ #include +#include #include #include #include #include +#include #include +#include #include #include #include +#include #include +#include #include "pbd/basename.h" #include "pbd/error.h" @@ -43,6 +48,8 @@ #include "ardour/filesystem_paths.h" #include "ardour/template_utils.h" +#include "progress_reporter.h" + #include "template_dialog.h" using namespace std; @@ -50,6 +57,123 @@ using namespace Gtk; using namespace PBD; using namespace ARDOUR; +class TemplateManager : public Gtk::HBox, + public ProgressReporter +{ +public: + virtual ~TemplateManager () {} + + virtual void init () = 0; + void handle_dirty_description (); + + PBD::Signal0 TemplatesImported; + +protected: + TemplateManager (); + + void setup_model (const std::vector& templates); + + void row_selection_changed (); + + virtual void delete_selected_template () = 0; + bool adjust_plugin_paths (XMLNode* node, const std::string& name, const std::string& new_name) const; + + struct SessionTemplateColumns : public Gtk::TreeModel::ColumnRecord { + SessionTemplateColumns () { + add (name); + add (path); + add (description); + } + + Gtk::TreeModelColumn name; + Gtk::TreeModelColumn path; + Gtk::TreeModelColumn description; + }; + + Glib::RefPtr _template_model; + SessionTemplateColumns _template_columns; + + Gtk::TreeModel::const_iterator _current_selection; + + Gtk::ProgressBar _progress_bar; + std::string _current_action; + +private: + 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 (); + + void set_desc_dirty (); + + bool key_event (GdkEventKey* ev); + + virtual void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name) = 0; + + virtual void save_template_desc (); + + void export_all_templates (); + void import_template_set (); + + virtual std::string templates_dir () const = 0; + virtual std::string template_file (const Gtk::TreeModel::const_iterator& item) const = 0; + + virtual bool adjust_xml_tree (XMLTree& tree, const std::string& old_name, const std::string& new_name) const = 0; + + Gtk::TreeView _template_treeview; + Gtk::CellRendererText _validating_cellrenderer; + Gtk::TreeView::Column _validated_column; + + Gtk::TextView _description_editor; + Gtk::Button _save_desc; + bool _desc_dirty; + + Gtk::Button _remove_button; + Gtk::Button _rename_button; + + Gtk::Button _export_all_templates_button; + Gtk::Button _import_template_set_button; + + void update_progress_gui (float p); +}; + +class SessionTemplateManager : public TemplateManager +{ +public: + SessionTemplateManager () : TemplateManager () {} + ~SessionTemplateManager () {} + + void init (); + +private: + void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); + void delete_selected_template (); + + std::string templates_dir () const; + std::string template_file (const Gtk::TreeModel::const_iterator& item) const; + + bool adjust_xml_tree (XMLTree& tree, const std::string& old_name, const std::string& new_name) const; +}; + + +class RouteTemplateManager : public TemplateManager +{ +public: + RouteTemplateManager () : TemplateManager () {} + ~RouteTemplateManager () {} + + void init (); + +private: + void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); + void delete_selected_template (); + + std::string templates_dir () const; + std::string template_file (const Gtk::TreeModel::const_iterator& item) const; + + bool adjust_xml_tree (XMLTree& tree, const std::string& old_name, const std::string& new_name) const; +}; + + TemplateDialog::TemplateDialog () : ArdourDialog ("Manage Templates") diff --git a/gtk2_ardour/template_dialog.h b/gtk2_ardour/template_dialog.h index 2d219dc252..51605d6d08 100644 --- a/gtk2_ardour/template_dialog.h +++ b/gtk2_ardour/template_dialog.h @@ -21,22 +21,7 @@ #ifndef __gtk2_ardour_template_dialog_h__ #define __gtk2_ardour_template_dialog_h__ -#include - -#include -#include -#include -#include - #include "ardour_dialog.h" -#include "progress_reporter.h" - -namespace ARDOUR { - struct TemplateInfo; -} - -class XMLTree; -class XMLNode; class TemplateDialog : public ArdourDialog, public PBD::ScopedConnectionList @@ -46,119 +31,5 @@ public: ~TemplateDialog () {} }; -class TemplateManager : public Gtk::HBox, - public ProgressReporter -{ - friend class TemplateDialog; -public: - virtual ~TemplateManager () {} - virtual void init () = 0; - - PBD::Signal0 TemplatesImported; - -protected: - TemplateManager (); - - void setup_model (const std::vector& 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 (); - - void set_desc_dirty (); - - bool key_event (GdkEventKey* ev); - - virtual void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name) = 0; - virtual void delete_selected_template () = 0; - - void handle_dirty_description (); - virtual void save_template_desc (); - - void export_all_templates (); - void import_template_set (); - - virtual std::string templates_dir () const = 0; - virtual std::string template_file (const Gtk::TreeModel::const_iterator& item) const = 0; - - virtual bool adjust_xml_tree (XMLTree& tree, const std::string& old_name, const std::string& new_name) const = 0; - - bool adjust_plugin_paths (XMLNode* node, const std::string& name, const std::string& new_name) const; - - struct SessionTemplateColumns : public Gtk::TreeModel::ColumnRecord { - SessionTemplateColumns () { - add (name); - add (path); - add (description); - } - - Gtk::TreeModelColumn name; - Gtk::TreeModelColumn path; - Gtk::TreeModelColumn description; - }; - - SessionTemplateColumns _template_columns; - Glib::RefPtr _template_model; - - Gtk::TreeModel::const_iterator _current_selection; - - Gtk::TreeView _template_treeview; - Gtk::CellRendererText _validating_cellrenderer; - Gtk::TreeView::Column _validated_column; - - Gtk::TextView _description_editor; - Gtk::Button _save_desc; - bool _desc_dirty; - - Gtk::Button _remove_button; - Gtk::Button _rename_button; - - Gtk::Button _export_all_templates_button; - Gtk::Button _import_template_set_button; - - Gtk::ProgressBar _progress_bar; - std::string _current_action; - - void update_progress_gui (float p); -}; - -class SessionTemplateManager : public TemplateManager -{ -public: - SessionTemplateManager () : TemplateManager () {} - ~SessionTemplateManager () {} - - void init (); - -private: - void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); - void delete_selected_template (); - - std::string templates_dir () const; - std::string template_file (const Gtk::TreeModel::const_iterator& item) const; - - bool adjust_xml_tree (XMLTree& tree, const std::string& old_name, const std::string& new_name) const; -}; - - -class RouteTemplateManager : public TemplateManager -{ -public: - RouteTemplateManager () : TemplateManager () {} - ~RouteTemplateManager () {} - - void init (); - -private: - void rename_template (Gtk::TreeModel::iterator& item, const Glib::ustring& new_name); - void delete_selected_template (); - - std::string templates_dir () const; - std::string template_file (const Gtk::TreeModel::const_iterator& item) const; - - bool adjust_xml_tree (XMLTree& tree, const std::string& old_name, const std::string& new_name) const; -}; - #endif /* __gtk2_ardour_template_dialog_h__ */