summaryrefslogtreecommitdiffstats
path: root/src/progs/ingenuity
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-09-14 06:30:26 +0000
committerDavid Robillard <d@drobilla.net>2006-09-14 06:30:26 +0000
commita100c20612fc4f7f30372f579e355f782befa7e2 (patch)
treed8bfe1e2f21cf6ff0bc27b040492d2b25a6291ea /src/progs/ingenuity
parentcc384f6f622cc10fd83616256080b80dc2123aaf (diff)
downloadingen-a100c20612fc4f7f30372f579e355f782befa7e2.tar.gz
ingen-a100c20612fc4f7f30372f579e355f782befa7e2.tar.bz2
ingen-a100c20612fc4f7f30372f579e355f782befa7e2.zip
Bug fixes.
git-svn-id: http://svn.drobilla.net/lad/ingen@134 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/progs/ingenuity')
-rw-r--r--src/progs/ingenuity/LoadPluginWindow.cpp18
-rw-r--r--src/progs/ingenuity/LoadPluginWindow.h4
-rw-r--r--src/progs/ingenuity/LoadSubpatchWindow.cpp10
-rw-r--r--src/progs/ingenuity/LoadSubpatchWindow.h3
-rw-r--r--src/progs/ingenuity/NewSubpatchWindow.cpp27
-rw-r--r--src/progs/ingenuity/NewSubpatchWindow.h3
-rw-r--r--src/progs/ingenuity/PatchWindow.cpp18
-rw-r--r--src/progs/ingenuity/PatchWindow.h4
-rw-r--r--src/progs/ingenuity/WindowFactory.h4
9 files changed, 26 insertions, 65 deletions
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<Gnome::Glade::Xml>& 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);
@@ -184,15 +182,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<string, CountedPtr<PluginModel> >& m)
{
m_plugins_liststore->clear();
@@ -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<Gnome::Glade::Xml>& 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<PatchModel> 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<PatchModel> 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<Gnome::Glade::Xml>& 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<PatchModel> 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,11 +188,20 @@ PatchWindow::set_patch(CountedPtr<PatchModel> patch, CountedPtr<PatchView> 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()
{
if (m_patch)
@@ -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<PatchModel> m_patch;
CountedPtr<PatchView> 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<PatchModel> patch, MetadataMap data = MetadataMap());
void present_rename(CountedPtr<ObjectModel> object);
void present_properties(CountedPtr<NodeModel> node);
+
+ bool remove_patch_window(PatchWindow* win, GdkEventAny* ignored = NULL);
private:
typedef std::map<Path, PatchWindow*> PatchWindowMap;
typedef std::map<Path, NodeControlWindow*> ControlWindowMap;
PatchWindow* new_patch_window(CountedPtr<PatchModel> patch, CountedPtr<PatchView> view);
- bool remove_patch_window(PatchWindow* win, GdkEventAny* ignored);
+
NodeControlWindow* new_control_window(CountedPtr<NodeModel> node);
bool remove_control_window(NodeControlWindow* win, GdkEventAny* ignored);