mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-23 02:42:08 +00:00
CrealityPrint: default Device-tab WebView URL to Mainsail on :4408
K-series printers (K2, K2 Plus, K2 Pro) ship with Mainsail on port 4408. Port 80 hosts only the Creality control/upload API, which returns 404 for unknown paths and renders as a blank/404 page in Orca Device tab. Override CrealityPrint::get_print_host_webui() to default to http://<host>:4408/ when the user has not explicitly set print_host_webui, giving K-series owners a complete printer dashboard in the Device tab out of the box.
This commit is contained in:
@@ -294,6 +294,36 @@ std::string CrealityPrint::query_boxes_info() const
|
||||
}
|
||||
}
|
||||
|
||||
std::string CrealityPrint::get_print_host_webui(DynamicPrintConfig* config)
|
||||
{
|
||||
// K-series printers (K2 / K2 Plus / K2 Pro) ship with Mainsail on port 4408.
|
||||
// Port 80 hosts only the Creality control / upload API, which returns 404
|
||||
// for unknown paths and therefore renders as a blank/404 page in Orca's
|
||||
// Device WebView. Default to the Mainsail URL when the user hasn't
|
||||
// explicitly set print_host_webui.
|
||||
if (config == nullptr)
|
||||
return {};
|
||||
|
||||
std::string explicit_url = config->opt_string("print_host_webui");
|
||||
if (!explicit_url.empty())
|
||||
return explicit_url;
|
||||
|
||||
std::string host = config->opt_string("print_host");
|
||||
if (host.empty())
|
||||
return {};
|
||||
|
||||
if (boost::algorithm::istarts_with(host, "http://"))
|
||||
host = host.substr(7);
|
||||
else if (boost::algorithm::istarts_with(host, "https://"))
|
||||
host = host.substr(8);
|
||||
if (auto slash = host.find('/'); slash != std::string::npos)
|
||||
host = host.substr(0, slash);
|
||||
if (auto colon = host.find(':'); colon != std::string::npos)
|
||||
host = host.substr(0, colon);
|
||||
|
||||
return "http://" + host + ":4408/";
|
||||
}
|
||||
|
||||
bool CrealityPrint::start_print(wxString &msg, const std::string &filename, const std::map<std::string, std::string>& extended_info) const
|
||||
{
|
||||
try {
|
||||
|
||||
@@ -34,6 +34,10 @@ public:
|
||||
std::string query_boxes_info() const;
|
||||
std::string model_name() const;
|
||||
|
||||
// Mainsail on K-series printers listens on port 4408. Use that as the
|
||||
// default Device-tab WebView URL when the user has not set print_host_webui.
|
||||
static std::string get_print_host_webui(DynamicPrintConfig *config);
|
||||
|
||||
protected:
|
||||
virtual void set_auth(Http& http) const;
|
||||
private:
|
||||
|
||||
@@ -88,6 +88,10 @@ std::string PrintHost::get_print_host_webui(DynamicPrintConfig* config)
|
||||
webui_url = ElegooLink::get_print_host_webui(config);
|
||||
break;
|
||||
}
|
||||
case htCrealityPrint: {
|
||||
webui_url = CrealityPrint::get_print_host_webui(config);
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user