mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-24 11:22:07 +00:00
Introducing Orca Cloud: https://cloud.orcaslicer.com (#13414)
* Add OrcaCloud sync platform and preset bundle sharing system Introduce OrcaCloud, a cloud sync platform for user presets, alongside a preset bundle system that enables sharing printer/filament/process profiles as local exportable bundles or subscribed cloud bundles. OrcaCloud platform: - Auth to Orca Cloud - Encrypted token storage (file-based or system keychain) - User preset sync with - Profile migration from default/bambu folders on first login - Homepage integration with entrance to cloud.orcaslicer.com Preset bundles: - Local bundle import/export with bundle_structure.json metadata - Subscribed cloud bundles with version-based update checking - Thread-safe concurrent bundle access with read-write mutex - Canonical bundle preset naming (_local/<id>/... and _subscribed/<id>/...) - Bundle presets are read-only; grouped under subheaders in combo boxes - PresetBundleDialog with auto-sync toggle, refresh, update notifications - Hyperlinked bundle names to cloud bundle pages Co-authored-by: Sabriel Koh <sabrielkcr@gmail.com> Co-authored-by: Derrick <derrick992110@gmail.com> Co-authored-by: Mykola Nahirnyi <mnahirnyi@amcbridge.com> Co-authored-by: Ian Chua <iancrb00@gmail.com> Co-authored-by: Draginraptor <draginraptor@gmail.com> Co-authored-by: ExPikaPaka <112851715+ExPikaPaka@users.noreply.github.com> Co-authored-by: Ian Bassi <ian.bassi@outlook.com> Co-authored-by: Ocraftyone <Ocraftyone@users.noreply.github.com> Co-authored-by: yw4z <ywsyildiz@gmail.com> Co-authored-by: peterm-m <101202951+peterm-m@users.noreply.github.com> * Fixed an issue on Windows it failed to login Orca Cloud with Google account
This commit is contained in:
@@ -248,8 +248,7 @@ static bool delete_filament_preset_by_name(std::string delete_preset_name, std::
|
||||
if (!need_delete_preset) BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" can't find delete preset and name: %1%") % delete_preset_name;
|
||||
if (!need_delete_preset->setting_id.empty()) {
|
||||
BOOST_LOG_TRIVIAL(info) << "delete preset = " << need_delete_preset->name << ", setting_id = " << need_delete_preset->setting_id;
|
||||
m_presets.set_sync_info_and_save(need_delete_preset->name, need_delete_preset->setting_id, "delete", 0);
|
||||
wxGetApp().delete_preset_from_cloud(need_delete_preset->setting_id);
|
||||
wxGetApp().delete_preset_from_cloud(need_delete_preset->setting_id, need_delete_preset->file);
|
||||
} else {
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(" can't preset setting id is empty and name: %1%") % delete_preset_name;
|
||||
}
|
||||
@@ -4348,7 +4347,7 @@ void ExportConfigsDialog::data_init()
|
||||
|
||||
const std::deque<Preset> &filament_presets = preset_bundle.filaments.get_presets();
|
||||
for (const Preset &filament_preset : filament_presets) {
|
||||
if (filament_preset.is_system || filament_preset.is_default || filament_preset.is_project_embedded) continue;
|
||||
if (!filament_preset.is_user()) continue;
|
||||
if (filament_preset.is_compatible) {
|
||||
Preset *new_filament_preset = new Preset(filament_preset);
|
||||
m_filament_presets[preset_name].push_back(new_filament_preset);
|
||||
@@ -4357,7 +4356,7 @@ void ExportConfigsDialog::data_init()
|
||||
|
||||
const std::deque<Preset> &process_presets = preset_bundle.prints.get_presets();
|
||||
for (const Preset &process_preset : process_presets) {
|
||||
if (process_preset.is_system || process_preset.is_default || process_preset.is_project_embedded) continue;
|
||||
if (!process_preset.is_user()) continue;
|
||||
if (process_preset.is_compatible) {
|
||||
Preset *new_prpcess_preset = new Preset(process_preset);
|
||||
m_process_presets[preset_name].push_back(new_prpcess_preset);
|
||||
@@ -4371,7 +4370,7 @@ void ExportConfigsDialog::data_init()
|
||||
}
|
||||
const std::deque<Preset> &filament_presets = preset_bundle.filaments.get_presets();
|
||||
for (const Preset &filament_preset : filament_presets) {
|
||||
if (filament_preset.is_system || filament_preset.is_default) continue;
|
||||
if (!filament_preset.can_overwrite()) continue;
|
||||
Preset *new_filament_preset = new Preset(filament_preset);
|
||||
const Preset *base_filament_preset = preset_bundle.filaments.get_preset_base(*new_filament_preset);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user