Support for Obico cloud integration #4116
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
My apologies for this huge PR. We tried pretty hard to encapsulate the bulk of the functions in files specific to Obico.
This PR is to add a PrintHost for Obico so that the user can connect to Obico cloud in OrcaSlicer, as well as to directly manage the cloud printer on the "Device" tab.
We tried to stick to existing convention that is consistent with other options such as OctoPrint. The only new concept we introduced was
PrintHost.is_cloud
. If the printHost is cloud, the "Test" button will open a webview to prompt login.The handshake to automatically retrieve an auth token after the user has logged in is in PrinterCloudAuthDialog. We wrote and tested it based on the Obico cloud. But we tried to keep it generic.
The bulk of Obico-specific logics are encapsulated in Obico.cpp. Some bled into
PhysicalPrinterDialog
as we didn't see a clean way to place them in Obico.cpp. Please advise if there is a better way.Let us know if there are anything we need to modify.