diff --git a/resources/web/login/orca_login.html b/resources/web/login/orca_login.html
new file mode 100644
index 0000000000..69eec2aedb
--- /dev/null
+++ b/resources/web/login/orca_login.html
@@ -0,0 +1,927 @@
+
+
+
+
+
+ OrcaCloud Login
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Forgot password?
+
+
or continue with
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
index c9ce68e3e0..e963948d98 100644
--- a/src/libslic3r/AppConfig.cpp
+++ b/src/libslic3r/AppConfig.cpp
@@ -300,6 +300,13 @@ void AppConfig::set_defaults()
if (get("allow_abnormal_storage").empty()) {
set_bool("allow_abnormal_storage", false);
}
+#ifdef __linux__
+ if (get(SETTING_USE_ENCRYPTED_TOKEN_FILE).empty())
+ set_bool(SETTING_USE_ENCRYPTED_TOKEN_FILE, true);
+#else
+ if (get(SETTING_USE_ENCRYPTED_TOKEN_FILE).empty())
+ set_bool(SETTING_USE_ENCRYPTED_TOKEN_FILE, false);
+#endif
if(get("check_stable_update_only").empty()) {
set_bool("check_stable_update_only", false);
diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp
index b521410ce9..e501860092 100644
--- a/src/libslic3r/AppConfig.hpp
+++ b/src/libslic3r/AppConfig.hpp
@@ -28,6 +28,7 @@ using namespace nlohmann;
#define SETTING_NETWORK_PLUGIN_SKIPPED_VERSIONS "network_plugin_skipped_versions"
#define SETTING_NETWORK_PLUGIN_UPDATE_DISABLED "network_plugin_update_prompts_disabled"
#define SETTING_NETWORK_PLUGIN_REMIND_LATER "network_plugin_remind_later"
+#define SETTING_USE_ENCRYPTED_TOKEN_FILE "use_encrypted_token_file"
#define BAMBU_NETWORK_AGENT_VERSION_LEGACY "01.10.01.01"
#define SUPPORT_DARK_MODE
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index a1d5f576cb..1dc13c3640 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -1017,7 +1017,7 @@ static std::vector s_Preset_printer_options {
"scan_first_layer", "enable_power_loss_recovery", "wrapping_detection_layers", "wrapping_exclude_area", "machine_load_filament_time", "machine_unload_filament_time", "machine_tool_change_time", "time_cost", "machine_pause_gcode", "template_custom_gcode",
"nozzle_type", "nozzle_hrc","auxiliary_fan", "nozzle_volume","upward_compatible_machine", "z_hop_types", "travel_slope", "retract_lift_enforce","support_chamber_temp_control","support_air_filtration","printer_structure",
"best_object_pos", "head_wrap_detect_zone",
- "host_type", "print_host", "printhost_apikey", "bbl_use_printhost",
+ "host_type", "print_host", "printhost_apikey", "bbl_use_printhost", "printer_agent",
"print_host_webui",
"printhost_cafile","printhost_port","printhost_authorization_type",
"printhost_user", "printhost_password", "printhost_ssl_ignore_revoke", "thumbnails", "thumbnails_format",
@@ -1502,7 +1502,7 @@ int PresetCollection::get_differed_values_to_update(Preset& preset, std::map s_PhysicalPrinter_opts {
"printer_technology",
"bbl_use_printhost",
"host_type",
+ "printer_agent",
"print_host",
"print_host_webui",
"printhost_apikey",
diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp
index 6afda07426..65da5d5e26 100644
--- a/src/libslic3r/Preset.hpp
+++ b/src/libslic3r/Preset.hpp
@@ -52,7 +52,8 @@
#define BBL_JSON_KEY_BASE_ID "base_id"
#define BBL_JSON_KEY_USER_ID "user_id"
#define BBL_JSON_KEY_FILAMENT_ID "filament_id"
-#define BBL_JSON_KEY_UPDATE_TIME "updated_time"
+#define ORCA_JSON_KEY_UPDATE_TIME "updated_time"
+#define ORCA_JSON_KEY_CREATED_TIME "created_time"
#define BBL_JSON_KEY_INHERITS "inherits"
#define BBL_JSON_KEY_INSTANTIATION "instantiation"
#define BBL_JSON_KEY_NOZZLE_DIAMETER "nozzle_diameter"
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
index 1d3c2cb963..b264814de5 100644
--- a/src/libslic3r/PrintConfig.cpp
+++ b/src/libslic3r/PrintConfig.cpp
@@ -740,6 +740,13 @@ void PrintConfigDef::init_common_params()
def->cli = ConfigOptionDef::nocli;
def->set_default_value(new ConfigOptionBool(false));
+ def = this->add("printer_agent", coString);
+ def->label = L("Printer Agent");
+ def->tooltip = L("Select the network agent implementation for printer communication.");
+ def->mode = comAdvanced;
+ def->cli = ConfigOptionDef::nocli;
+ def->set_default_value(new ConfigOptionString(""));
+
def = this->add("print_host", coString);
def->label = L("Hostname, IP or URL");
def->tooltip = L("Orca Slicer can upload G-code files to a printer host. This field should contain "
diff --git a/src/libslic3r/Time.cpp b/src/libslic3r/Time.cpp
index 8faa14ade3..de94b20853 100644
--- a/src/libslic3r/Time.cpp
+++ b/src/libslic3r/Time.cpp
@@ -6,6 +6,7 @@
#include
#include
#include
+#include
#ifdef _MSC_VER
#include