mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-06-16 08:52:43 +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:
@@ -2054,12 +2054,13 @@ void SyncAmsInfoDialog::Enable_Auto_Refill(bool enable)
|
||||
void SyncAmsInfoDialog::update_user_machine_list()
|
||||
{
|
||||
NetworkAgent *m_agent = wxGetApp().getAgent();
|
||||
if (m_agent && m_agent->is_user_login()) {
|
||||
boost::thread get_print_info_thread = Slic3r::create_thread([this, token = std::weak_ptr(m_token)] {
|
||||
const std::string provider = wxGetApp().get_printer_cloud_provider();
|
||||
if (m_agent && m_agent->is_user_login(provider)) {
|
||||
boost::thread get_print_info_thread = Slic3r::create_thread([this, token = std::weak_ptr(m_token), provider] {
|
||||
NetworkAgent *agent = wxGetApp().getAgent();
|
||||
unsigned int http_code;
|
||||
std::string body;
|
||||
int result = agent->get_user_print_info(&http_code, &body);
|
||||
int result = agent->get_user_print_info(&http_code, &body, provider);
|
||||
CallAfter([token, this, result, body] {
|
||||
if (token.expired()) { return; }
|
||||
if (result == 0) {
|
||||
@@ -2307,13 +2308,14 @@ void SyncAmsInfoDialog::update_show_status()
|
||||
return;
|
||||
}
|
||||
if (!dev) return;
|
||||
const std::string provider = wxGetApp().get_printer_cloud_provider();
|
||||
|
||||
// blank plate has no valid gcode file
|
||||
if (is_must_finish_slice_then_connected_printer()) { return; }
|
||||
MachineObject * obj_ = dev->get_selected_machine();
|
||||
if (!obj_) {
|
||||
if (agent) {
|
||||
if (agent->is_user_login()) {
|
||||
if (agent->is_user_login(provider)) {
|
||||
show_status(PrintDialogStatus::PrintStatusInvalidPrinter);
|
||||
}
|
||||
}
|
||||
@@ -2322,7 +2324,7 @@ void SyncAmsInfoDialog::update_show_status()
|
||||
|
||||
/* check cloud machine connections */
|
||||
if (!obj_->is_lan_mode_printer()) {
|
||||
if (!agent->is_server_connected()) {
|
||||
if (!agent->is_server_connected(provider)) {
|
||||
show_status(PrintDialogStatus::PrintStatusConnectingServer);
|
||||
reset_timeout();
|
||||
return;
|
||||
@@ -2585,7 +2587,7 @@ void SyncAmsInfoDialog::set_default(bool hide_some)
|
||||
NetworkAgent *agent = wxGetApp().getAgent();
|
||||
if (agent) {
|
||||
if (!hide_some) {
|
||||
if (agent->is_user_login()) {
|
||||
if (agent->is_user_login(wxGetApp().get_printer_cloud_provider())) {
|
||||
show_status(PrintDialogStatus::PrintStatusInit);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user