OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction Struct Reference
Inheritance diagram for Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction:
Collaboration diagram for Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction:

Public Member Functions

 PluginScriptAction (std::string plugin_key_in, std::string capability_in, std::string source_name)
AppActionRunResult run (const std::string &) const override
const std::string & id () const
const std::string & title () const
const std::string & source_key () const
const std::string & source_name () const

Static Public Member Functions

static std::string id_for (const std::string &plugin_key, const std::string &capability)
static std::string compose_id (std::string_view prefix, std::string_view title, std::string_view source_key)

Public Attributes

std::string plugin_key
std::string capability
bool favourite = false
int count = 0
long long last = 0
AppActionKind kind = AppActionKind::Plugin
std::string group
std::string input
std::string icon
ConfigOptionMode required_mode = comSimple
std::string tooltip
std::string full_label
std::string title_en
std::string group_en
std::string source_en
std::string full_label_en
std::string help_url

Static Public Attributes

static constexpr const char * kIdPrefix = "plugin_script_action"

Private Attributes

std::string m_id
std::string m_title
std::string m_source_key
std::string m_source_name

Detailed Description

Constructor & Destructor Documentation

◆ PluginScriptAction()

Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction::PluginScriptAction ( std::string plugin_key_in,
std::string capability_in,
std::string source_name )
inline
160 capability_in.empty() ? plugin_key_in : capability_in, // title
161 plugin_key_in, // source_key
162 std::move(source_name))
163 , plugin_key(std::move(plugin_key_in))
164 , capability(std::move(capability_in))
165 {}
const std::string & source_name() const
Definition ActionRegistry.hpp:55
AppAction(std::string_view prefix, std::string title, std::string source_key, std::string source_name)
Definition ActionRegistry.hpp:112
static constexpr const char * kIdPrefix
Definition ActionRegistry.cpp:148

References Slic3r::GUI::AppAction::AppAction(), capability, Slic3r::empty(), kIdPrefix, plugin_key, and Slic3r::GUI::AppAction::source_name().

Here is the call graph for this function:

Member Function Documentation

◆ compose_id()

std::string Slic3r::GUI::AppAction::compose_id ( std::string_view prefix,
std::string_view title,
std::string_view source_key )
inlinestaticinherited
61 {
62 std::string out;
63 out.reserve(prefix.size() + title.size() + source_key.size() + 2);
64 out.append(prefix).append(1, ':').append(title).append(1, ':').append(source_key);
65 return out;
66 }
const std::string & title() const
Definition ActionRegistry.hpp:53
const std::string & source_key() const
Definition ActionRegistry.hpp:54

References source_key(), and title().

Referenced by AppAction(), Slic3r::GUI::anonymous_namespace{NativeCommands.cpp}::CommandAction::CommandAction(), Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PlateAction::id_for(), Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginPageAction::id_for(), Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction::id_for(), and Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::RecentProjectAction::id_for().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ id()

const std::string & Slic3r::GUI::AppAction::id ( ) const
inlineinherited
52{ return m_id; }
std::string m_id
Definition ActionRegistry.hpp:126

References m_id.

Referenced by AppAction(), Slic3r::GUI::action_json(), and Slic3r::GUI::ActionRegistry::seed_state().

Here is the caller graph for this function:

◆ id_for()

std::string Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction::id_for ( const std::string & plugin_key,
const std::string & capability )
inlinestatic
static std::string compose_id(std::string_view prefix, std::string_view title, std::string_view source_key)
Definition ActionRegistry.hpp:60

References capability, Slic3r::GUI::AppAction::compose_id(), kIdPrefix, and plugin_key.

Here is the call graph for this function:

◆ run()

AppActionRunResult Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction::run ( const std::string & ) const
inlineoverridevirtual

Implements Slic3r::GUI::AppAction.

168 {
169 struct Outcome
170 {
171 bool async = false;
172 bool completed = false;
173 AppActionRunResult result;
174 };
175 auto outcome = std::make_shared<Outcome>();
176
177 auto on_done = [outcome](const ScriptCompletion& completion) {
178 outcome->result = script_outcome_to_action_result(completion);
179 outcome->completed = true;
180 if (outcome->async)
181 notify_script_outcome(completion);
182 };
183
184 const PluginManager::ScriptLaunchResult launch = PluginManager::instance().launch_script_capability(plugin_key, capability, on_done);
185 if (launch.launched_async) {
186 // The completion is delivered on this (GUI) thread once the (sync or async) invocation
187 // finishes, so marking `async` here cannot race with on_done. The speed dial has already
188 // shown a result by then; the final outcome arrives as a notification (a cancellation is
189 // silent).
190 outcome->async = true;
191 if (outcome->completed)
192 return outcome->result;
193 return {AppActionRunResult::Level::Info, _L("Script plugin started.")};
194 }
195
196 // The launch failed inline; on_done produced the (error) result.
197 on_done(launch.outcome);
198 return outcome->result;
199 }
#define _L(s)
Definition OBJ.cpp:34
ScriptLaunchResult launch_script_capability(const std::string &plugin_key, const std::string &capability_name, ScriptCompletionFn on_done={})
Definition PluginManager.cpp:2441
static PluginManager & instance()
Definition PluginManager.cpp:74
void notify_script_outcome(const ScriptCompletion &completion)
Definition ActionRegistry.cpp:126
AppActionRunResult script_outcome_to_action_result(const ScriptCompletion &completion)
Definition ActionRegistry.cpp:107
Outcome
Definition SeamContour.hpp:34
@ Info
Definition ActionRegistry.hpp:31

References _L, capability, Slic3r::GUI::AppActionRunResult::Info, Slic3r::PluginManager::instance(), Slic3r::PluginManager::ScriptLaunchResult::launched_async, Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::notify_script_outcome(), Slic3r::PluginManager::ScriptLaunchResult::outcome, plugin_key, and Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::script_outcome_to_action_result().

Here is the call graph for this function:

◆ source_key()

const std::string & Slic3r::GUI::AppAction::source_key ( ) const
inlineinherited
54{ return m_source_key; } // stable source identity
std::string m_source_key
Definition ActionRegistry.hpp:128

References m_source_key.

Referenced by AppAction(), AppAction(), and compose_id().

Here is the caller graph for this function:

◆ source_name()

const std::string & Slic3r::GUI::AppAction::source_name ( ) const
inlineinherited

◆ title()

const std::string & Slic3r::GUI::AppAction::title ( ) const
inlineinherited

Member Data Documentation

◆ capability

std::string Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction::capability

Referenced by PluginScriptAction(), id_for(), and run().

◆ count

int Slic3r::GUI::AppAction::count = 0
inherited

◆ favourite

bool Slic3r::GUI::AppAction::favourite = false
inherited

◆ full_label

std::string Slic3r::GUI::AppAction::full_label
inherited

◆ full_label_en

std::string Slic3r::GUI::AppAction::full_label_en
inherited

◆ group

◆ group_en

◆ help_url

std::string Slic3r::GUI::AppAction::help_url
inherited

◆ icon

std::string Slic3r::GUI::AppAction::icon
inherited

◆ input

std::string Slic3r::GUI::AppAction::input
inherited

◆ kIdPrefix

const char* Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction::kIdPrefix = "plugin_script_action"
staticconstexpr

Referenced by PluginScriptAction(), and id_for().

◆ kind

◆ last

long long Slic3r::GUI::AppAction::last = 0
inherited

◆ m_id

std::string Slic3r::GUI::AppAction::m_id
privateinherited

Referenced by AppAction(), AppAction(), and id().

◆ m_source_key

std::string Slic3r::GUI::AppAction::m_source_key
privateinherited

Referenced by AppAction(), AppAction(), and source_key().

◆ m_source_name

std::string Slic3r::GUI::AppAction::m_source_name
privateinherited

Referenced by AppAction(), AppAction(), and source_name().

◆ m_title

std::string Slic3r::GUI::AppAction::m_title
privateinherited

Referenced by AppAction(), AppAction(), and title().

◆ plugin_key

std::string Slic3r::GUI::anonymous_namespace{ActionRegistry.cpp}::PluginScriptAction::plugin_key

Referenced by PluginScriptAction(), id_for(), and run().

◆ required_mode

◆ source_en

std::string Slic3r::GUI::AppAction::source_en
inherited

◆ title_en

std::string Slic3r::GUI::AppAction::title_en
inherited

◆ tooltip

std::string Slic3r::GUI::AppAction::tooltip
inherited

The documentation for this struct was generated from the following file: