From a100c20612fc4f7f30372f579e355f782befa7e2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 14 Sep 2006 06:30:26 +0000 Subject: Bug fixes. git-svn-id: http://svn.drobilla.net/lad/ingen@134 a436a847-0d15-0410-975c-d299462d15a1 --- src/progs/ingenuity/LoadPluginWindow.cpp | 18 ++++-------------- src/progs/ingenuity/LoadPluginWindow.h | 4 ---- src/progs/ingenuity/LoadSubpatchWindow.cpp | 10 +--------- src/progs/ingenuity/LoadSubpatchWindow.h | 3 --- src/progs/ingenuity/NewSubpatchWindow.cpp | 27 ++++++--------------------- src/progs/ingenuity/NewSubpatchWindow.h | 3 --- src/progs/ingenuity/PatchWindow.cpp | 18 ++++++++++-------- src/progs/ingenuity/PatchWindow.h | 4 ++-- src/progs/ingenuity/WindowFactory.h | 4 +++- 9 files changed, 26 insertions(+), 65 deletions(-) (limited to 'src/progs/ingenuity') diff --git a/src/progs/ingenuity/LoadPluginWindow.cpp b/src/progs/ingenuity/LoadPluginWindow.cpp index 2c09584c..5235dacd 100644 --- a/src/progs/ingenuity/LoadPluginWindow.cpp +++ b/src/progs/ingenuity/LoadPluginWindow.cpp @@ -35,9 +35,7 @@ namespace Ingenuity { LoadPluginWindow::LoadPluginWindow(BaseObjectType* cobject, const Glib::RefPtr& xml) : Gtk::Window(cobject), m_has_shown(false), - m_plugin_name_offset(0), - m_new_module_x(0), - m_new_module_y(0) + m_plugin_name_offset(0) { xml->get_widget("load_plugin_plugins_treeview", m_plugins_treeview); xml->get_widget("load_plugin_polyphonic_checkbutton", m_polyphonic_checkbutton); @@ -183,15 +181,6 @@ LoadPluginWindow::on_show() } -void -LoadPluginWindow::on_hide() -{ - m_new_module_x = 0; - m_new_module_y = 0; - Gtk::Window::on_hide(); -} - - void LoadPluginWindow::set_plugin_list(const std::map >& m) { @@ -319,8 +308,9 @@ LoadPluginWindow::add_clicked() m_node_name_entry->set_text(generate_module_name(m_plugin_name_offset)); // Set the next module location 20 over, for a cascade effect - m_new_module_x += 20; - m_new_module_y += 20; + cerr << "FIXME: cascade\n"; + //m_new_module_x += 20; + //m_new_module_y += 20; } } } diff --git a/src/progs/ingenuity/LoadPluginWindow.h b/src/progs/ingenuity/LoadPluginWindow.h index 0af40d05..08433d37 100644 --- a/src/progs/ingenuity/LoadPluginWindow.h +++ b/src/progs/ingenuity/LoadPluginWindow.h @@ -98,7 +98,6 @@ public: protected: void on_show(); - void on_hide(); bool on_key_press_event(GdkEventKey* event); private: @@ -129,9 +128,6 @@ private: int m_plugin_name_offset; // see comments for generate_plugin_name - double m_new_module_x; - double m_new_module_y; - Gtk::TreeView* m_plugins_treeview; Gtk::CheckButton* m_polyphonic_checkbutton; Gtk::Entry* m_node_name_entry; diff --git a/src/progs/ingenuity/LoadSubpatchWindow.cpp b/src/progs/ingenuity/LoadSubpatchWindow.cpp index ed5da0ee..07b51716 100644 --- a/src/progs/ingenuity/LoadSubpatchWindow.cpp +++ b/src/progs/ingenuity/LoadSubpatchWindow.cpp @@ -30,9 +30,7 @@ namespace Ingenuity { LoadSubpatchWindow::LoadSubpatchWindow(BaseObjectType* cobject, const Glib::RefPtr& xml) -: Gtk::FileChooserDialog(cobject), - m_new_module_x(0), - m_new_module_y(0) +: Gtk::FileChooserDialog(cobject) { xml->get_widget("load_subpatch_name_from_file_radio", m_name_from_file_radio); xml->get_widget("load_subpatch_name_from_user_radio", m_name_from_user_radio); @@ -152,12 +150,6 @@ LoadSubpatchWindow::ok_clicked() else if (m_poly_from_parent_radio->get_active()) poly = m_patch->poly(); - if (m_new_module_x == 0 && m_new_module_y == 0) { - throw; // FIXME - //m_patch_controller->get_view()->canvas()->get_new_module_location( - // m_new_module_x, m_new_module_y); - } - /*CountedPtr pm(new PatchModel(m_patch->path().base() + name, poly)); pm->filename(filename); diff --git a/src/progs/ingenuity/LoadSubpatchWindow.h b/src/progs/ingenuity/LoadSubpatchWindow.h index ae65a9f4..81e4f4d7 100644 --- a/src/progs/ingenuity/LoadSubpatchWindow.h +++ b/src/progs/ingenuity/LoadSubpatchWindow.h @@ -59,9 +59,6 @@ private: CountedPtr m_patch; - double m_new_module_x; - double m_new_module_y; - Gtk::RadioButton* m_name_from_file_radio; Gtk::RadioButton* m_name_from_user_radio; Gtk::Entry* m_name_entry; diff --git a/src/progs/ingenuity/NewSubpatchWindow.cpp b/src/progs/ingenuity/NewSubpatchWindow.cpp index 1d730582..44da3a4e 100644 --- a/src/progs/ingenuity/NewSubpatchWindow.cpp +++ b/src/progs/ingenuity/NewSubpatchWindow.cpp @@ -25,9 +25,7 @@ namespace Ingenuity { NewSubpatchWindow::NewSubpatchWindow(BaseObjectType* cobject, const Glib::RefPtr& xml) -: Gtk::Window(cobject), - m_new_module_x(0), - m_new_module_y(0) +: Gtk::Window(cobject) { xml->get_widget("new_subpatch_name_entry", m_name_entry); xml->get_widget("new_subpatch_message_label", m_message_label); @@ -87,24 +85,11 @@ NewSubpatchWindow::name_changed() void NewSubpatchWindow::ok_clicked() { - cerr << "FIXME: new subpatch\n"; -#if 0 - PatchModel* pm = new PatchModel( - m_patch->path().base() + m_name_entry->get_text(), - m_poly_spinbutton->get_value_as_int()); - - if (m_new_module_x == 0 && m_new_module_y == 0) { - throw; // FIXME - //m_patch_controller->get_view()->canvas()->get_new_module_location( - // m_new_module_x, m_new_module_y); - } - - // FIXME: necessary? - //pm->set_parent(m_patch); - pm->set_metadata("module-x", (float)m_new_module_x); - pm->set_metadata("module-y", (float)m_new_module_y); - App::instance().engine()->create_patch_from_model(pm); -#endif + const Path path = m_patch->path().base() + Path::nameify(m_name_entry->get_text()); + const size_t poly = m_poly_spinbutton->get_value_as_int(); + + App::instance().engine()->create_patch_with_data(path, poly, m_initial_data); + hide(); } diff --git a/src/progs/ingenuity/NewSubpatchWindow.h b/src/progs/ingenuity/NewSubpatchWindow.h index 420b82c4..57c6c7ee 100644 --- a/src/progs/ingenuity/NewSubpatchWindow.h +++ b/src/progs/ingenuity/NewSubpatchWindow.h @@ -51,9 +51,6 @@ private: MetadataMap m_initial_data; CountedPtr m_patch; - double m_new_module_x; - double m_new_module_y; - Gtk::Entry* m_name_entry; Gtk::Label* m_message_label; Gtk::SpinButton* m_poly_spinbutton; diff --git a/src/progs/ingenuity/PatchWindow.cpp b/src/progs/ingenuity/PatchWindow.cpp index 6915b4a1..07bcb781 100644 --- a/src/progs/ingenuity/PatchWindow.cpp +++ b/src/progs/ingenuity/PatchWindow.cpp @@ -122,7 +122,7 @@ PatchWindow::~PatchWindow() // Prevents deletion //m_patch->claim_patch_view(); - App::instance().remove_patch_window(this); + //App::instance().remove_patch_window(this); delete m_breadcrumb_box; } @@ -188,10 +188,19 @@ PatchWindow::set_patch(CountedPtr patch, CountedPtr view) else m_menu_destroy_patch->set_sensitive(true); + m_patch->destroyed_sig.connect(sigc::mem_fun(this, &PatchWindow::patch_destroyed)); + m_enable_signal = true; } +void +PatchWindow::patch_destroyed() +{ + App::instance().window_factory()->remove_patch_window(this); +} + + void PatchWindow::event_show_engine() { @@ -303,7 +312,6 @@ PatchWindow::on_show() void PatchWindow::on_hide() { - claim_breadcrumbs(); m_position_stored = true; get_position(m_x, m_y); Gtk::Window::on_hide(); @@ -383,11 +391,5 @@ PatchWindow::event_fullscreen_toggled() } } -void -PatchWindow::claim_breadcrumbs() -{ - m_breadcrumb_box->reparent(m_breadcrumb_bin); -} - } // namespace Ingenuity diff --git a/src/progs/ingenuity/PatchWindow.h b/src/progs/ingenuity/PatchWindow.h index 2e0a388b..79284cb5 100644 --- a/src/progs/ingenuity/PatchWindow.h +++ b/src/progs/ingenuity/PatchWindow.h @@ -72,8 +72,6 @@ public: Gtk::MenuItem* menu_view_control_window() { return m_menu_view_control_window; } - void claim_breadcrumbs(); - protected: void on_show(); void on_hide(); @@ -91,6 +89,8 @@ private: void event_show_controls(); void event_show_engine(); + void patch_destroyed(); + CountedPtr m_patch; CountedPtr m_view; diff --git a/src/progs/ingenuity/WindowFactory.h b/src/progs/ingenuity/WindowFactory.h index 831ab646..37d218f6 100644 --- a/src/progs/ingenuity/WindowFactory.h +++ b/src/progs/ingenuity/WindowFactory.h @@ -60,13 +60,15 @@ public: void present_load_subpatch(CountedPtr patch, MetadataMap data = MetadataMap()); void present_rename(CountedPtr object); void present_properties(CountedPtr node); + + bool remove_patch_window(PatchWindow* win, GdkEventAny* ignored = NULL); private: typedef std::map PatchWindowMap; typedef std::map ControlWindowMap; PatchWindow* new_patch_window(CountedPtr patch, CountedPtr view); - bool remove_patch_window(PatchWindow* win, GdkEventAny* ignored); + NodeControlWindow* new_control_window(CountedPtr node); bool remove_control_window(NodeControlWindow* win, GdkEventAny* ignored); -- cgit v1.2.1