summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/CanvasModule.cpp6
-rw-r--r--src/CanvasModule.hpp11
2 files changed, 8 insertions, 9 deletions
diff --git a/src/CanvasModule.cpp b/src/CanvasModule.cpp
index 4b74f9e..86cce34 100644
--- a/src/CanvasModule.cpp
+++ b/src/CanvasModule.cpp
@@ -51,7 +51,6 @@ CanvasModule::CanvasModule(Patchage* app,
double y)
: Module(*app->canvas(), name, x, y)
, _app(app)
- , _menu(nullptr)
, _name(name)
, _type(type)
, _id(std::move(id))
@@ -67,8 +66,6 @@ CanvasModule::CanvasModule(Patchage* app,
CanvasModule::~CanvasModule()
{
_app->canvas()->remove_module(this);
- delete _menu;
- _menu = nullptr;
}
void
@@ -100,7 +97,8 @@ CanvasModule::update_menu()
bool
CanvasModule::show_menu(GdkEventButton* ev)
{
- _menu = new Gtk::Menu();
+ _menu = std::unique_ptr<Gtk::Menu>{new Gtk::Menu()};
+
Gtk::Menu::MenuList& items = _menu->items();
if (_type == SignalDirection::duplex) {
diff --git a/src/CanvasModule.hpp b/src/CanvasModule.hpp
index b8c9523..5259c5b 100644
--- a/src/CanvasModule.hpp
+++ b/src/CanvasModule.hpp
@@ -27,6 +27,7 @@ PATCHAGE_RESTORE_WARNINGS
#include <gdk/gdk.h>
+#include <memory>
#include <string>
namespace Gtk {
@@ -77,11 +78,11 @@ public:
protected:
bool on_event(GdkEvent* ev) override;
- Patchage* _app;
- Gtk::Menu* _menu;
- std::string _name;
- SignalDirection _type;
- ClientID _id;
+ Patchage* _app;
+ std::unique_ptr<Gtk::Menu> _menu;
+ std::string _name;
+ SignalDirection _type;
+ ClientID _id;
};
} // namespace patchage