mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-27 19:01:02 +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:
@@ -14,15 +14,6 @@
|
||||
#include <vector>
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
/**
|
||||
* CloudAgentProvider - Specifies which implementation to use for each agent type.
|
||||
*
|
||||
* - Orca: Native Orca cloud implementations (OrcaCloudServiceAgent)
|
||||
* - BBL: BBL DLL wrapper implementations (BBLCloudServiceAgent)
|
||||
*/
|
||||
enum class CloudAgentProvider { Orca, BBL };
|
||||
|
||||
static constexpr char ORCA_PRINTER_AGENT_ID[] = "orca";
|
||||
static constexpr char BBL_PRINTER_AGENT_ID[] = "bbl";
|
||||
|
||||
@@ -137,11 +128,11 @@ public:
|
||||
* @param log_dir Directory for log files
|
||||
* @return Shared pointer to ICloudServiceAgent implementation
|
||||
*/
|
||||
static std::shared_ptr<ICloudServiceAgent> create_cloud_agent(CloudAgentProvider provider, const std::string& log_dir)
|
||||
static std::shared_ptr<ICloudServiceAgent> create_cloud_agent(const std::string& provider, const std::string& log_dir)
|
||||
{
|
||||
switch (provider) {
|
||||
case CloudAgentProvider::Orca: return std::make_shared<OrcaCloudServiceAgent>(log_dir);
|
||||
case CloudAgentProvider::BBL: {
|
||||
if (provider == ORCA_CLOUD_PROVIDER) {
|
||||
return std::make_shared<OrcaCloudServiceAgent>(log_dir);
|
||||
} else if (provider == BBL_CLOUD_PROVIDER) {
|
||||
auto& plugin = BBLNetworkPlugin::instance();
|
||||
if (!plugin.is_loaded()) {
|
||||
return nullptr;
|
||||
@@ -154,8 +145,7 @@ public:
|
||||
}
|
||||
return std::make_shared<BBLCloudServiceAgent>();
|
||||
}
|
||||
default: return nullptr;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -172,9 +162,9 @@ private:
|
||||
* Creates a NetworkAgent with cloud agent only. The printer agent is created
|
||||
* separately when a printer is selected, via create_printer_agent_by_id().
|
||||
*
|
||||
* Cloud provider selection:
|
||||
* - use_orca_cloud=true → OrcaCloudServiceAgent (default)
|
||||
* - use_orca_cloud=false → BBLCloudServiceAgent (requires plugin)
|
||||
* Cloud provider: Always creates OrcaCloudServiceAgent as the primary provider.
|
||||
* Third-party cloud agents (e.g., Bambu) are created from the cloud_providers
|
||||
* AppConfig setting and added via NetworkAgent::add_cloud_agent().
|
||||
*
|
||||
* @param log_dir Directory for log files
|
||||
* @param app_config Application configuration object
|
||||
|
||||
Reference in New Issue
Block a user