mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-16 18:12:10 +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:
@@ -1356,6 +1356,9 @@ void PreferencesDialog::create_items()
|
||||
auto item_show_splash_scr = create_item_checkbox(_L("Show splash screen"), _L("Show the splash screen during startup."), "show_splash_screen");
|
||||
g_sizer->Add(item_show_splash_scr);
|
||||
|
||||
auto item_shared_profiles = create_item_checkbox(_L("Show shared profiles notification"), _L("Show a notification with a link to browse shared profiles when the selected printer is changed."), "show_shared_profiles_notification");
|
||||
g_sizer->Add(item_shared_profiles);
|
||||
|
||||
#ifdef __linux__
|
||||
auto item_window_button_pos = create_item_checkbox(_L("Use window buttons on left side"), "", "window_buttons_on_left", _L("(Requires restart)"));
|
||||
g_sizer->Add(item_window_button_pos);
|
||||
@@ -1534,6 +1537,45 @@ void PreferencesDialog::create_items()
|
||||
});
|
||||
g_sizer->Add(item_network_test);
|
||||
|
||||
//// ONLINE > Cloud Providers
|
||||
g_sizer->Add(create_item_title(_L("Cloud Providers")), 1, wxEXPAND);
|
||||
|
||||
{
|
||||
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
sizer->AddSpacer(FromDIP(DESIGN_LEFT_MARGIN));
|
||||
|
||||
auto text = new wxStaticText(m_parent, wxID_ANY, _L("Enable Bambu Cloud"),
|
||||
wxDefaultPosition, DESIGN_TITLE_SIZE, wxST_NO_AUTORESIZE);
|
||||
text->SetForegroundColour(DESIGN_GRAY900_COLOR);
|
||||
text->SetFont(::Label::Body_14);
|
||||
text->SetToolTip(_L("Allow logging into Bambu Cloud alongside Orca Cloud. When enabled, a Bambu login section appears on the homepage."));
|
||||
text->Wrap(DESIGN_TITLE_SIZE.x);
|
||||
|
||||
auto cb = new ::CheckBox(m_parent);
|
||||
cb->SetValue(app_config->has_cloud_provider(BBL_CLOUD_PROVIDER));
|
||||
cb->SetToolTip(text->GetToolTipText());
|
||||
|
||||
cb->Bind(wxEVT_TOGGLEBUTTON, [this, cb](wxCommandEvent &e) {
|
||||
e.Skip(); // let CheckBox::update() refresh the bitmap
|
||||
if (cb->GetValue()) {
|
||||
app_config->add_cloud_provider(BBL_CLOUD_PROVIDER);
|
||||
} else {
|
||||
app_config->remove_cloud_provider(BBL_CLOUD_PROVIDER);
|
||||
}
|
||||
app_config->save();
|
||||
|
||||
// Update homepage visibility immediately
|
||||
auto *mainframe = wxGetApp().mainframe;
|
||||
if (mainframe && mainframe->m_webview)
|
||||
mainframe->m_webview->SendCloudProvidersInfo();
|
||||
});
|
||||
|
||||
sizer->Add(text, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, FromDIP(3));
|
||||
sizer->Add(cb, 0, wxALIGN_CENTER | wxRIGHT | wxLEFT, FromDIP(5));
|
||||
|
||||
g_sizer->Add(sizer);
|
||||
}
|
||||
|
||||
//// ONLINE > Update & sync
|
||||
g_sizer->Add(create_item_title(_L("Update & sync")), 1, wxEXPAND);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user