mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-26 18:31:11 +00:00
Cleanup comments and formatting
This commit is contained in:
@@ -200,8 +200,8 @@ struct CommandAction : AppAction
|
||||
|
||||
private:
|
||||
explicit CommandAction(const NativeCommand& c)
|
||||
: AppAction(AppActionId{AppAction::compose_id(kCommandPrefix, c.key, kOrcaSourceKey)}, c.title, kOrcaSourceKey, kOrcaSourceName),
|
||||
command_key(c.key)
|
||||
: AppAction(AppActionId{AppAction::compose_id(kCommandPrefix, c.key, kOrcaSourceKey)}, c.title, kOrcaSourceKey, kOrcaSourceName)
|
||||
, command_key(c.key)
|
||||
{
|
||||
this->kind = AppActionKind::Command;
|
||||
this->group = c.group;
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Slic3r { namespace GUI {
|
||||
// How a source's action set changed. Drives the registry's refresh handlers.
|
||||
enum class ActionChange { Added, Removed };
|
||||
|
||||
// What kind of runnable thing an action is. Drives the palette section + dispatch.
|
||||
// What kind of runnable thing an action is. Drives the run-confirm gate (plugins ask, commands don't).
|
||||
enum class AppActionKind { Plugin, Command };
|
||||
|
||||
// Result of running an AppAction, in the action layer's own vocabulary. Concrete
|
||||
@@ -28,8 +28,8 @@ struct AppActionRunResult
|
||||
{
|
||||
enum class Level { Success, Info, Error, Busy };
|
||||
|
||||
Level level = Level::Info;
|
||||
wxString message; // empty = "nothing worth showing"
|
||||
Level level = Level::Info;
|
||||
wxString message; // empty = "nothing worth showing"
|
||||
};
|
||||
|
||||
// Tag carrying a precomputed action id, used by the explicit-id ctor below. It exists so the
|
||||
@@ -64,16 +64,16 @@ struct AppAction
|
||||
}
|
||||
|
||||
// seeded from AppConfig for the snapshot / sort:
|
||||
bool favourite = false;
|
||||
int count = 0;
|
||||
long long last = 0; // epoch seconds
|
||||
bool favourite = false;
|
||||
int count = 0;
|
||||
long long last = 0; // epoch seconds
|
||||
|
||||
// Speed Dial presentation: Plugin keeps group empty (the UI falls back to the
|
||||
// source name); Command sets a section label (e.g. "Commands", "Mode").
|
||||
AppActionKind kind = AppActionKind::Plugin;
|
||||
std::string group;
|
||||
// Second-phase input descriptor for the palette: "settings" (jump to a config option)
|
||||
// or "percent" (jump to layer by a 0-100 value). Empty = run immediately on activation.
|
||||
std::string group;
|
||||
// Second-phase input descriptor for the palette: "percent" (jump to layer by a 0-100
|
||||
// value) or "tab" (pick a notebook tab). Empty = run immediately on activation.
|
||||
std::string input;
|
||||
|
||||
virtual ~AppAction() = default;
|
||||
@@ -87,18 +87,17 @@ protected:
|
||||
// why: source_key (not the display name) carries identity, so renaming the source's
|
||||
// display name leaves the id - and its persisted stats/favourite - intact.
|
||||
AppAction(std::string_view prefix, std::string title, std::string source_key, std::string source_name)
|
||||
: m_id(compose_id(prefix, title, source_key)),
|
||||
m_title(std::move(title)),
|
||||
m_source_key(std::move(source_key)),
|
||||
m_source_name(std::move(source_name)) {}
|
||||
: m_id(compose_id(prefix, title, source_key))
|
||||
, m_title(std::move(title))
|
||||
, m_source_key(std::move(source_key))
|
||||
, m_source_name(std::move(source_name))
|
||||
{}
|
||||
|
||||
// Explicit-id ctor: for actions whose id must NOT be derived from the display title
|
||||
// (e.g. a setting action keyed by opt_key+type, so a rename/localization never re-keys it).
|
||||
AppAction(AppActionId id, std::string title, std::string source_key, std::string source_name)
|
||||
: m_id(std::move(id.id)),
|
||||
m_title(std::move(title)),
|
||||
m_source_key(std::move(source_key)),
|
||||
m_source_name(std::move(source_name)) {}
|
||||
: m_id(std::move(id.id)), m_title(std::move(title)), m_source_key(std::move(source_key)), m_source_name(std::move(source_name))
|
||||
{}
|
||||
|
||||
private:
|
||||
std::string m_id; // <prefix>:<title>:<source_key> - stable identity + AppConfig key
|
||||
@@ -137,7 +136,7 @@ public:
|
||||
void remove(const std::string& id);
|
||||
|
||||
// Always-clean read surface. UI thread only.
|
||||
const AppAction* by_id(const std::string& id) const;
|
||||
const AppAction* by_id(const std::string& id) const;
|
||||
|
||||
// Hard cap on the favourites bar: the numbered quick-launch slots (Alt/Option+1..9, 0).
|
||||
static constexpr size_t kFavLimit = 10;
|
||||
@@ -146,8 +145,8 @@ public:
|
||||
AppActionRunResult run(const std::string& id, const std::string& param = {}); // runs + bumps stats
|
||||
// Pin/unpin. Returns false when `on` would exceed kFavLimit (the bar is full) so the
|
||||
// caller can surface a "favourites are full" hint instead of silently dropping the pin.
|
||||
bool set_favourite(const std::string& id, bool on);
|
||||
void reorder_favourites(const std::vector<std::string>& ids); // persist a new bar order
|
||||
bool set_favourite(const std::string& id, bool on);
|
||||
void reorder_favourites(const std::vector<std::string>& ids); // persist a new bar order
|
||||
|
||||
// Ordered pinned list (the source of truth), capped at kFavLimit and deduped, matching the
|
||||
// visible bar the palette renders.
|
||||
@@ -169,8 +168,8 @@ public:
|
||||
nlohmann::json tab_options() const;
|
||||
|
||||
private:
|
||||
void seed_state(AppAction& a) const; // favourite/stats from config
|
||||
AppAction* find(const std::string& id);
|
||||
void seed_state(AppAction& a) const; // favourite/stats from config
|
||||
AppAction* find(const std::string& id);
|
||||
|
||||
// (Re)materialise the current visible config settings as SettingActions from the live
|
||||
// searcher (respecting printer-tech + user-mode + visibility filtering), removing stale ones.
|
||||
@@ -192,8 +191,8 @@ private:
|
||||
void refresh_source(const std::string& plugin_key, ActionChange change);
|
||||
void refresh_capability(const std::string& plugin_key, const std::string& capability, ActionChange change);
|
||||
|
||||
bool m_started = false; // init() runs exactly once; guards double-subscription
|
||||
std::unordered_map<std::string, std::shared_ptr<AppAction>> m_actions; // UI-thread confined; no lock
|
||||
bool m_started = false; // init() runs exactly once; guards double-subscription
|
||||
std::unordered_map<std::string, std::shared_ptr<AppAction>> m_actions; // UI-thread confined; no lock
|
||||
};
|
||||
|
||||
}} // namespace Slic3r::GUI
|
||||
|
||||
@@ -4375,10 +4375,10 @@ void MainFrame::technology_changed()
|
||||
m_menubar->SetMenuLabel(id, pt == ptFFF ? _omitL("Material Settings") : _L("Filament settings"));
|
||||
}
|
||||
|
||||
// Opens the calibration wizard for `calib_kind`, reusing the cached member dialogs the Calibration
|
||||
// menu builds. This is the single source of truth for the wizard lifecycle: the Calibration menu
|
||||
// handlers and the Speed Dial native commands both call it, so they share the same per-wizard
|
||||
// member (fresh on first launch, reused thereafter). Call while the Prepare (3D) panel is shown.
|
||||
// Opens the calibration wizard for `calib_kind`. Single source of truth for the wizard lifecycle:
|
||||
// the Calibration menu handlers and the Speed Dial native commands both call it. Most wizards are
|
||||
// cached members reused across launches; cornering/input-shaping build a fresh transient dialog.
|
||||
// Call while the Prepare (3D) panel is shown.
|
||||
void MainFrame::run_calibration(CalibKind calib_kind)
|
||||
{
|
||||
switch (calib_kind) {
|
||||
|
||||
@@ -107,7 +107,6 @@ protected:
|
||||
};
|
||||
|
||||
// Calibration wizard identity, shared by MainFrame::run_calibration and the Speed Dial command runners.
|
||||
// Kept in order with the wizard list below.
|
||||
enum class CalibKind : int
|
||||
{
|
||||
Temperature,
|
||||
@@ -364,10 +363,10 @@ public:
|
||||
|
||||
void technology_changed();
|
||||
|
||||
// Opens the calibration wizard for `kind`, reusing the cached member dialogs the Calibration
|
||||
// menu builds (m_*_calib_dlg). Single source of truth for the wizard lifecycle: the Calibration
|
||||
// menu handlers and the Speed Dial native commands both call this. Call while the Prepare (3D)
|
||||
// panel is shown (menu items are gated on is_view3D_shown; the speed dial ensures it first).
|
||||
// Opens the calibration wizard for `kind`. Single source of truth for the wizard lifecycle:
|
||||
// the Calibration menu handlers and the Speed Dial native commands both call this. Most wizards
|
||||
// are cached members; cornering/input-shaping are transient. Call while the Prepare (3D) panel
|
||||
// is shown (menu items are gated on is_view3D_shown; the speed dial ensures it first).
|
||||
void run_calibration(CalibKind calib_kind);
|
||||
|
||||
//BBS
|
||||
|
||||
@@ -58,9 +58,9 @@ AppActionRunResult object_op(Plater* plater, bool (*ok)(Plater*), void (*op)(Pla
|
||||
return {AppActionRunResult::Level::Success};
|
||||
}
|
||||
|
||||
// Jump the preview to a layer selected by a 0-100 percent of the layer range. Best-effort: switches
|
||||
// to the preview tab and requests a slice; if the slicer result is already present the slider is
|
||||
// repositioned immediately, otherwise the user can re-run after slicing.
|
||||
// Jump the preview to a layer selected by a 0-100 percent of the layer range. The caller has already
|
||||
// switched to Preview (which may request a slice); if a slicer result is present the slider is
|
||||
// repositioned immediately, otherwise the jump is a no-op until the user re-slices.
|
||||
void go_to_layer(Plater* plater, const std::string& param)
|
||||
{
|
||||
if (!plater)
|
||||
@@ -100,8 +100,8 @@ AppActionRunResult view_command(Plater* plater, const std::string& dir)
|
||||
return {AppActionRunResult::Level::Success};
|
||||
}
|
||||
|
||||
// Calibration wizards. Reuses MainFrame::run_calibration so the speed dial shows the same cached
|
||||
// member dialogs as the Calibration menu (the menu handlers call run_calibration too).
|
||||
// Calibration wizards. Routes through MainFrame::run_calibration, the same entry point as the
|
||||
// Calibration menu (which caches most of the wizard dialogs).
|
||||
AppActionRunResult calib_command(CalibKind kind)
|
||||
{
|
||||
MainFrame* mf = wxGetApp().mainframe;
|
||||
@@ -115,8 +115,8 @@ AppActionRunResult calib_command(CalibKind kind)
|
||||
std::vector<NativeCommand> build_command_catalog()
|
||||
{
|
||||
std::vector<NativeCommand> out;
|
||||
auto add = [&](std::string key, std::string title, std::string group,
|
||||
std::function<AppActionRunResult(const std::string&)> runner, std::string input = {}) {
|
||||
auto add = [&](std::string key, std::string title, std::string group, std::function<AppActionRunResult(const std::string&)> runner,
|
||||
std::string input = {}) {
|
||||
out.push_back({std::move(key), std::move(title), std::move(group), std::move(input), std::move(runner)});
|
||||
};
|
||||
|
||||
@@ -207,12 +207,11 @@ std::vector<NativeCommand> build_command_catalog()
|
||||
plater->export_gcode_3mf(false);
|
||||
return AppActionRunResult{AppActionRunResult::Level::Success};
|
||||
});
|
||||
add("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"),
|
||||
[](const std::string&) {
|
||||
if (Plater* plater = wxGetApp().plater())
|
||||
plater->export_gcode_3mf(true);
|
||||
return AppActionRunResult{AppActionRunResult::Level::Success};
|
||||
});
|
||||
add("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), [](const std::string&) {
|
||||
if (Plater* plater = wxGetApp().plater())
|
||||
plater->export_gcode_3mf(true);
|
||||
return AppActionRunResult{AppActionRunResult::Level::Success};
|
||||
});
|
||||
|
||||
// ---- Calibration ----
|
||||
add("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"),
|
||||
@@ -231,8 +230,7 @@ std::vector<NativeCommand> build_command_catalog()
|
||||
[](const std::string&) { return calib_command(CalibKind::InputShapingFreq); });
|
||||
add("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"),
|
||||
[](const std::string&) { return calib_command(CalibKind::InputShapingDamp); });
|
||||
add("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"),
|
||||
[](const std::string&) { return calib_command(CalibKind::VFA); });
|
||||
add("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), [](const std::string&) { return calib_command(CalibKind::VFA); });
|
||||
|
||||
// ---- View ----
|
||||
for (auto [key, dir, title] :
|
||||
|
||||
@@ -16,12 +16,12 @@ struct NativeCommand
|
||||
std::string key;
|
||||
std::string title;
|
||||
std::string group;
|
||||
std::string input; // "settings"/"percent"/"tab" or "" for immediate run
|
||||
std::string input; // "percent"/"tab" or "" for immediate run
|
||||
std::function<AppActionRunResult(const std::string& param)> runner;
|
||||
};
|
||||
|
||||
namespace NativeCommands {
|
||||
// The full built-in command catalog, built once (init()). UI thread only.
|
||||
// The full built-in command catalog, built once on first use. UI thread only.
|
||||
const std::vector<NativeCommand>& catalog();
|
||||
|
||||
// Dispatches `key` to its runner (unknown keys return a quiet Info). UI thread only.
|
||||
|
||||
Reference in New Issue
Block a user