From 76be75431badf02d735e26c5c422d2ee28645556 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Sat, 17 Nov 2018 20:57:03 -0600 Subject: [PATCH] Preset::config() returns a weak reference to the shared configuration. --- src/GUI/Preset.cpp | 5 +++++ src/GUI/Preset.hpp | 3 +++ xs/src/libslic3r/Config.hpp | 1 + 3 files changed, 9 insertions(+) diff --git a/src/GUI/Preset.cpp b/src/GUI/Preset.cpp index bc0a66013..ec535aae7 100644 --- a/src/GUI/Preset.cpp +++ b/src/GUI/Preset.cpp @@ -44,6 +44,11 @@ Slic3r::Config Preset::dirty_config() { return result; } +config_ref Preset::config() { + std::weak_ptr result { this->_dirty_config }; + return result; +} + config_ptr Preset::load_config() { if (this->loaded()) return this->_dirty_config; diff --git a/src/GUI/Preset.hpp b/src/GUI/Preset.hpp index 0f4952779..e6410c75e 100644 --- a/src/GUI/Preset.hpp +++ b/src/GUI/Preset.hpp @@ -78,6 +78,9 @@ public: /// Retrieve a copy of the loaded version of the configuration with any options applied. Slic3r::Config dirty_config(); + /// Retrieve a shared (cast through a weak) pointer. + config_ref config(); + /// Pass-through to Slic3r::Config, returns whether or not a config was loaded. bool loaded() { return !this->_config->empty(); } diff --git a/xs/src/libslic3r/Config.hpp b/xs/src/libslic3r/Config.hpp index ce3333c45..bed98e911 100644 --- a/xs/src/libslic3r/Config.hpp +++ b/xs/src/libslic3r/Config.hpp @@ -33,6 +33,7 @@ public: class Config; using config_ptr = std::shared_ptr; +using config_ref = std::weak_ptr; class Config { public: