diff options
Diffstat (limited to 'src/gui')
61 files changed, 693 insertions, 634 deletions
diff --git a/src/gui/.clang-tidy b/src/gui/.clang-tidy index acd4db6e..99bd2aba 100644 --- a/src/gui/.clang-tidy +++ b/src/gui/.clang-tidy @@ -15,7 +15,6 @@ Checks: > -clang-analyzer-core.CallAndMessage, -cppcoreguidelines-macro-usage, -cppcoreguidelines-pro-bounds-constant-array-index, - -cppcoreguidelines-pro-type-cstyle-cast, -cppcoreguidelines-pro-type-static-cast-downcast, -cppcoreguidelines-pro-type-vararg, -cppcoreguidelines-slicing, @@ -25,5 +24,6 @@ Checks: > -google-runtime-references, -hicpp-multiway-paths-covered, -hicpp-vararg, + -llvm-header-guard, -readability-convert-member-functions-to-static, InheritParentConfig: true diff --git a/src/gui/App.cpp b/src/gui/App.cpp index bbad8d0b..260afdba 100644 --- a/src/gui/App.cpp +++ b/src/gui/App.cpp @@ -27,30 +27,37 @@ #include "WindowFactory.hpp" #include "rgba.hpp" -#include "ingen/Atom.hpp" -#include "ingen/ColorContext.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/EngineBase.hpp" -#include "ingen/FilePath.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Log.hpp" -#include "ingen/QueuedInterface.hpp" -#include "ingen/StreamWriter.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/PluginModel.hpp" -#include "ingen/client/PortModel.hpp" -#include "ingen/client/SigClientInterface.hpp" -#include "ingen/runtime_paths.hpp" -#include "lilv/lilv.h" -#include "suil/suil.h" +#include <ingen/Atom.hpp> +#include <ingen/ColorContext.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/EngineBase.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Log.hpp> +#include <ingen/Message.hpp> +#include <ingen/Properties.hpp> +#include <ingen/QueuedInterface.hpp> +#include <ingen/Resource.hpp> +#include <ingen/Status.hpp> +#include <ingen/StreamWriter.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/PluginModel.hpp> +#include <ingen/client/PortModel.hpp> +#include <ingen/client/SigClientInterface.hpp> +#include <ingen/fmt.hpp> +#include <ingen/runtime_paths.hpp> +#include <lilv/lilv.h> +#include <lv2/urid/urid.h> +#include <suil/suil.h> #include <glib.h> #include <glibmm/main.h> #include <glibmm/miscutils.h> #include <glibmm/propertyproxy.h> +#include <glibmm/ustring.h> #include <gtk/gtk.h> #include <gtkmm/aboutdialog.h> #include <gtkmm/dialog.h> @@ -61,12 +68,13 @@ #include <gtkmm/stock.h> #include <gtkmm/widget.h> #include <sigc++/functors/mem_fun.h> +#include <sigc++/functors/slot.h> #include <algorithm> #include <cassert> +#include <cstdarg> #include <cstdio> #include <exception> -#include <functional> #include <iostream> #include <map> #include <memory> diff --git a/src/gui/App.hpp b/src/gui/App.hpp index bb17e126..0138f25a 100644 --- a/src/gui/App.hpp +++ b/src/gui/App.hpp @@ -17,14 +17,13 @@ #ifndef INGEN_GUI_APP_HPP #define INGEN_GUI_APP_HPP -#include "ingen/Message.hpp" -#include "ingen/Properties.hpp" -#include "ingen/Resource.hpp" -#include "ingen/Status.hpp" -#include "ingen/URI.hpp" -#include "ingen/World.hpp" -#include "ingen/ingen.h" -#include "lilv/lilv.h" +#include <ingen/Message.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Resource.hpp> +#include <ingen/URI.hpp> +#include <ingen/World.hpp> +#include <ingen/ingen.h> +#include <lilv/lilv.h> #include <sigc++/signal.h> @@ -42,6 +41,8 @@ class Window; namespace ingen { +enum class Status; + class Atom; class Forge; class Interface; @@ -76,6 +77,11 @@ class INGEN_API App public: ~App(); + App(const App&) = delete; + App& operator=(const App&) = delete; + App(App&&) = delete; + App& operator=(App&&) = delete; + void error_message(const std::string& str); void attach(const std::shared_ptr<ingen::Interface>& client); @@ -97,7 +103,7 @@ public: bool signal() const { return _enable_signal; } void enable_signals(bool b) { _enable_signal = b; } bool disable_signals() { - bool old = _enable_signal; + const bool old = _enable_signal; _enable_signal = false; return old; } diff --git a/src/gui/Arc.cpp b/src/gui/Arc.cpp index c9260d12..c13cf4a7 100644 --- a/src/gui/Arc.cpp +++ b/src/gui/Arc.cpp @@ -16,10 +16,12 @@ #include "Arc.hpp" -#include "ingen/URI.hpp" -#include "ingen/client/ArcModel.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/PortModel.hpp" +#include <ganv/Edge.hpp> +#include <ingen/URI.hpp> +#include <ingen/client/ArcModel.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <ingen/client/PortModel.hpp> #include <glib-object.h> @@ -27,13 +29,7 @@ #define NS_INTERNALS "http://drobilla.net/ns/ingen-internals#" -namespace ingen { - -namespace client { -class ObjectModel; -} // namespace client - -namespace gui { +namespace ingen::gui { Arc::Arc(Ganv::Canvas& canvas, const std::shared_ptr<const client::ArcModel>& model, @@ -41,8 +37,8 @@ Arc::Arc(Ganv::Canvas& canvas, Ganv::Node* dst) : Ganv::Edge(canvas, src, dst), _arc_model(model) { - std::shared_ptr<const client::ObjectModel> tparent = model->tail()->parent(); - std::shared_ptr<const client::BlockModel> tparent_block; + const std::shared_ptr<const client::ObjectModel> tparent = model->tail()->parent(); + std::shared_ptr<const client::BlockModel> tparent_block; if ((tparent_block = std::dynamic_pointer_cast<const client::BlockModel>(tparent))) { if (tparent_block->plugin_uri() == NS_INTERNALS "BlockDelay") { g_object_set(_gobj, "dash-length", 4.0, nullptr); @@ -51,5 +47,4 @@ Arc::Arc(Ganv::Canvas& canvas, } } -} // namespace gui -} // namespace ingen +} // namespace ingen::gui diff --git a/src/gui/Arc.hpp b/src/gui/Arc.hpp index 82467a5a..ad1bc6f2 100644 --- a/src/gui/Arc.hpp +++ b/src/gui/Arc.hpp @@ -17,7 +17,7 @@ #ifndef INGEN_GUI_ARC_HPP #define INGEN_GUI_ARC_HPP -#include "ganv/Edge.hpp" +#include <ganv/Edge.hpp> #include <memory> diff --git a/src/gui/BreadCrumbs.cpp b/src/gui/BreadCrumbs.cpp index 2033457d..5bd4d30a 100644 --- a/src/gui/BreadCrumbs.cpp +++ b/src/gui/BreadCrumbs.cpp @@ -19,13 +19,17 @@ #include "App.hpp" #include "GraphView.hpp" -#include "ingen/client/SigClientInterface.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Message.hpp> +#include <ingen/URI.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/SigClientInterface.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> -#include <glibmm/signalproxy.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> +#include <algorithm> #include <string> #include <variant> @@ -46,13 +50,13 @@ BreadCrumbs::BreadCrumbs(App& app) std::shared_ptr<GraphView> BreadCrumbs::view(const raul::Path& path) { - for (const auto& b : _breadcrumbs) { - if (b->path() == path) { - return b->view(); - } - } + const auto b = std::find_if(_breadcrumbs.begin(), + _breadcrumbs.end(), + [&path](const auto* crumb) { + return crumb->path() == path; + }); - return nullptr; + return b == _breadcrumbs.end() ? nullptr : (*b)->view(); } /** Sets up the crumbs to display `path`. @@ -64,12 +68,12 @@ void BreadCrumbs::build(const raul::Path& path, const std::shared_ptr<GraphView>& view) { - bool old_enable_signal = _enable_signal; + const bool old_enable_signal = _enable_signal; _enable_signal = false; if (!_breadcrumbs.empty() && (path.is_parent_of(_full_path) || path == _full_path)) { // Moving to a path we already contain, just switch the active button - for (const auto& b : _breadcrumbs) { + for (auto* b : _breadcrumbs) { if (b->path() == path) { b->set_active(true); if (!b->view()) { @@ -85,13 +89,12 @@ BreadCrumbs::build(const raul::Path& path, } _active_path = path; - _enable_signal = old_enable_signal; } else if (!_breadcrumbs.empty() && path.is_child_of(_full_path)) { // Moving to a child of the full path, append crumbs (preserve cache) string suffix = path.substr(_full_path.length()); - while (suffix.length() > 0) { + while (!suffix.empty()) { if (suffix[0] == '/') { suffix = suffix.substr(1); } @@ -108,7 +111,7 @@ BreadCrumbs::build(const raul::Path& path, suffix = suffix.substr(suffix.find('/') + 1); } - for (const auto& b : _breadcrumbs) { + for (auto* b : _breadcrumbs) { b->set_active(false); } _breadcrumbs.back()->set_active(true); @@ -121,7 +124,7 @@ BreadCrumbs::build(const raul::Path& path, _active_path = path; // Empty existing breadcrumbs - for (const auto& b : _breadcrumbs) { + for (auto* b : _breadcrumbs) { remove(*b); } _breadcrumbs.clear(); @@ -134,7 +137,7 @@ BreadCrumbs::build(const raul::Path& path, raul::Path working_path("/"); string suffix = path.substr(1); - while (suffix.length() > 0) { + while (!suffix.empty()) { if (suffix[0] == '/') { suffix = suffix.substr(1); } @@ -203,15 +206,19 @@ BreadCrumbs::message(const Message& msg) void BreadCrumbs::object_destroyed(const URI& uri) { - for (auto i = _breadcrumbs.begin(); i != _breadcrumbs.end(); ++i) { - if ((*i)->path() == uri.c_str()) { - // Remove all crumbs after the removed one (inclusive) - for (auto j = i; j != _breadcrumbs.end(); ) { - BreadCrumb* bc = *j; - j = _breadcrumbs.erase(j); - remove(*bc); - } - break; + const auto i = std::find_if(_breadcrumbs.begin(), + _breadcrumbs.end(), + [&uri](const auto& b) { + return b->path() == uri.c_str(); + }); + + if (i != _breadcrumbs.end()) { + // Remove all crumbs after the removed one (inclusive) + for (auto j = i; j != _breadcrumbs.end();) { + BreadCrumb* const bc = *j; + + j = _breadcrumbs.erase(j); + remove(*bc); } } } @@ -219,7 +226,7 @@ BreadCrumbs::object_destroyed(const URI& uri) void BreadCrumbs::object_moved(const raul::Path& old_path, const raul::Path& new_path) { - for (const auto& b : _breadcrumbs) { + for (auto* b : _breadcrumbs) { if (b->path() == old_path) { b->set_path(new_path); } diff --git a/src/gui/BreadCrumbs.hpp b/src/gui/BreadCrumbs.hpp index e7fffc18..89a339f2 100644 --- a/src/gui/BreadCrumbs.hpp +++ b/src/gui/BreadCrumbs.hpp @@ -19,11 +19,12 @@ #include "GraphView.hpp" -#include "ingen/Message.hpp" -#include "ingen/URI.hpp" -#include "ingen/client/GraphModel.hpp" -#include "raul/Path.hpp" +#include <ingen/Message.hpp> +#include <ingen/URI.hpp> +#include <ingen/client/GraphModel.hpp> +#include <raul/Path.hpp> +#include <glibmm/ustring.h> #include <gtkmm/box.h> #include <gtkmm/label.h> #include <gtkmm/object.h> @@ -70,7 +71,7 @@ private: { public: BreadCrumb(const raul::Path& path, - const std::shared_ptr<GraphView>& view = nullptr) + const std::shared_ptr<GraphView>& view) : _path(path), _view(view) { assert(!view || view->graph()->path() == path); @@ -80,6 +81,10 @@ private: show_all(); } + explicit BreadCrumb(const raul::Path& path) + : BreadCrumb{path, nullptr} + {} + void set_view(const std::shared_ptr<GraphView>& view) { assert(!view || view->graph()->path() == _path); _view = view; diff --git a/src/gui/ConnectWindow.cpp b/src/gui/ConnectWindow.cpp index 2fd3be8c..edafdfa4 100644 --- a/src/gui/ConnectWindow.cpp +++ b/src/gui/ConnectWindow.cpp @@ -20,29 +20,33 @@ #include "Window.hpp" #include "WindowFactory.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/EngineBase.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Log.hpp" -#include "ingen/QueuedInterface.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" // IWYU pragma: keep -#include "ingen/client/SigClientInterface.hpp" -#include "ingen/client/SocketClient.hpp" -#include "ingen/paths.hpp" -#include "raul/Path.hpp" -#include "raul/Process.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/EngineBase.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Log.hpp> +#include <ingen/Message.hpp> +#include <ingen/QueuedInterface.hpp> +#include <ingen/Status.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/SigClientInterface.hpp> +#include <ingen/client/SocketClient.hpp> +#include <ingen/fmt.hpp> +#include <ingen/paths.hpp> +#include <raul/Path.hpp> +#include <raul/Process.hpp> #include <glib.h> #include <glibmm/main.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/builder.h> #include <gtkmm/button.h> +#include <gtkmm/dialog.h> #include <gtkmm/entry.h> #include <gtkmm/enums.h> #include <gtkmm/image.h> @@ -54,6 +58,7 @@ #include <gtkmm/stock.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> +#include <sigc++/functors/slot.h> #include <sigc++/signal.h> #include <limits> @@ -108,7 +113,7 @@ ConnectWindow::start(App& app, ingen::World& world) } set_connected_to(world.interface()); - connect(bool(world.interface())); + connect(!!world.interface()); } void @@ -195,7 +200,7 @@ ConnectWindow::connect_remote(const URI& uri) auto sci = std::make_shared<client::SigClientInterface>(); auto qi = std::make_shared<QueuedInterface>(sci); - std::shared_ptr<ingen::Interface> iface(world.new_interface(uri, qi)); + const std::shared_ptr<ingen::Interface> iface{world.new_interface(uri, qi)}; if (iface) { world.set_interface(iface); _app->attach(qi); @@ -438,18 +443,17 @@ ConnectWindow::internal_toggled() void ConnectWindow::next_stage() { - static const char* labels[] = { - "Connecting...", - "Pinging engine...", - "Attaching to engine...", - "Requesting root graph...", - "Waiting for root graph...", - "Connected" - }; - - ++_connect_stage; if (_widgets_loaded) { + static const char* labels[] = { + "Connecting...", + "Pinging engine...", + "Attaching to engine...", + "Requesting root graph...", + "Waiting for root graph...", + "Connected" + }; + _progress_label->set_text(labels[_connect_stage]); } } @@ -472,8 +476,8 @@ ConnectWindow::gtk_callback() // Show if attempted connection goes on for a noticeable amount of time if (!is_visible()) { - const float ms_since_start = (now.tv_sec - start.tv_sec) * 1000.0f + - (now.tv_usec - start.tv_usec) * 0.001f; + const float ms_since_start = ((now.tv_sec - start.tv_sec) * 1000.0f) + + ((now.tv_usec - start.tv_usec) * 0.001f); if (ms_since_start > 500) { present(); set_connecting_widget_states(); @@ -481,8 +485,8 @@ ConnectWindow::gtk_callback() } if (_connect_stage == 0) { - const float ms_since_last = (now.tv_sec - last.tv_sec) * 1000.0f + - (now.tv_usec - last.tv_usec) * 0.001f; + const float ms_since_last = ((now.tv_sec - last.tv_sec) * 1000.0f) + + ((now.tv_usec - last.tv_usec) * 0.001f); if (ms_since_last >= 250) { last = now; if (_mode == Mode::INTERNAL) { @@ -511,8 +515,8 @@ ConnectWindow::gtk_callback() if (_attached) { next_stage(); } else { - const float ms_since_last = (now.tv_sec - last.tv_sec) * 1000.0f + - (now.tv_usec - last.tv_usec) * 0.001f; + const float ms_since_last = ((now.tv_sec - last.tv_sec) * 1000.0f) + + ((now.tv_usec - last.tv_usec) * 0.001f); if (attempts > 10) { error("Failed to ping engine"); _connect_stage = -1; diff --git a/src/gui/ConnectWindow.hpp b/src/gui/ConnectWindow.hpp index b0e03850..cd9059e1 100644 --- a/src/gui/ConnectWindow.hpp +++ b/src/gui/ConnectWindow.hpp @@ -19,13 +19,11 @@ #include "Window.hpp" -#include "ingen/Message.hpp" -#include "ingen/Status.hpp" -#include "ingen/URI.hpp" +#include <ingen/Message.hpp> +#include <ingen/URI.hpp> #include <glibmm/refptr.h> #include <gtkmm/builder.h> -#include <gtkmm/dialog.h> #include <cstdint> #include <memory> @@ -43,6 +41,8 @@ class SpinButton; namespace ingen { +enum class Status; + class Interface; class World; diff --git a/src/gui/GraphBox.cpp b/src/gui/GraphBox.cpp index 14258a5a..47c567e3 100644 --- a/src/gui/GraphBox.cpp +++ b/src/gui/GraphBox.cpp @@ -1,6 +1,6 @@ /* This file is part of Ingen. - Copyright 2007-2017 David Robillard <http://drobilla.net/> + Copyright 2007-2024 David Robillard <http://drobilla.net/> Ingen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free @@ -29,34 +29,34 @@ #include "WindowFactory.hpp" #include "ingen_config.h" -#include "ganv/canvas.h" -#include "ingen/Atom.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Properties.hpp" -#include "ingen/Resource.hpp" -#include "ingen/URI.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" -#include "ingen/client/ObjectModel.hpp" -#include "ingen/client/PluginModel.hpp" -#include "ingen/client/PortModel.hpp" -#include "ingen/fmt.hpp" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" +#include <ganv/canvas.h> +#include <ingen/Atom.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Resource.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <ingen/client/PluginModel.hpp> +#include <ingen/client/PortModel.hpp> +#include <ingen/fmt.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <gdk/gdk.h> +#include <glib.h> #include <glib/gstdio.h> #include <glibmm/convert.h> #include <glibmm/fileutils.h> #include <glibmm/miscutils.h> #include <glibmm/propertyproxy.h> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/alignment.h> #include <gtkmm/box.h> @@ -92,6 +92,7 @@ # include <webkit/webkit.h> #endif +#include <algorithm> #include <cassert> #include <cstdint> #include <cstdio> @@ -101,7 +102,6 @@ #include <sstream> #include <string> #include <utility> -#include <vector> namespace ingen { @@ -228,7 +228,7 @@ GraphBox::GraphBox(BaseObjectType* cobject, _menu_view_graph_properties->signal_activate().connect( sigc::mem_fun(this, &GraphBox::event_show_properties)); - Glib::RefPtr<Gtk::Clipboard> clipboard = Gtk::Clipboard::get(); + const Glib::RefPtr<Gtk::Clipboard> clipboard = Gtk::Clipboard::get(); clipboard->signal_owner_change().connect( sigc::mem_fun(this, &GraphBox::event_clipboard_changed)); @@ -250,8 +250,12 @@ std::shared_ptr<GraphBox> GraphBox::create(App& app, const std::shared_ptr<const GraphModel>& graph) { GraphBox* result = nullptr; - Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create("graph_win"); + const Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create("graph_win"); xml->get_widget_derived("graph_win_vbox", result); + if (!result) { + return {}; + } + result->init_box(app); result->set_graph(graph, nullptr); @@ -379,14 +383,14 @@ GraphBox::set_graph(const std::shared_ptr<const GraphModel>& graph, _menu_view_control_window->property_sensitive() = false; - for (const auto& p : graph->ports()) { - if (_app->can_control(p.get())) { - _menu_view_control_window->property_sensitive() = true; - break; - } - } + _menu_view_control_window->property_sensitive() = + std::any_of(graph->ports().begin(), + graph->ports().end(), + [this](const auto& p) { + return _app->can_control(p.get()); + }); - _menu_parent->property_sensitive() = bool(graph->parent()); + _menu_parent->property_sensitive() = !!graph->parent(); new_port_connection = graph->signal_new_port().connect( sigc::mem_fun(this, &GraphBox::graph_port_added)); @@ -422,14 +426,12 @@ GraphBox::graph_port_removed(const std::shared_ptr<const PortModel>& port) return; } - for (const auto& p : _graph->ports()) { - if (p->is_input() && _app->can_control(p.get())) { - _menu_view_control_window->property_sensitive() = true; - return; - } - } - - _menu_view_control_window->property_sensitive() = false; + _menu_view_control_window->property_sensitive() = + std::any_of(_graph->ports().begin(), + _graph->ports().end(), + [this](const auto& p) { + return p->is_input() && _app->can_control(p.get()); + }); } void @@ -535,7 +537,7 @@ GraphBox::event_show_engine() void GraphBox::event_clipboard_changed(GdkEventOwnerChange* ev) { - Glib::RefPtr<Gtk::Clipboard> clipboard = Gtk::Clipboard::get(); + const Glib::RefPtr<Gtk::Clipboard> clipboard = Gtk::Clipboard::get(); _menu_paste->set_sensitive(clipboard->wait_is_text_available()); } @@ -882,10 +884,10 @@ GraphBox::event_refresh_activated() void GraphBox::event_fullscreen_toggled() { - // FIXME: ugh, use GTK signals to track state and know for sure - static bool is_fullscreen = false; - if (_window) { + // FIXME: ugh, use GTK signals to track state and know for sure + static bool is_fullscreen = false; + if (!is_fullscreen) { _window->fullscreen(); is_fullscreen = true; @@ -927,8 +929,7 @@ GraphBox::event_animate_signals_toggled() _app->interface()->set_property( URI("ingen:/clients/this"), _app->uris().ingen_broadcast, - _app->forge().make( - static_cast<bool>(_menu_animate_signals->get_active()))); + _app->forge().make(_menu_animate_signals->get_active())); } void diff --git a/src/gui/GraphBox.hpp b/src/gui/GraphBox.hpp index cfc4a67f..07962a3d 100644 --- a/src/gui/GraphBox.hpp +++ b/src/gui/GraphBox.hpp @@ -17,7 +17,7 @@ #ifndef INGEN_GUI_GRAPH_BOX_HPP #define INGEN_GUI_GRAPH_BOX_HPP -#include "ingen/ingen.h" +#include <ingen/ingen.h> #include <gdk/gdk.h> #include <glibmm/ustring.h> diff --git a/src/gui/GraphCanvas.cpp b/src/gui/GraphCanvas.cpp index 74542c87..3090186a 100644 --- a/src/gui/GraphCanvas.cpp +++ b/src/gui/GraphCanvas.cpp @@ -28,45 +28,48 @@ #include "WidgetFactory.hpp" #include "WindowFactory.hpp" -#include "ganv/Canvas.hpp" -#include "ganv/Edge.hpp" -#include "ganv/Module.hpp" -#include "ganv/Node.hpp" -#include "ganv/Port.hpp" -#include "ganv/canvas.h" -#include "ganv/edge.h" -#include "ganv/module.h" -#include "ganv/types.h" -#include "ingen/Arc.hpp" -#include "ingen/Atom.hpp" -#include "ingen/ClashAvoider.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Log.hpp" -#include "ingen/Node.hpp" -#include "ingen/Parser.hpp" -#include "ingen/Serialiser.hpp" -#include "ingen/Store.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/ArcModel.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" -#include "ingen/client/ObjectModel.hpp" -#include "ingen/client/PluginModel.hpp" -#include "ingen/client/PortModel.hpp" -#include "ingen/paths.hpp" -#include "raul/Symbol.hpp" -#include "sord/sordmm.hpp" +#include <ganv/Canvas.hpp> +#include <ganv/Edge.hpp> +#include <ganv/Module.hpp> +#include <ganv/Node.hpp> +#include <ganv/Port.hpp> +#include <ganv/canvas.h> +#include <ganv/edge.h> +#include <ganv/module.h> +#include <ganv/types.h> +#include <ingen/Arc.hpp> +#include <ingen/Atom.hpp> +#include <ingen/ClashAvoider.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Log.hpp> +#include <ingen/Node.hpp> +#include <ingen/Parser.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Resource.hpp> +#include <ingen/Serialiser.hpp> +#include <ingen/Store.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/ArcModel.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <ingen/client/PluginModel.hpp> +#include <ingen/client/PortModel.hpp> +#include <ingen/paths.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> +#include <sord/sordmm.hpp> #include <gdk/gdk.h> #include <gdk/gdkkeysyms-compat.h> #include <gdkmm/window.h> #include <glib.h> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/builder.h> #include <gtkmm/checkmenuitem.h> @@ -77,9 +80,9 @@ #include <gtkmm/menu.h> #include <gtkmm/menu_elems.h> #include <gtkmm/menuitem.h> -#include <gtkmm/menushell.h> #include <gtkmm/object.h> #include <gtkmm/stock.h> +#include <gtkmm/stockid.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> #include <sigc++/signal.h> @@ -131,7 +134,7 @@ GraphCanvas::GraphCanvas(App& app, , _app(app) , _graph(std::move(graph)) { - Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create("canvas_menu"); + const Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create("canvas_menu"); xml->get_widget("canvas_menu", _menu); xml->get_widget("canvas_menu_add_audio_input", _menu_add_audio_input); @@ -250,7 +253,7 @@ GraphCanvas::build_menus() _menu->reorder_child(*internal_menu_item, 4); } - // Build skeleton LV2 plugin class heirarchy for 'Plugin' menu + // Build skeleton LV2 plugin class hierarchy for 'Plugin' menu if (_plugin_menu) { _plugin_menu->clear(); } else { @@ -266,7 +269,7 @@ GraphCanvas::build_menus() sigc::mem_fun(this, &GraphCanvas::load_plugin)); } - // Add known plugins to menu heirarchy + // Add known plugins to menu hierarchy auto plugins = _app.store()->plugins(); for (const auto& p : *plugins) { add_plugin(p.second); @@ -302,7 +305,7 @@ GraphCanvas::build() static void show_module_human_names(GanvNode* node, void* data) { - bool b = *static_cast<bool*>(data); + const bool b = *static_cast<bool*>(data); if (GANV_IS_MODULE(node)) { Ganv::Module* module = Glib::wrap(GANV_MODULE(node)); auto* nmod = dynamic_cast<NodeModule*>(module); @@ -611,14 +614,14 @@ destroy_node(GanvNode* node, void* data) return; } - App* app = static_cast<App*>(data); + const App* app = static_cast<App*>(data); Ganv::Module* module = Glib::wrap(GANV_MODULE(node)); - auto* node_module = dynamic_cast<NodeModule*>(module); + const auto* node_module = dynamic_cast<NodeModule*>(module); if (node_module) { app->interface()->del(node_module->block()->uri()); } else { - auto* port_module = dynamic_cast<GraphPortModule*>(module); + const auto* port_module = dynamic_cast<GraphPortModule*>(module); if (port_module && strcmp(port_module->port()->path().symbol(), "control") && strcmp(port_module->port()->path().symbol(), "notify")) { @@ -630,11 +633,11 @@ destroy_node(GanvNode* node, void* data) static void destroy_arc(GanvEdge* arc, void* data) { - App* app = static_cast<App*>(data); + const App* app = static_cast<App*>(data); Ganv::Edge* arcmm = Glib::wrap(arc); - Port* tail = dynamic_cast<Port*>(arcmm->get_tail()); - Port* head = dynamic_cast<Port*>(arcmm->get_head()); + const Port* tail = dynamic_cast<Port*>(arcmm->get_tail()); + const Port* head = dynamic_cast<Port*>(arcmm->get_head()); app->interface()->disconnect(tail->model()->path(), head->model()->path()); } @@ -659,12 +662,12 @@ serialise_node(GanvNode* node, void* data) } Ganv::Module* module = Glib::wrap(GANV_MODULE(node)); - auto* node_module = dynamic_cast<NodeModule*>(module); + const auto* node_module = dynamic_cast<NodeModule*>(module); if (node_module) { serialiser->serialise(node_module->block()); } else { - auto* port_module = dynamic_cast<GraphPortModule*>(module); + const auto* port_module = dynamic_cast<GraphPortModule*>(module); if (port_module) { serialiser->serialise(port_module->port()); } @@ -679,7 +682,7 @@ serialise_arc(GanvEdge* arc, void* data) return; } - auto* garc = dynamic_cast<gui::Arc*>(Glib::wrap(GANV_EDGE(arc))); + const auto* garc = dynamic_cast<gui::Arc*>(Glib::wrap(GANV_EDGE(arc))); if (garc) { serialiser->serialise_arc(Sord::Node(), garc->model()); } @@ -688,7 +691,7 @@ serialise_arc(GanvEdge* arc, void* data) void GraphCanvas::copy_selection() { - std::lock_guard<std::mutex> lock(_app.world().rdf_mutex()); + const std::lock_guard<std::mutex> lock{_app.world().rdf_mutex()}; Serialiser serialiser(_app.world()); serialiser.start_to_string(_graph->path(), _graph->base_uri()); @@ -696,7 +699,7 @@ GraphCanvas::copy_selection() for_each_selected_node(serialise_node, &serialiser); for_each_selected_edge(serialise_arc, &serialiser); - Glib::RefPtr<Gtk::Clipboard> clipboard = Gtk::Clipboard::get(); + const Glib::RefPtr<Gtk::Clipboard> clipboard = Gtk::Clipboard::get(); clipboard->set_text(serialiser.finish()); _paste_count = 0; } @@ -704,7 +707,7 @@ GraphCanvas::copy_selection() void GraphCanvas::paste() { - std::lock_guard<std::mutex> lock(_app.world().rdf_mutex()); + const std::lock_guard<std::mutex> lock{_app.world().rdf_mutex()}; const Glib::ustring str = Gtk::Clipboard::get()->wait_for_text(); auto parser = _app.loader()->parser(); @@ -735,7 +738,7 @@ GraphCanvas::paste() if (base_uri) { std::string base = *base_uri; if (base[base.size() - 1] == '/') { - base = base.substr(0, base.size() - 1); + base.resize(base.size() - 1); } copy_root = uri_to_path(URI(base)); } @@ -875,7 +878,7 @@ GraphCanvas::menu_add_port(const string& sym_base, uris.rdf_type, Property(is_output ? uris.lv2_OutputPort : uris.lv2_InputPort)); props.emplace(uris.lv2_index, - _app.forge().make(int32_t(_graph->num_ports()))); + _app.forge().make(static_cast<int32_t>(_graph->num_ports()))); props.emplace(uris.lv2_name, _app.forge().alloc(name.c_str())); _app.interface()->put(path_to_uri(path), props); } @@ -888,8 +891,8 @@ GraphCanvas::load_plugin(const std::weak_ptr<PluginModel>& weak_plugin) return; } - raul::Symbol symbol = plugin->default_block_symbol(); - unsigned offset = _app.store()->child_name_offset(_graph->path(), symbol); + raul::Symbol symbol = plugin->default_block_symbol(); + const unsigned offset = _app.store()->child_name_offset(_graph->path(), symbol); if (offset != 0) { std::stringstream ss; ss << symbol << "_" << offset; diff --git a/src/gui/GraphCanvas.hpp b/src/gui/GraphCanvas.hpp index 3ebd61df..38f3ab08 100644 --- a/src/gui/GraphCanvas.hpp +++ b/src/gui/GraphCanvas.hpp @@ -17,12 +17,12 @@ #ifndef INGEN_GUI_GRAPHCANVAS_HPP #define INGEN_GUI_GRAPHCANVAS_HPP -#include "ganv/Canvas.hpp" -#include "ingen/Properties.hpp" -#include "ingen/Resource.hpp" -#include "ingen/URI.hpp" -#include "lilv/lilv.h" -#include "raul/Path.hpp" +#include <ganv/Canvas.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Resource.hpp> +#include <ingen/URI.hpp> +#include <lilv/lilv.h> +#include <raul/Path.hpp> #include <gdk/gdk.h> diff --git a/src/gui/GraphPortModule.cpp b/src/gui/GraphPortModule.cpp index ccbfbebf..cd471d97 100644 --- a/src/gui/GraphPortModule.cpp +++ b/src/gui/GraphPortModule.cpp @@ -20,17 +20,18 @@ #include "GraphCanvas.hpp" #include "Port.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "raul/Symbol.hpp" - -#include "ingen/Configuration.hpp" -#include "ingen/Interface.hpp" -#include "ingen/client/GraphModel.hpp" // IWYU pragma: keep -#include "ingen/client/PortModel.hpp" +#include <ganv/Module.hpp> +#include <ingen/Atom.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/PortModel.hpp> +#include <raul/Symbol.hpp> #include <sigc++/functors/mem_fun.h> #include <sigc++/signal.h> diff --git a/src/gui/GraphPortModule.hpp b/src/gui/GraphPortModule.hpp index 56b4521a..a8091f38 100644 --- a/src/gui/GraphPortModule.hpp +++ b/src/gui/GraphPortModule.hpp @@ -17,8 +17,8 @@ #ifndef INGEN_GUI_GRAPHPORTMODULE_HPP #define INGEN_GUI_GRAPHPORTMODULE_HPP -#include "ganv/Module.hpp" -#include "ingen/URI.hpp" +#include <ganv/Module.hpp> +#include <ingen/URI.hpp> #include <gdk/gdk.h> #include <glib.h> diff --git a/src/gui/GraphTreeWindow.cpp b/src/gui/GraphTreeWindow.cpp index 53defd75..1d141271 100644 --- a/src/gui/GraphTreeWindow.cpp +++ b/src/gui/GraphTreeWindow.cpp @@ -20,18 +20,19 @@ #include "Window.hpp" #include "WindowFactory.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Log.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Log.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <glibmm/propertyproxy.h> -#include <glibmm/signalproxy.h> #include <gtkmm/builder.h> #include <gtkmm/cellrenderer.h> #include <gtkmm/cellrenderertoggle.h> @@ -46,6 +47,7 @@ #include <cassert> #include <cstdint> #include <memory> +#include <string> namespace ingen { @@ -159,7 +161,7 @@ GraphTreeWindow::find_graph(Gtk::TreeModel::Children root, const std::shared_ptr<client::ObjectModel>& graph) { for (auto c = root.begin(); c != root.end(); ++c) { - std::shared_ptr<GraphModel> pm = (*c)[_graph_tree_columns.graph_model_col]; + const std::shared_ptr<GraphModel> pm = (*c)[_graph_tree_columns.graph_model_col]; if (graph == pm) { return c; } @@ -198,7 +200,7 @@ GraphTreeWindow::event_graph_activated(const Gtk::TreeModel::Path& path, const auto active = _graph_treestore->get_iter(path); auto row = *active; - std::shared_ptr<GraphModel> pm = row[_graph_tree_columns.graph_model_col]; + const std::shared_ptr<GraphModel> pm = row[_graph_tree_columns.graph_model_col]; _app->window_factory()->present_graph(pm); } @@ -206,17 +208,17 @@ GraphTreeWindow::event_graph_activated(const Gtk::TreeModel::Path& path, void GraphTreeWindow::event_graph_enabled_toggled(const Glib::ustring& path_str) { - Gtk::TreeModel::Path path(path_str); - auto active = _graph_treestore->get_iter(path); - auto row = *active; + const Gtk::TreeModel::Path path{path_str}; + auto active = _graph_treestore->get_iter(path); + auto row = *active; - std::shared_ptr<GraphModel> pm = row[_graph_tree_columns.graph_model_col]; + const std::shared_ptr<GraphModel> pm = row[_graph_tree_columns.graph_model_col]; assert(pm); if (_enable_signal) { _app->set_property(pm->uri(), _app->uris().ingen_enabled, - _app->forge().make(static_cast<bool>(!pm->enabled()))); + _app->forge().make(!pm->enabled())); } } diff --git a/src/gui/GraphTreeWindow.hpp b/src/gui/GraphTreeWindow.hpp index 8534d66c..6f33f258 100644 --- a/src/gui/GraphTreeWindow.hpp +++ b/src/gui/GraphTreeWindow.hpp @@ -19,7 +19,7 @@ #include "Window.hpp" -#include "ingen/URI.hpp" +#include <ingen/URI.hpp> #include <gdk/gdk.h> #include <glibmm/refptr.h> @@ -29,7 +29,6 @@ #include <gtkmm/treeselection.h> #include <gtkmm/treestore.h> #include <gtkmm/treeview.h> -#include <gtkmm/window.h> #include <memory> @@ -119,7 +118,7 @@ public: void set_window(GraphTreeWindow* win) { _window = win; } bool on_button_press_event(GdkEventButton* ev) override { - bool ret = Gtk::TreeView::on_button_press_event(ev); + const bool ret = Gtk::TreeView::on_button_press_event(ev); if ((ev->type == GDK_BUTTON_PRESS) && (ev->button == 3)) { _window->show_graph_menu(ev); diff --git a/src/gui/GraphView.cpp b/src/gui/GraphView.cpp index a5ca7dd1..8d1e1777 100644 --- a/src/gui/GraphView.cpp +++ b/src/gui/GraphView.cpp @@ -20,16 +20,15 @@ #include "GraphCanvas.hpp" #include "WidgetFactory.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URI.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/GraphModel.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/GraphModel.hpp> #include <glibmm/propertyproxy.h> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <gtkmm/adjustment.h> #include <gtkmm/builder.h> #include <gtkmm/enums.h> @@ -46,6 +45,7 @@ #include <cstdint> #include <map> #include <memory> +#include <string> #include <utility> namespace ingen { @@ -120,8 +120,9 @@ GraphView::set_graph(const std::shared_ptr<const GraphModel>& graph) std::shared_ptr<GraphView> GraphView::create(App& app, const std::shared_ptr<const GraphModel>& graph) { - GraphView* result = nullptr; - Glib::RefPtr<Gtk::Builder> xml = WidgetFactory::create("warehouse_win"); + GraphView* result = nullptr; + const Glib::RefPtr<Gtk::Builder> xml = + WidgetFactory::create("warehouse_win"); xml->get_widget_derived("graph_view_box", result); if (!result) { @@ -142,8 +143,7 @@ GraphView::process_toggled() _app->set_property(_graph->uri(), _app->uris().ingen_enabled, - _app->forge().make( - static_cast<bool>(_process_but->get_active()))); + _app->forge().make(_process_but->get_active())); } void diff --git a/src/gui/GraphView.hpp b/src/gui/GraphView.hpp index 0b6aee1e..812f2cbc 100644 --- a/src/gui/GraphView.hpp +++ b/src/gui/GraphView.hpp @@ -48,7 +48,7 @@ namespace gui { class App; class GraphCanvas; -/** The graph specific contents of a GraphWindow (ie the canvas and whatever else). +/** The graph specific contents of a GraphWindow (the canvas and whatever else). * * \ingroup GUI */ diff --git a/src/gui/GraphWindow.cpp b/src/gui/GraphWindow.cpp index 4efaf4ae..a6978e46 100644 --- a/src/gui/GraphWindow.cpp +++ b/src/gui/GraphWindow.cpp @@ -25,6 +25,7 @@ #include <glibmm/refptr.h> #include <gtkmm/builder.h> #include <gtkmm/layout.h> +#include <gtkmm/window.h> namespace ingen::gui { diff --git a/src/gui/GraphWindow.hpp b/src/gui/GraphWindow.hpp index d1361ca5..9936b5df 100644 --- a/src/gui/GraphWindow.hpp +++ b/src/gui/GraphWindow.hpp @@ -21,7 +21,6 @@ #include "Window.hpp" #include <gdk/gdk.h> -#include <gtkmm/window.h> #include <memory> #include <string> @@ -45,8 +44,6 @@ class PortModel; namespace gui { -class App; - /** A window for a graph. * * \ingroup GUI diff --git a/src/gui/LoadGraphWindow.cpp b/src/gui/LoadGraphWindow.cpp index 61796de4..5124face 100644 --- a/src/gui/LoadGraphWindow.cpp +++ b/src/gui/LoadGraphWindow.cpp @@ -19,23 +19,24 @@ #include "App.hpp" #include "ThreadedLoader.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/FilePath.hpp" -#include "ingen/Forge.hpp" -#include "ingen/URI.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" -#include "ingen/runtime_paths.hpp" -#include "raul/Path.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/FilePath.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/runtime_paths.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <glibmm/fileutils.h> #include <glibmm/miscutils.h> #include <glibmm/propertyproxy.h> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <glibmm/slisthandle.h> #include <gtkmm/builder.h> #include <gtkmm/button.h> @@ -198,7 +199,7 @@ LoadGraphWindow::ok_clicked() true, FilePath(get_filename()), parent, symbol, _initial_data); } else { - std::list<Glib::ustring> uri_list = get_filenames(); + const std::list<Glib::ustring> uri_list = get_filenames(); for (const auto& u : uri_list) { // Cascade Atom& x = _initial_data.find(uris.ingen_canvasX)->second; @@ -237,14 +238,14 @@ raul::Symbol LoadGraphWindow::symbol_from_filename(const Glib::ustring& filename) { std::string symbol_str = Glib::path_get_basename(get_filename()); - symbol_str = symbol_str.substr(0, symbol_str.find('.')); + symbol_str.resize(symbol_str.find('.')); return raul::Symbol::symbolify(symbol_str); } raul::Symbol LoadGraphWindow::avoid_symbol_clash(const raul::Symbol& symbol) { - unsigned offset = _app->store()->child_name_offset( + const unsigned offset = _app->store()->child_name_offset( _graph->path(), symbol); if (offset != 0) { diff --git a/src/gui/LoadGraphWindow.hpp b/src/gui/LoadGraphWindow.hpp index adb6bce1..bfa2590e 100644 --- a/src/gui/LoadGraphWindow.hpp +++ b/src/gui/LoadGraphWindow.hpp @@ -17,8 +17,8 @@ #ifndef INGEN_GUI_LOADGRAPHWINDOW_HPP #define INGEN_GUI_LOADGRAPHWINDOW_HPP -#include "ingen/Properties.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Properties.hpp> +#include <raul/Symbol.hpp> #include <glibmm/ustring.h> #include <gtkmm/filechooserdialog.h> diff --git a/src/gui/LoadPluginWindow.cpp b/src/gui/LoadPluginWindow.cpp index 940f09b1..3d8b2cd5 100644 --- a/src/gui/LoadPluginWindow.cpp +++ b/src/gui/LoadPluginWindow.cpp @@ -19,22 +19,23 @@ #include "App.hpp" #include "Window.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" -#include "ingen/client/PluginModel.hpp" -#include "ingen/paths.hpp" -#include "lilv/lilv.h" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/PluginModel.hpp> +#include <ingen/paths.hpp> +#include <lilv/lilv.h> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <gdk/gdkkeysyms-compat.h> #include <glibmm/listhandle.h> #include <glibmm/propertyproxy.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/builder.h> #include <gtkmm/button.h> @@ -42,9 +43,12 @@ #include <gtkmm/combobox.h> #include <gtkmm/enums.h> #include <gtkmm/messagedialog.h> +#include <gtkmm/object.h> #include <gtkmm/treeiter.h> +#include <gtkmm/treepath.h> #include <gtkmm/treeview.h> #include <gtkmm/treeviewcolumn.h> +#include <gtkmm/window.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> #include <sigc++/signal.h> @@ -351,7 +355,7 @@ LoadPluginWindow::plugin_activated(const Gtk::TreeModel::Path& path, void LoadPluginWindow::plugin_selection_changed() { - size_t n_selected = _selection->get_selected_rows().size(); + const size_t n_selected = _selection->get_selected_rows().size(); if (n_selected == 0) { _name_offset = 0; _name_entry->set_text(""); @@ -405,7 +409,7 @@ LoadPluginWindow::load_plugin(const Gtk::TreeModel::iterator& iter) const URIs& uris = _app->uris(); auto row = *iter; auto plugin = row.get_value(_plugins_columns._col_plugin); - bool polyphonic = _polyphonic_checkbutton->get_active(); + const bool polyphonic = _polyphonic_checkbutton->get_active(); string name = _name_entry->get_text(); if (name.empty()) { @@ -420,8 +424,8 @@ LoadPluginWindow::load_plugin(const Gtk::TreeModel::iterator& iter) dialog.run(); } else { - raul::Path path = _graph->path().child(raul::Symbol::symbolify(name)); - Properties props = _initial_data; + const raul::Path path = _graph->path().child(raul::Symbol::symbolify(name)); + Properties props = _initial_data; props.emplace(uris.rdf_type, Property(uris.ingen_Block)); props.emplace(uris.lv2_prototype, _app->forge().make_urid(plugin->uri())); props.emplace(uris.ingen_polyphonic, _app->forge().make(polyphonic)); @@ -457,7 +461,7 @@ LoadPluginWindow::filter_changed() // Get selected criteria const auto row = *(_filter_combo->get_active()); - CriteriaColumns::Criteria criteria = row[_criteria_columns._col_criteria]; + const CriteriaColumns::Criteria criteria = row[_criteria_columns._col_criteria]; string field; diff --git a/src/gui/LoadPluginWindow.hpp b/src/gui/LoadPluginWindow.hpp index 7a9313e2..eab48913 100644 --- a/src/gui/LoadPluginWindow.hpp +++ b/src/gui/LoadPluginWindow.hpp @@ -19,9 +19,9 @@ #include "Window.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URI.hpp" -#include "ingen/client/ClientStore.hpp" +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/client/ClientStore.hpp> #include <gdk/gdk.h> #include <glibmm/refptr.h> @@ -30,7 +30,6 @@ #include <gtkmm/treemodel.h> #include <gtkmm/treemodelcolumn.h> #include <gtkmm/treeselection.h> -#include <gtkmm/window.h> #include <map> #include <memory> diff --git a/src/gui/MessagesWindow.cpp b/src/gui/MessagesWindow.cpp index 7a382d51..993fbb33 100644 --- a/src/gui/MessagesWindow.cpp +++ b/src/gui/MessagesWindow.cpp @@ -20,12 +20,12 @@ #include "Window.hpp" #include "ingen_config.h" -#include "ingen/URIs.hpp" -#include "lv2/urid/urid.h" +#include <ingen/URIs.hpp> +#include <lv2/urid/urid.h> #include <gdkmm/color.h> #include <glibmm/propertyproxy.h> -#include <glibmm/signalproxy.h> +#include <glibmm/ustring.h> #include <gtkmm/builder.h> #include <gtkmm/button.h> #include <gtkmm/enums.h> @@ -84,7 +84,7 @@ MessagesWindow::init_window(App& app) void MessagesWindow::post_error(const string& msg) { - Glib::RefPtr<Gtk::TextBuffer> text_buf = _textview->get_buffer(); + const Glib::RefPtr<Gtk::TextBuffer> text_buf = _textview->get_buffer(); text_buf->insert_with_tag(text_buf->end(), msg, _error_tag); text_buf->insert(text_buf->end(), "\n"); @@ -101,7 +101,7 @@ MessagesWindow::post_error(const string& msg) int MessagesWindow::log(LV2_URID type, const char* fmt, va_list args) { - std::lock_guard<std::mutex> lock(_mutex); + const std::lock_guard<std::mutex> lock{_mutex}; #if USE_VASPRINTF char* buf = nullptr; @@ -125,7 +125,7 @@ MessagesWindow::flush() std::string line; { - std::lock_guard<std::mutex> lock(_mutex); + const std::lock_guard<std::mutex> lock{_mutex}; if (!_stream.rdbuf()->in_avail()) { return; } @@ -133,7 +133,7 @@ MessagesWindow::flush() std::getline(_stream, line, '\0'); } - Glib::RefPtr<Gtk::TextBuffer> text_buf = _textview->get_buffer(); + const Glib::RefPtr<Gtk::TextBuffer> text_buf = _textview->get_buffer(); auto t = _tags.find(type); if (t != _tags.end()) { @@ -151,7 +151,7 @@ MessagesWindow::flush() void MessagesWindow::clear_clicked() { - Glib::RefPtr<Gtk::TextBuffer> text_buf = _textview->get_buffer(); + const Glib::RefPtr<Gtk::TextBuffer> text_buf = _textview->get_buffer(); text_buf->erase(text_buf->begin(), text_buf->end()); _clear_button->set_sensitive(false); } diff --git a/src/gui/MessagesWindow.hpp b/src/gui/MessagesWindow.hpp index 97b6187c..0a70e76c 100644 --- a/src/gui/MessagesWindow.hpp +++ b/src/gui/MessagesWindow.hpp @@ -19,11 +19,10 @@ #include "Window.hpp" -#include "lv2/urid/urid.h" +#include <lv2/urid/urid.h> #include <glibmm/refptr.h> #include <gtkmm/texttag.h> -#include <gtkmm/window.h> #include <cstdarg> #include <map> @@ -39,8 +38,6 @@ class TextView; namespace ingen::gui { -class App; - /** Messages Window. * * Loaded from XML as a derived object. diff --git a/src/gui/NewSubgraphWindow.cpp b/src/gui/NewSubgraphWindow.cpp index 086159a5..3d6bf019 100644 --- a/src/gui/NewSubgraphWindow.cpp +++ b/src/gui/NewSubgraphWindow.cpp @@ -19,20 +19,20 @@ #include "App.hpp" #include "Window.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Resource.hpp" -#include "ingen/URI.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" -#include "ingen/paths.hpp" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Resource.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/paths.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <glibmm/propertyproxy.h> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/adjustment.h> #include <gtkmm/builder.h> @@ -40,6 +40,7 @@ #include <gtkmm/entry.h> #include <gtkmm/label.h> #include <gtkmm/spinbutton.h> +#include <gtkmm/window.h> #include <sigc++/functors/mem_fun.h> #include <cstdint> @@ -93,7 +94,7 @@ NewSubgraphWindow::set_graph(std::shared_ptr<const client::GraphModel> graph) void NewSubgraphWindow::name_changed() { - std::string name = _name_entry->get_text(); + const std::string name = _name_entry->get_text(); if (!raul::Symbol::is_valid(name)) { _message_label->set_text("Name contains invalid characters."); _ok_button->property_sensitive() = false; @@ -117,8 +118,8 @@ NewSubgraphWindow::ok_clicked() // Create graph Properties props; props.emplace(_app->uris().rdf_type, Property(_app->uris().ingen_Graph)); - props.emplace(_app->uris().ingen_polyphony, _app->forge().make(int32_t(poly))); - props.emplace(_app->uris().ingen_enabled, _app->forge().make(bool(true))); + props.emplace(_app->uris().ingen_polyphony, _app->forge().make(static_cast<int32_t>(poly))); + props.emplace(_app->uris().ingen_enabled, _app->forge().make(true)); _app->interface()->put( path_to_uri(path), props, Resource::Graph::INTERNAL); diff --git a/src/gui/NewSubgraphWindow.hpp b/src/gui/NewSubgraphWindow.hpp index be660da5..b0fb24d2 100644 --- a/src/gui/NewSubgraphWindow.hpp +++ b/src/gui/NewSubgraphWindow.hpp @@ -19,9 +19,7 @@ #include "Window.hpp" -#include "ingen/Properties.hpp" - -#include <gtkmm/window.h> +#include <ingen/Properties.hpp> #include <memory> diff --git a/src/gui/NodeMenu.cpp b/src/gui/NodeMenu.cpp index 2ebc223d..2815194c 100644 --- a/src/gui/NodeMenu.cpp +++ b/src/gui/NodeMenu.cpp @@ -1,6 +1,6 @@ /* This file is part of Ingen. - Copyright 2007-2015 David Robillard <http://drobilla.net/> + Copyright 2007-2024 David Robillard <http://drobilla.net/> Ingen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free @@ -19,22 +19,22 @@ #include "App.hpp" #include "ObjectMenu.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/ObjectModel.hpp" -#include "ingen/client/PluginModel.hpp" -#include "ingen/client/PortModel.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <ingen/client/PluginModel.hpp> +#include <ingen/client/PortModel.hpp> +#include <raul/Symbol.hpp> #include <glib.h> #include <glibmm/convert.h> #include <glibmm/miscutils.h> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/box.h> #include <gtkmm/builder.h> @@ -46,15 +46,17 @@ #include <gtkmm/filechooserdialog.h> #include <gtkmm/image.h> #include <gtkmm/label.h> +#include <gtkmm/menu.h> #include <gtkmm/menu_elems.h> #include <gtkmm/menuitem.h> -#include <gtkmm/menushell.h> #include <gtkmm/object.h> #include <gtkmm/separatormenuitem.h> #include <gtkmm/stock.h> +#include <gtkmm/stockid.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> +#include <algorithm> #include <cstdint> #include <map> #include <memory> @@ -160,6 +162,12 @@ NodeMenu::init(App& app, const std::shared_ptr<const client::BlockModel>& block) _enable_signal = true; } +std::shared_ptr<const client::BlockModel> +NodeMenu::block() const +{ + return std::dynamic_pointer_cast<const client::BlockModel>(_object); +} + void NodeMenu::add_preset(const URI& uri, const std::string& label) { @@ -183,7 +191,7 @@ NodeMenu::on_menu_enabled() { _app->set_property(_object->uri(), _app->uris().ingen_enabled, - _app->forge().make(bool(_enabled_menuitem->get_active()))); + _app->forge().make(_enabled_menuitem->get_active())); } void @@ -199,7 +207,7 @@ NodeMenu::on_menu_randomize() bm->port_value_range(p, min, max, _app->sample_rate()); const auto r = static_cast<float>(g_random_double_range(0.0, 1.0)); - const float val = r * (max - min) + min; + const float val = (r * (max - min)) + min; _app->set_property(p->uri(), _app->uris().ingen_value, _app->forge().make(val)); @@ -245,7 +253,7 @@ NodeMenu::on_save_preset_activated() const std::string real_path = Glib::build_filename(dirname, bundle, file); const std::string real_uri = Glib::filename_to_uri(real_path); - Properties props{ + const Properties props{ { _app->uris().rdf_type, _app->uris().pset_Preset }, { _app->uris().rdfs_label, @@ -267,13 +275,11 @@ NodeMenu::on_preset_activated(const std::string& uri) bool NodeMenu::has_control_inputs() { - for (const auto& p : block()->ports()) { - if (p->is_input() && p->is_numeric()) { - return true; - } - } - - return false; + return std::any_of(block()->ports().begin(), + block()->ports().end(), + [](const auto& p) { + return p->is_input() && p->is_numeric(); + }); } } // namespace ingen::gui diff --git a/src/gui/NodeMenu.hpp b/src/gui/NodeMenu.hpp index f109c3e4..0427672c 100644 --- a/src/gui/NodeMenu.hpp +++ b/src/gui/NodeMenu.hpp @@ -19,9 +19,8 @@ #include "ObjectMenu.hpp" -#include "ingen/URI.hpp" +#include <ingen/URI.hpp> -#include <gtkmm/menu.h> #include <sigc++/connection.h> #include <sigc++/signal.h> @@ -35,6 +34,7 @@ template <class T> class RefPtr; namespace Gtk { class Builder; class CheckMenuItem; +class Menu; class MenuItem; } // namespace Gtk @@ -66,9 +66,7 @@ public: sigc::signal<void, bool> signal_embed_gui; protected: - std::shared_ptr<const client::BlockModel> block() const { - return std::dynamic_pointer_cast<const client::BlockModel>(_object); - } + std::shared_ptr<const client::BlockModel> block() const; void add_preset(const URI& uri, const std::string& label); diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp index 1b090c4f..deb8fe52 100644 --- a/src/gui/NodeModule.cpp +++ b/src/gui/NodeModule.cpp @@ -27,27 +27,28 @@ #include "WindowFactory.hpp" #include "ingen_config.h" -#include "ganv/Port.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Log.hpp" -#include "ingen/Properties.hpp" -#include "ingen/Resource.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/GraphModel.hpp" // IWYU pragma: keep -#include "ingen/client/PluginModel.hpp" -#include "ingen/client/PluginUI.hpp" -#include "ingen/client/PortModel.hpp" -#include "lv2/atom/util.h" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" +#include <ganv/Module.hpp> +#include <ganv/Port.hpp> +#include <ingen/Atom.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Log.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Resource.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/PluginModel.hpp> +#include <ingen/client/PluginUI.hpp> +#include <ingen/client/PortModel.hpp> +#include <lv2/atom/util.h> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <glibmm/main.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/container.h> #include <gtkmm/eventbox.h> @@ -56,6 +57,7 @@ #include <sigc++/adaptors/bind.h> #include <sigc++/adaptors/retype_return.h> #include <sigc++/functors/mem_fun.h> +#include <sigc++/functors/slot.h> #include <sigc++/signal.h> #include <cassert> @@ -207,7 +209,7 @@ NodeModule::show_human_names(bool b) if (name_property.type() == uris.forge.String) { label = name_property.ptr<char>(); } else { - Glib::ustring hn = block()->plugin_model()->port_human_name( + const Glib::ustring hn = block()->plugin_model()->port_human_name( port->model()->index()); if (!hn.empty()) { label = hn; @@ -532,9 +534,10 @@ NodeModule::on_selected(gboolean selected) if (selected && win->documentation_is_visible()) { std::string doc; - bool html = false; #if USE_WEBKIT - html = true; + const bool html = true; +#else + const bool html = false; #endif if (block()->plugin_model()) { doc = block()->plugin_model()->documentation(html); diff --git a/src/gui/NodeModule.hpp b/src/gui/NodeModule.hpp index 226dccd1..64ad8f66 100644 --- a/src/gui/NodeModule.hpp +++ b/src/gui/NodeModule.hpp @@ -17,8 +17,8 @@ #ifndef INGEN_GUI_NODEMODULE_HPP #define INGEN_GUI_NODEMODULE_HPP -#include "ganv/Module.hpp" -#include "ingen/URI.hpp" +#include <ganv/Module.hpp> +#include <ingen/URI.hpp> #include <gdk/gdk.h> #include <glib.h> diff --git a/src/gui/ObjectMenu.cpp b/src/gui/ObjectMenu.cpp index 56055d1c..8c41ff10 100644 --- a/src/gui/ObjectMenu.cpp +++ b/src/gui/ObjectMenu.cpp @@ -19,15 +19,15 @@ #include "App.hpp" #include "WindowFactory.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/ObjectModel.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/ObjectModel.hpp> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <gtkmm/builder.h> #include <gtkmm/checkmenuitem.h> #include <gtkmm/menuitem.h> @@ -118,7 +118,7 @@ ObjectMenu::on_menu_polyphonic() _app->set_property( _object->uri(), _app->uris().ingen_polyphonic, - _app->forge().make(bool(_polyphonic_menuitem->get_active()))); + _app->forge().make(_polyphonic_menuitem->get_active())); } } diff --git a/src/gui/ObjectMenu.hpp b/src/gui/ObjectMenu.hpp index de105364..5a4c83f4 100644 --- a/src/gui/ObjectMenu.hpp +++ b/src/gui/ObjectMenu.hpp @@ -17,7 +17,7 @@ #ifndef INGEN_GUI_OBJECTMENU_HPP #define INGEN_GUI_OBJECTMENU_HPP -#include "ingen/URI.hpp" +#include <ingen/URI.hpp> #include <gtkmm/menu.h> diff --git a/src/gui/PluginMenu.cpp b/src/gui/PluginMenu.cpp index ac3c3981..26bbed08 100644 --- a/src/gui/PluginMenu.cpp +++ b/src/gui/PluginMenu.cpp @@ -16,15 +16,15 @@ #include "PluginMenu.hpp" -#include "ingen/Log.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/PluginModel.hpp" +#include <ingen/Log.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/PluginModel.hpp> +#include <lilv/lilv.h> #include <glibmm/ustring.h> #include <gtkmm/menu_elems.h> #include <gtkmm/menuitem.h> -#include <gtkmm/menushell.h> #include <gtkmm/object.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> @@ -126,7 +126,7 @@ PluginMenu::build_plugin_class_menu(Gtk::Menu* menu, return 0; } - Gtk::Menu_Helpers::MenuElem menu_elem = Gtk::Menu_Helpers::MenuElem( + const Gtk::Menu_Helpers::MenuElem menu_elem = Gtk::Menu_Helpers::MenuElem( std::string("_") + sub_label_str); menu->items().push_back(menu_elem); Gtk::MenuItem* menu_item = &(menu->items().back()); @@ -134,7 +134,7 @@ PluginMenu::build_plugin_class_menu(Gtk::Menu* menu, Gtk::Menu* submenu = Gtk::manage(new Gtk::Menu()); menu_item->set_submenu(*submenu); - size_t num_child_items = build_plugin_class_menu( + const size_t num_child_items = build_plugin_class_menu( submenu, c, classes, children, ancestors); _class_menus.emplace(sub_uri_str, MenuRecord(menu_item, submenu)); @@ -158,10 +158,10 @@ PluginMenu::add_plugin_to_menu(MenuRecord& menu, LilvNode* ingen_Graph = lilv_new_uri(lworld, uris.ingen_Graph.c_str()); LilvNode* rdf_type = lilv_new_uri(lworld, uris.rdf_type.c_str()); - bool is_graph = lilv_world_ask(lworld, - lilv_plugin_get_uri(p->lilv_plugin()), - rdf_type, - ingen_Graph); + const bool is_graph = lilv_world_ask(lworld, + lilv_plugin_get_uri(p->lilv_plugin()), + rdf_type, + ingen_Graph); menu.menu->items().push_back( Gtk::Menu_Helpers::MenuElem( diff --git a/src/gui/PluginMenu.hpp b/src/gui/PluginMenu.hpp index b2c75ffe..eb0a565a 100644 --- a/src/gui/PluginMenu.hpp +++ b/src/gui/PluginMenu.hpp @@ -17,7 +17,7 @@ #ifndef INGEN_GUI_PLUGINMENU_HPP #define INGEN_GUI_PLUGINMENU_HPP -#include "lilv/lilv.h" +#include <lilv/lilv.h> #include <gtkmm/menu.h> #include <sigc++/signal.h> @@ -50,7 +50,7 @@ namespace gui { class PluginMenu : public Gtk::Menu { public: - PluginMenu(ingen::World& world); + explicit PluginMenu(ingen::World& world); void clear(); void add_plugin(const std::shared_ptr<client::PluginModel>& p); diff --git a/src/gui/Port.cpp b/src/gui/Port.cpp index 89b86184..4d11e309 100644 --- a/src/gui/Port.cpp +++ b/src/gui/Port.cpp @@ -27,30 +27,30 @@ #include "ingen_config.h" #include "rgba.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Log.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URI.hpp" -#include "ingen/URIMap.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/GraphModel.hpp" // IWYU pragma: keep -#include "ingen/client/ObjectModel.hpp" -#include "ingen/client/PluginModel.hpp" -#include "ingen/client/PortModel.hpp" -#include "lilv/lilv.h" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" -#include "sord/sordmm.hpp" - -#include <glibmm/signalproxy.h> +#include <ganv/Port.hpp> +#include <ingen/Atom.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Log.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIMap.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <ingen/client/PluginModel.hpp> +#include <ingen/client/PortModel.hpp> +#include <lilv/lilv.h> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> +#include <sord/sordmm.hpp> + +#include <glibmm/ustring.h> #include <gtkmm/menu.h> #include <gtkmm/menu_elems.h> #include <gtkmm/menuitem.h> -#include <gtkmm/menushell.h> #include <gtkmm/object.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> @@ -230,7 +230,7 @@ Port::on_value_changed(double value) return; // No change } - const Atom atom = _app.forge().make(float(value)); + const Atom atom = _app.forge().make(static_cast<float>(value)); _app.set_property(model()->uri(), _app.world().uris().ingen_value, atom); @@ -265,7 +265,7 @@ Port::build_enum_menu() auto block = std::dynamic_pointer_cast<BlockModel>(model()->parent()); Gtk::Menu* menu = Gtk::manage(new Gtk::Menu()); - PluginModel::ScalePoints points = block->plugin_model()->port_scale_points( + const PluginModel::ScalePoints points = block->plugin_model()->port_scale_points( model()->index()); for (const auto& p : points) { menu->items().push_back(Gtk::Menu_Helpers::MenuElem(p.second)); @@ -316,7 +316,7 @@ Port::build_uri_menu() rdfs::classes(world, ranges, false); // Get all objects in range - rdfs::Objects values = rdfs::instances(world, ranges); + const rdfs::Objects values = rdfs::instances(world, ranges); // Add a menu item for each such class for (const auto& v : values) { @@ -553,9 +553,10 @@ Port::on_selected(gboolean b) GraphWindow* win = _app.window_factory()->parent_graph_window(block); if (win && win->documentation_is_visible() && block->plugin_model()) { - bool html = false; #if USE_WEBKIT - html = true; + const bool html = true; +#else + const bool html = false; #endif const std::string& doc = block->plugin_model()->port_documentation( pm->index(), html); diff --git a/src/gui/Port.hpp b/src/gui/Port.hpp index 8e8077bc..bfd8e15d 100644 --- a/src/gui/Port.hpp +++ b/src/gui/Port.hpp @@ -17,7 +17,7 @@ #ifndef INGEN_GUI_PORT_HPP #define INGEN_GUI_PORT_HPP -#include "ganv/Port.hpp" +#include <ganv/Port.hpp> #include <gdk/gdk.h> #include <glib.h> diff --git a/src/gui/PortMenu.cpp b/src/gui/PortMenu.cpp index 96b0788a..373425cf 100644 --- a/src/gui/PortMenu.cpp +++ b/src/gui/PortMenu.cpp @@ -19,24 +19,25 @@ #include "App.hpp" #include "ObjectMenu.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Properties.hpp" -#include "ingen/Resource.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/GraphModel.hpp" // IWYU pragma: keep -#include "ingen/client/ObjectModel.hpp" -#include "ingen/client/PortModel.hpp" -#include "ingen/paths.hpp" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Resource.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <ingen/client/PortModel.hpp> +#include <ingen/paths.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <gtkmm/builder.h> #include <gtkmm/checkmenuitem.h> +#include <gtkmm/menu.h> #include <gtkmm/menuitem.h> #include <gtkmm/separatormenuitem.h> #include <sigc++/functors/mem_fun.h> diff --git a/src/gui/PortMenu.hpp b/src/gui/PortMenu.hpp index 71a5f48b..cf7f9c62 100644 --- a/src/gui/PortMenu.hpp +++ b/src/gui/PortMenu.hpp @@ -19,8 +19,6 @@ #include "ObjectMenu.hpp" -#include <gtkmm/menu.h> - #include <memory> namespace Glib { @@ -29,6 +27,7 @@ template <class T> class RefPtr; namespace Gtk { class Builder; +class Menu; class MenuItem; } // namespace Gtk diff --git a/src/gui/PropertiesWindow.cpp b/src/gui/PropertiesWindow.cpp index 4ea1536d..0dde0ab2 100644 --- a/src/gui/PropertiesWindow.cpp +++ b/src/gui/PropertiesWindow.cpp @@ -21,23 +21,25 @@ #include "URIEntry.hpp" #include "Window.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Log.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URIMap.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/ObjectModel.hpp" -#include "lilv/lilv.h" -#include "lv2/urid/urid.h" -#include "raul/Path.hpp" -#include "sord/sordmm.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Log.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIMap.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <lilv/lilv.h> +#include <lv2/urid/urid.h> +#include <raul/Path.hpp> +#include <sord/sordmm.hpp> #include <glibmm/containers.h> #include <glibmm/propertyproxy.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> +#include <gtk/gtk.h> #include <gtkmm/alignment.h> #include <gtkmm/bin.h> #include <gtkmm/box.h> @@ -54,6 +56,7 @@ #include <gtkmm/table.h> #include <gtkmm/treeiter.h> #include <gtkmm/widget.h> +#include <gtkmm/window.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> #include <sigc++/signal.h> @@ -382,9 +385,9 @@ PropertiesWindow::create_value_widget(const URI& key, ? world.uri_map().unmap_uri(value.get<int32_t>()) : ""); - LilvNode* pred = lilv_new_uri(lworld, key.c_str()); - URISet ranges = rdfs::range(world, pred, true); - URIEntry* widget = manage(new URIEntry(_app, ranges, str ? str : "")); + LilvNode* pred = lilv_new_uri(lworld, key.c_str()); + const URISet ranges = rdfs::range(world, pred, true); + URIEntry* widget = manage(new URIEntry(_app, ranges, str ? str : "")); widget->signal_changed().connect( sigc::bind(sigc::mem_fun(this, &PropertiesWindow::on_change), key)); lilv_node_free(pred); @@ -400,10 +403,10 @@ PropertiesWindow::create_value_widget(const URI& key, if (type == _app->uris().atom_URI || type == _app->uris().rdfs_Class || is_class) { - LilvNode* pred = lilv_new_uri(lworld, key.c_str()); - URISet ranges = rdfs::range(world, pred, true); - const char* str = value.is_valid() ? value.ptr<const char>() : ""; - URIEntry* widget = manage(new URIEntry(_app, ranges, str)); + LilvNode* pred = lilv_new_uri(lworld, key.c_str()); + const URISet ranges = rdfs::range(world, pred, true); + const char* str = value.is_valid() ? value.ptr<const char>() : ""; + URIEntry* widget = manage(new URIEntry(_app, ranges, str)); widget->signal_changed().connect( sigc::bind(sigc::mem_fun(this, &PropertiesWindow::on_change), key)); lilv_node_free(pred); @@ -482,7 +485,7 @@ PropertiesWindow::remove_property(const URI& key, const Atom& value) Atom PropertiesWindow::get_value(LV2_URID type, Gtk::Widget* value_widget) { - Forge& forge = _app->forge(); + const Forge& forge = _app->forge(); if (type == forge.Int) { auto* spin = dynamic_cast<Gtk::SpinButton*>(value_widget); @@ -501,10 +504,13 @@ PropertiesWindow::get_value(LV2_URID type, Gtk::Widget* value_widget) } } else if (type == forge.URI || type == forge.URID) { auto* uri_entry = dynamic_cast<URIEntry*>(value_widget); - if (uri_entry && URI::is_valid(uri_entry->get_text())) { - return _app->forge().make_urid(URI(uri_entry->get_text())); + if (uri_entry) { + if (URI::is_valid(uri_entry->get_text())) { + return _app->forge().make_urid(URI(uri_entry->get_text())); + } + + _app->log().error("Invalid URI <%1%>\n", uri_entry->get_text()); } - _app->log().error("Invalid URI <%1%>\n", uri_entry->get_text()); } else if (type == forge.String) { auto* entry = dynamic_cast<Gtk::Entry*>(value_widget); if (entry) { @@ -542,7 +548,7 @@ PropertiesWindow::active_key() const return ""; } - Glib::ustring prop_uri = (*iter)[_combo_columns.uri_col]; + const Glib::ustring prop_uri = (*iter)[_combo_columns.uri_col]; return prop_uri; } diff --git a/src/gui/PropertiesWindow.hpp b/src/gui/PropertiesWindow.hpp index 60b6bda3..e788d140 100644 --- a/src/gui/PropertiesWindow.hpp +++ b/src/gui/PropertiesWindow.hpp @@ -19,15 +19,14 @@ #include "Window.hpp" -#include "ingen/Atom.hpp" -#include "ingen/URI.hpp" -#include "lv2/urid/urid.h" +#include <ingen/Atom.hpp> +#include <ingen/URI.hpp> +#include <lv2/urid/urid.h> #include <glibmm/refptr.h> #include <gtkmm/liststore.h> #include <gtkmm/treemodel.h> #include <gtkmm/treemodelcolumn.h> -#include <gtkmm/window.h> #include <sigc++/connection.h> #include <map> diff --git a/src/gui/RDFS.cpp b/src/gui/RDFS.cpp index bba8c31f..09af81af 100644 --- a/src/gui/RDFS.cpp +++ b/src/gui/RDFS.cpp @@ -14,16 +14,17 @@ along with Ingen. If not, see <http://www.gnu.org/licenses/>. */ -#include "ingen/Forge.hpp" -#include "ingen/Log.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/ObjectModel.hpp" -#include "lilv/lilv.h" - #include "RDFS.hpp" +#include <ingen/Forge.hpp> +#include <ingen/Log.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <lilv/lilv.h> + #include <utility> namespace ingen::gui::rdfs { @@ -77,7 +78,7 @@ closure(World& world, const LilvNode* pred, URISet& types, bool super) LILV_FOREACH (nodes, m, matches) { const LilvNode* klass_node = lilv_nodes_get(matches, m); if (lilv_node_is_uri(klass_node)) { - URI klass(lilv_node_as_uri(klass_node)); + const URI klass{lilv_node_as_uri(klass_node)}; if (!types.count(klass)) { ++added; klasses.insert(klass); @@ -144,8 +145,8 @@ URISet properties(World& world, const std::shared_ptr<const client::ObjectModel>& model) { - URISet properties; - URISet types = rdfs::types(world, model); + URISet properties; + const URISet types = rdfs::types(world, model); LilvNode* rdf_type = lilv_new_uri(world.lilv_world(), LILV_NS_RDF "type"); diff --git a/src/gui/RDFS.hpp b/src/gui/RDFS.hpp index ad4e22e8..e4c2b673 100644 --- a/src/gui/RDFS.hpp +++ b/src/gui/RDFS.hpp @@ -17,8 +17,8 @@ #ifndef INGEN_GUI_RDF_HPP #define INGEN_GUI_RDF_HPP -#include "ingen/URI.hpp" -#include "lilv/lilv.h" +#include <ingen/URI.hpp> +#include <lilv/lilv.h> #include <map> #include <memory> diff --git a/src/gui/RenameWindow.cpp b/src/gui/RenameWindow.cpp index e2c1e98c..569baea8 100644 --- a/src/gui/RenameWindow.cpp +++ b/src/gui/RenameWindow.cpp @@ -19,24 +19,24 @@ #include "App.hpp" #include "Window.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/ObjectModel.hpp" -#include "ingen/paths.hpp" -#include "raul/Path.hpp" -#include "raul/Symbol.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <ingen/paths.hpp> +#include <raul/Path.hpp> +#include <raul/Symbol.hpp> #include <glibmm/propertyproxy.h> #include <glibmm/refptr.h> -#include <glibmm/signalproxy.h> #include <glibmm/ustring.h> #include <gtkmm/builder.h> #include <gtkmm/button.h> #include <gtkmm/entry.h> #include <gtkmm/label.h> +#include <gtkmm/window.h> #include <sigc++/functors/mem_fun.h> #include <memory> diff --git a/src/gui/RenameWindow.hpp b/src/gui/RenameWindow.hpp index 42db3ff6..9c97d234 100644 --- a/src/gui/RenameWindow.hpp +++ b/src/gui/RenameWindow.hpp @@ -19,8 +19,6 @@ #include "Window.hpp" -#include <gtkmm/window.h> - #include <memory> namespace Glib { diff --git a/src/gui/Style.cpp b/src/gui/Style.cpp index 9a9e7478..f1f1b12b 100644 --- a/src/gui/Style.cpp +++ b/src/gui/Style.cpp @@ -18,8 +18,8 @@ #include "App.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/PortModel.hpp" +#include <ingen/URIs.hpp> +#include <ingen/client/PortModel.hpp> #include <string> diff --git a/src/gui/SubgraphModule.cpp b/src/gui/SubgraphModule.cpp index fee602b5..a1b14bb6 100644 --- a/src/gui/SubgraphModule.cpp +++ b/src/gui/SubgraphModule.cpp @@ -20,16 +20,17 @@ #include "NodeModule.hpp" #include "WindowFactory.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Resource.hpp" -#include "ingen/URIs.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/GraphModel.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Resource.hpp> +#include <ingen/URIs.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/GraphModel.hpp> #include <cassert> #include <memory> +#include <utility> namespace ingen { diff --git a/src/gui/ThreadedLoader.cpp b/src/gui/ThreadedLoader.cpp index 0e5f1b01..abbedbaf 100644 --- a/src/gui/ThreadedLoader.cpp +++ b/src/gui/ThreadedLoader.cpp @@ -18,13 +18,17 @@ #include "App.hpp" -#include "ingen/Log.hpp" -#include "ingen/Parser.hpp" -#include "ingen/Serialiser.hpp" -#include "ingen/URI.hpp" -#include "ingen/World.hpp" -#include "ingen/client/GraphModel.hpp" -#include "raul/Path.hpp" +#include <ingen/FilePath.hpp> +#include <ingen/Log.hpp> +#include <ingen/Parser.hpp> +#include <ingen/Properties.hpp> +#include <ingen/Serialiser.hpp> +#include <ingen/URI.hpp> +#include <ingen/World.hpp> +#include <ingen/client/GraphModel.hpp> +#include <raul/Path.hpp> +#include <raul/Semaphore.hpp> +#include <raul/Symbol.hpp> #include <glibmm/ustring.h> #include <sigc++/adaptors/bind.h> @@ -74,7 +78,7 @@ void ThreadedLoader::run() { while (_sem.wait() && !_exit_flag) { - std::lock_guard<std::mutex> lock(_mutex); + const std::lock_guard<std::mutex> lock{_mutex}; while (!_events.empty()) { _events.front()(); _events.pop_front(); @@ -89,7 +93,7 @@ ThreadedLoader::load_graph(bool merge, const std::optional<raul::Symbol>& engine_symbol, const std::optional<Properties>& engine_data) { - std::lock_guard<std::mutex> lock(_mutex); + const std::lock_guard<std::mutex> lock{_mutex}; Glib::ustring engine_base = ""; if (engine_parent) { @@ -117,7 +121,7 @@ ThreadedLoader::load_graph_event( const std::optional<raul::Symbol>& engine_symbol, const std::optional<Properties>& engine_data) { - std::lock_guard<std::mutex> lock(_app.world().rdf_mutex()); + const std::lock_guard<std::mutex> lock{_app.world().rdf_mutex()}; _app.world().parser()->parse_file(_app.world(), *_app.world().interface(), @@ -132,7 +136,7 @@ ThreadedLoader::save_graph( const std::shared_ptr<const client::GraphModel>& model, const URI& uri) { - std::lock_guard<std::mutex> lock(_mutex); + const std::lock_guard<std::mutex> lock{_mutex}; _events.emplace_back(sigc::hide_return( sigc::bind(sigc::mem_fun(this, &ThreadedLoader::save_graph_event), @@ -149,7 +153,7 @@ ThreadedLoader::save_graph_event( { assert(uri.scheme() == "file"); if (_app.serialiser()) { - std::lock_guard<std::mutex> lock(_app.world().rdf_mutex()); + const std::lock_guard<std::mutex> lock{_app.world().rdf_mutex()}; if (uri.string().find(".ingen") != std::string::npos) { _app.serialiser()->write_bundle(model, uri); diff --git a/src/gui/ThreadedLoader.hpp b/src/gui/ThreadedLoader.hpp index 83860461..27ba7c8c 100644 --- a/src/gui/ThreadedLoader.hpp +++ b/src/gui/ThreadedLoader.hpp @@ -17,8 +17,8 @@ #ifndef INGEN_GUI_THREADEDLOADER_HPP #define INGEN_GUI_THREADEDLOADER_HPP -#include "ingen/FilePath.hpp" -#include "raul/Semaphore.hpp" +#include <ingen/FilePath.hpp> +#include <raul/Semaphore.hpp> #include <sigc++/functors/slot.h> @@ -50,7 +50,7 @@ class App; /** Thread for loading graph files. * - * This is a seperate thread so it can send all the loading message without + * This is a separate thread so it can send all the loading message without * blocking everything else, so the app can respond to the incoming events * caused as a result of the graph loading, while the graph loads. * @@ -88,7 +88,7 @@ private: save_graph_event(const std::shared_ptr<const client::GraphModel>& model, const URI& uri); - /** Returns nothing and takes no parameters (because they have all been bound) */ + /// Returns nothing and takes no parameters (because they're all bound) using Closure = sigc::slot<void>; void run(); diff --git a/src/gui/URIEntry.cpp b/src/gui/URIEntry.cpp index d701e3a2..92320009 100644 --- a/src/gui/URIEntry.cpp +++ b/src/gui/URIEntry.cpp @@ -19,15 +19,15 @@ #include "App.hpp" #include "RDFS.hpp" -#include "ingen/World.hpp" +#include <ingen/URI.hpp> +#include <ingen/World.hpp> +#include <lilv/lilv.h> #include <gdk/gdk.h> -#include <glibmm/helperlist.h> #include <gtkmm/button.h> #include <gtkmm/menu.h> #include <gtkmm/menu_elems.h> #include <gtkmm/menuitem.h> -#include <gtkmm/menushell.h> #include <gtkmm/object.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> @@ -66,7 +66,7 @@ URIEntry::build_value_menu() LilvNode* rdfs_Datatype = lilv_new_uri(lworld, LILV_NS_RDFS "Datatype"); LilvNode* rdfs_subClassOf = lilv_new_uri(lworld, LILV_NS_RDFS "subClassOf"); - rdfs::Objects values = rdfs::instances(world, _types); + const rdfs::Objects values = rdfs::instances(world, _types); for (const auto& v : values) { const LilvNode* inst = lilv_new_uri(lworld, v.second.c_str()); diff --git a/src/gui/URIEntry.hpp b/src/gui/URIEntry.hpp index 52c9db66..45fa6894 100644 --- a/src/gui/URIEntry.hpp +++ b/src/gui/URIEntry.hpp @@ -17,8 +17,8 @@ #ifndef INGEN_GUI_URI_ENTRY_HPP #define INGEN_GUI_URI_ENTRY_HPP -#include "ingen/URI.hpp" -#include "lilv/lilv.h" +#include <ingen/URI.hpp> +#include <lilv/lilv.h> #include <gdk/gdk.h> #include <glibmm/signalproxy.h> diff --git a/src/gui/WidgetFactory.cpp b/src/gui/WidgetFactory.cpp index dc08dbde..33660d77 100644 --- a/src/gui/WidgetFactory.cpp +++ b/src/gui/WidgetFactory.cpp @@ -16,8 +16,7 @@ #include "WidgetFactory.hpp" -#include "ingen/FilePath.hpp" -#include "ingen/runtime_paths.hpp" +#include <ingen/runtime_paths.hpp> #include <cstdlib> #include <fstream> diff --git a/src/gui/WidgetFactory.hpp b/src/gui/WidgetFactory.hpp index 1c45fd6e..d10a5e1a 100644 --- a/src/gui/WidgetFactory.hpp +++ b/src/gui/WidgetFactory.hpp @@ -19,7 +19,7 @@ #include <glibmm/refptr.h> #include <glibmm/ustring.h> -#include <gtkmm/builder.h> // IWYU pragma: keep +#include <gtkmm/builder.h> #include <string> @@ -38,13 +38,13 @@ public: template<typename T> static void get_widget(const Glib::ustring& name, T*& widget) { - Glib::RefPtr<Gtk::Builder> xml = create(name); + const Glib::RefPtr<Gtk::Builder> xml = create(name); xml->get_widget(name, widget); } template<typename T> static void get_widget_derived(const Glib::ustring& name, T*& widget) { - Glib::RefPtr<Gtk::Builder> xml = create(name); + const Glib::RefPtr<Gtk::Builder> xml = create(name); xml->get_widget_derived(name, widget); } diff --git a/src/gui/WindowFactory.cpp b/src/gui/WindowFactory.cpp index 8928b664..78acf4fb 100644 --- a/src/gui/WindowFactory.cpp +++ b/src/gui/WindowFactory.cpp @@ -1,6 +1,6 @@ /* This file is part of Ingen. - Copyright 2007-2015 David Robillard <http://drobilla.net/> + Copyright 2007-2024 David Robillard <http://drobilla.net/> Ingen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free @@ -26,16 +26,17 @@ #include "RenameWindow.hpp" #include "WidgetFactory.hpp" -#include "ingen/Log.hpp" -#include "ingen/client/BlockModel.hpp" -#include "ingen/client/GraphModel.hpp" -#include "ingen/client/ObjectModel.hpp" +#include <ingen/Log.hpp> +#include <ingen/client/BlockModel.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/ObjectModel.hpp> +#include <raul/Path.hpp> #include <gdkmm/window.h> -#include <glibmm/signalproxy.h> #include <sigc++/adaptors/bind.h> #include <sigc++/functors/mem_fun.h> +#include <algorithm> #include <cassert> #include <memory> #include <stdexcept> @@ -44,6 +45,8 @@ namespace ingen { +class Properties; + using client::BlockModel; using client::GraphModel; using client::ObjectModel; @@ -93,14 +96,9 @@ WindowFactory::clear() size_t WindowFactory::num_open_graph_windows() { - size_t ret = 0; - for (const auto& w : _graph_windows) { - if (w.second->is_visible()) { - ++ret; - } - } - - return ret; + return std::count_if(_graph_windows.begin(), + _graph_windows.end(), + [](const auto& w) { return w.second->is_visible(); }); } GraphBox* @@ -226,7 +224,7 @@ WindowFactory::present_load_plugin( int width = 0; int height = 0; w->second->get_size(width, height); - _load_plugin_win->set_default_size(width - width / 8, height / 2); + _load_plugin_win->set_default_size(width - (width / 8), height / 2); } _load_plugin_win->set_title( std::string("Load Plugin - ") + graph->path() + " - Ingen"); diff --git a/src/gui/WindowFactory.hpp b/src/gui/WindowFactory.hpp index 4ef79239..e643505a 100644 --- a/src/gui/WindowFactory.hpp +++ b/src/gui/WindowFactory.hpp @@ -17,15 +17,14 @@ #ifndef INGEN_GUI_WINDOWFACTORY_HPP #define INGEN_GUI_WINDOWFACTORY_HPP -#include "ingen/Properties.hpp" -#include "raul/Path.hpp" +#include <ingen/Properties.hpp> +#include <raul/Path.hpp> #include <gdk/gdk.h> #include <cstddef> #include <map> #include <memory> -#include <string> namespace ingen { diff --git a/src/gui/ingen_gui.cpp b/src/gui/ingen_gui.cpp index 4c33c514..7fba2d50 100644 --- a/src/gui/ingen_gui.cpp +++ b/src/gui/ingen_gui.cpp @@ -16,18 +16,19 @@ #include "App.hpp" -#include "ingen/Atom.hpp" -#include "ingen/Configuration.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Module.hpp" -#include "ingen/QueuedInterface.hpp" -#include "ingen/URI.hpp" -#include "ingen/World.hpp" -#include "ingen/client/SigClientInterface.hpp" +#include <ingen/Atom.hpp> +#include <ingen/Configuration.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Module.hpp> +#include <ingen/QueuedInterface.hpp> +#include <ingen/URI.hpp> +#include <ingen/World.hpp> +#include <ingen/client/SigClientInterface.hpp> #include <glibmm/thread.h> #include <memory> +#include <string> namespace ingen::gui { @@ -35,7 +36,7 @@ struct GUIModule : public Module { using SigClientInterface = client::SigClientInterface; void load(World& world) override { - URI uri(world.conf().option("connect").ptr<char>()); + const URI uri{world.conf().option("connect").ptr<char>()}; if (!world.interface()) { world.set_interface( world.new_interface(URI(uri), make_client(world))); diff --git a/src/gui/ingen_gui_lv2.cpp b/src/gui/ingen_gui_lv2.cpp index 31ec22c5..67290c76 100644 --- a/src/gui/ingen_gui_lv2.cpp +++ b/src/gui/ingen_gui_lv2.cpp @@ -17,28 +17,28 @@ #include "App.hpp" #include "GraphBox.hpp" -#include "ingen/AtomReader.hpp" -#include "ingen/AtomSink.hpp" -#include "ingen/AtomWriter.hpp" -#include "ingen/Forge.hpp" -#include "ingen/Interface.hpp" -#include "ingen/Properties.hpp" -#include "ingen/URI.hpp" -#include "ingen/URIs.hpp" -#include "ingen/World.hpp" -#include "ingen/client/ClientStore.hpp" -#include "ingen/client/GraphModel.hpp" // IWYU pragma: keep -#include "ingen/client/SigClientInterface.hpp" -#include "ingen/ingen.h" -#include "ingen/paths.hpp" -#include "ingen/runtime_paths.hpp" -#include "lv2/atom/atom.h" -#include "lv2/atom/util.h" -#include "lv2/core/lv2.h" -#include "lv2/log/log.h" -#include "lv2/ui/ui.h" -#include "lv2/urid/urid.h" -#include "raul/Path.hpp" +#include <ingen/AtomReader.hpp> +#include <ingen/AtomSink.hpp> +#include <ingen/AtomWriter.hpp> +#include <ingen/Forge.hpp> +#include <ingen/Interface.hpp> +#include <ingen/Properties.hpp> +#include <ingen/URI.hpp> +#include <ingen/URIs.hpp> +#include <ingen/World.hpp> +#include <ingen/client/ClientStore.hpp> +#include <ingen/client/GraphModel.hpp> +#include <ingen/client/SigClientInterface.hpp> +#include <ingen/ingen.h> +#include <ingen/paths.hpp> +#include <ingen/runtime_paths.hpp> +#include <lv2/atom/atom.h> +#include <lv2/atom/util.h> +#include <lv2/core/lv2.h> +#include <lv2/log/log.h> +#include <lv2/ui/ui.h> +#include <lv2/urid/urid.h> +#include <raul/Path.hpp> #include <cstdint> #include <cstring> diff --git a/src/gui/meson.build b/src/gui/meson.build index 67914cca..810c7829 100644 --- a/src/gui/meson.build +++ b/src/gui/meson.build @@ -7,35 +7,47 @@ gui_defines = platform_defines -glibmm_dep = dependency('glibmm-2.4', - version: '>= 2.14.0', - include_type: 'system', - required: get_option('gui')) - -gthread_dep = dependency('gthread-2.0', - version: '>= 2.14.0', - include_type: 'system', - required: get_option('gui')) - -gtkmm_dep = dependency('gtkmm-2.4', - version: '>= 2.14.0', - include_type: 'system', - required: get_option('gui')) - -ganv_dep = dependency('ganv-1', - version: '>= 1.5.2', - fallback: ['ganv', 'ganv_dep'], - required: get_option('gui')) - -webkit_dep = dependency('webkit-1.0', - version: '>= 1.4.0', - include_type: 'system', - required: false) - -build_gui = (glibmm_dep.found() and - gthread_dep.found() and - gtkmm_dep.found() and - ganv_dep.found()) +glibmm_dep = dependency( + 'glibmm-2.4', + include_type: 'system', + required: get_option('gui'), + version: '>= 2.14.0', +) + +gthread_dep = dependency( + 'gthread-2.0', + include_type: 'system', + required: get_option('gui'), + version: '>= 2.14.0', +) + +gtkmm_dep = dependency( + 'gtkmm-2.4', + include_type: 'system', + required: get_option('gui'), + version: '>= 2.14.0', +) + +ganv_dep = dependency( + 'ganv-1', + include_type: 'system', + required: get_option('gui'), + version: '>= 1.5.2', +) + +webkit_dep = dependency( + 'webkit-1.0', + include_type: 'system', + required: false, + version: '>= 1.4.0', +) + +build_gui = ( + glibmm_dep.found() + and gthread_dep.found() + and gtkmm_dep.found() + and ganv_dep.found() +) if webkit_dep.found() gui_defines += ['-DHAVE_WEBKIT=1'] @@ -149,15 +161,19 @@ if build_gui config = configuration_data() config.set('INGEN_VERSION', meson.project_version()) - configure_file(configuration: config, - input: files('ingen_gui.ui.in'), - output: 'ingen_gui.ui', - install: true, - install_dir: ingen_data_dir) - - configure_file(copy: true, - input: files('ingen_style.rc'), - output: '@PLAINNAME@', - install: true, - install_dir: ingen_data_dir) + configure_file( + configuration: config, + input: files('ingen_gui.ui.in'), + install: true, + install_dir: ingen_data_dir, + output: 'ingen_gui.ui', + ) + + configure_file( + copy: true, + input: files('ingen_style.rc'), + install: true, + install_dir: ingen_data_dir, + output: '@PLAINNAME@', + ) endif diff --git a/src/gui/rgba.hpp b/src/gui/rgba.hpp index bb53205e..e01a069d 100644 --- a/src/gui/rgba.hpp +++ b/src/gui/rgba.hpp @@ -34,7 +34,7 @@ rgba_to_uint(uint8_t r, uint8_t g, uint8_t b, uint8_t a) inline uint8_t mono_interpolate(uint8_t v1, uint8_t v2, float f) { - return static_cast<uint8_t>(rintf((v2) * (f) + (v1) * (1 - (f)))); + return static_cast<uint8_t>(rintf((v2 * f) + (v1 * (1.0f - f)))); } #define RGBA_R(x) (static_cast<uint32_t>(x) >> 24) |