From 35dcbda281ce508f13e5ef1e524cecabc24ffe87 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 8 May 2021 19:53:16 -0400 Subject: Use unique_ptr for module menus --- src/CanvasModule.cpp | 6 ++---- src/CanvasModule.hpp | 11 ++++++----- 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{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 +#include #include 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 _menu; + std::string _name; + SignalDirection _type; + ClientID _id; }; } // namespace patchage -- cgit v1.2.1