From b330829f09931ff5c44b43a63e93a4f2f783bcde Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sun, 31 Jan 2021 11:00:35 +0100 Subject: [PATCH] Allow detaching of links by dragging --- source/views/view_data_processor.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/source/views/view_data_processor.cpp b/source/views/view_data_processor.cpp index 880be9425..346f81413 100644 --- a/source/views/view_data_processor.cpp +++ b/source/views/view_data_processor.cpp @@ -8,8 +8,16 @@ namespace hex { ViewDataProcessor::ViewDataProcessor() : View("Data Processor") { imnodes::Initialize(); + imnodes::PushAttributeFlag(imnodes::AttributeFlags_EnableLinkDetachWithDragClick); + imnodes::PushAttributeFlag(imnodes::AttributeFlags_EnableLinkCreationOnSnap); - View::subscribeEvent(Events::SettingsChanged, [this](auto) { + { + static bool always = true; + imnodes::IO& io = imnodes::GetIO(); + io.link_detach_with_modifier_click.modifier = &always; + } + + View::subscribeEvent(Events::SettingsChanged, [](auto) { int theme = ContentRegistry::Settings::getSettingsData()["Interface"]["Color theme"]; switch (theme) { @@ -33,6 +41,8 @@ namespace hex { for (auto &node : this->m_nodes) delete node; + imnodes::PopAttributeFlag(); + imnodes::PopAttributeFlag(); imnodes::Shutdown(); } @@ -217,6 +227,13 @@ namespace hex { imnodes::EndNodeEditor(); + { + int linkId; + if (imnodes::IsLinkDestroyed(&linkId)) { + this->eraseLink(linkId); + } + } + { int from, to; if (imnodes::IsLinkCreated(&from, &to)) {