diff options
-rw-r--r-- | src/gui/NodeModule.cpp | 14 | ||||
-rw-r--r-- | src/gui/NodeModule.hpp | 2 | ||||
-rw-r--r-- | src/gui/PatchBox.cpp | 11 | ||||
-rw-r--r-- | src/gui/PatchWindow.cpp | 14 | ||||
-rw-r--r-- | src/gui/PatchWindow.hpp | 2 | ||||
-rw-r--r-- | src/gui/SubpatchModule.cpp | 3 | ||||
-rw-r--r-- | src/gui/SubpatchModule.hpp | 2 |
7 files changed, 25 insertions, 23 deletions
diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp index eb278e51..9719ed67 100644 --- a/src/gui/NodeModule.cpp +++ b/src/gui/NodeModule.cpp @@ -354,15 +354,21 @@ NodeModule::show_control_window() } bool +NodeModule::on_double_click(GdkEventButton* event) +{ + if (!popup_gui()) { + show_control_window(); + } + return true; +} + +bool NodeModule::on_event(GdkEvent* ev) { if (ev->type == GDK_BUTTON_PRESS && ev->button.button == 3) { return show_menu(&ev->button); } else if (ev->type == GDK_2BUTTON_PRESS) { - if (!popup_gui()) { - show_control_window(); - } - return true; + return on_double_click(&ev->button); } return false; } diff --git a/src/gui/NodeModule.hpp b/src/gui/NodeModule.hpp index e16672f0..a0dd3417 100644 --- a/src/gui/NodeModule.hpp +++ b/src/gui/NodeModule.hpp @@ -68,6 +68,8 @@ public: protected: NodeModule(PatchCanvas& canvas, SharedPtr<const NodeModel> node); + virtual bool on_double_click(GdkEventButton* ev); + bool on_event(GdkEvent* ev); void show_control_window(); diff --git a/src/gui/PatchBox.cpp b/src/gui/PatchBox.cpp index 61f2fb9f..11921fa6 100644 --- a/src/gui/PatchBox.cpp +++ b/src/gui/PatchBox.cpp @@ -198,7 +198,16 @@ PatchBox::init_box(App& app) void PatchBox::set_patch_from_path(const Raul::Path& path, SharedPtr<PatchView> view) { - std::cerr << "FIXME: Set patch from path" << std::endl; + if (view) { + assert(view->patch()->path() == path); + _app->window_factory()->present_patch(view->patch(), _window, view); + } else { + SharedPtr<const PatchModel> model = PtrCast<const PatchModel>( + _app->store()->object(path)); + if (model) { + _app->window_factory()->present_patch(model, _window); + } + } } /** Sets the patch for this box and initializes everything. diff --git a/src/gui/PatchWindow.cpp b/src/gui/PatchWindow.cpp index 6b3bc7a6..526b7fec 100644 --- a/src/gui/PatchWindow.cpp +++ b/src/gui/PatchWindow.cpp @@ -56,20 +56,6 @@ PatchWindow::init_window(App& app) } void -PatchWindow::set_patch_from_path(const Raul::Path& path, SharedPtr<PatchView> view) -{ - if (view) { - assert(view->patch()->path() == path); - _app->window_factory()->present_patch(view->patch(), this, view); - } else { - SharedPtr<const PatchModel> model = PtrCast<const PatchModel>( - _app->store()->object(path)); - if (model) - _app->window_factory()->present_patch(model, this); - } -} - -void PatchWindow::on_show() { if (_position_stored) diff --git a/src/gui/PatchWindow.hpp b/src/gui/PatchWindow.hpp index 9ed46a40..c1540c66 100644 --- a/src/gui/PatchWindow.hpp +++ b/src/gui/PatchWindow.hpp @@ -50,8 +50,6 @@ public: SharedPtr<const PatchModel> patch() const { return _box->patch(); } PatchBox* box() const { return _box; } - void set_patch_from_path(const Raul::Path& path, SharedPtr<PatchView> view); - void show_documentation(const std::string& doc, bool html) { _box->show_documentation(doc, html); } diff --git a/src/gui/SubpatchModule.cpp b/src/gui/SubpatchModule.cpp index bf0ecd95..3960b4fd 100644 --- a/src/gui/SubpatchModule.cpp +++ b/src/gui/SubpatchModule.cpp @@ -45,7 +45,7 @@ SubpatchModule::SubpatchModule(PatchCanvas& canvas, assert(patch); } -void +bool SubpatchModule::on_double_click(GdkEventButton* event) { assert(_patch); @@ -57,6 +57,7 @@ SubpatchModule::on_double_click(GdkEventButton* event) : app().window_factory()->patch_window(parent) ); app().window_factory()->present_patch(_patch, preferred); + return true; } void diff --git a/src/gui/SubpatchModule.hpp b/src/gui/SubpatchModule.hpp index f72ed6bf..93a7b647 100644 --- a/src/gui/SubpatchModule.hpp +++ b/src/gui/SubpatchModule.hpp @@ -49,7 +49,7 @@ public: virtual ~SubpatchModule() {} - void on_double_click(GdkEventButton* ev); + bool on_double_click(GdkEventButton* ev); void store_location(double x, double y); |