219 Commits

Author SHA1 Message Date
Kostas Karmas
1c9ce25614 Change lifetime of the removed_printers_message to 30 seconds
After 30 seconds a new sync will be initiated, which will alter the
conents of self.reported_device_ids, thus making the current message
deprecated. Therefore, it is best to have a maximum lifetime of 30
seconds.

CURA-7454
2020-06-09 17:24:36 +02:00
Nino van Hooff
b734830fcf Sort new_devices on online status first, name second
Since the first device might be activated in case there is no active printer yet,
it would be nice to prioritize online devices

CURA-7493
2020-06-09 17:02:21 +02:00
Kostas Karmas
567f6dabdc Add option to remove all printers not linked to the account
When the "Printers removed from account" message pops up, it will give
the option to the user to remove all the printers that are not linked
to his/her account from Cura. Since this action removes all
configurations, it first pops a confirmation question box, and if the
user insists, these printers are purged from Cura.

Note: In order to properly delete all the files, the printers have to
be activated first before they are removed, or else some extruder
files in %appdata%/cura/<version>/user and %appdata%/cura/<version>/
extruders remain.

CURA-7454
2020-06-09 15:40:30 +02:00
Kostas Karmas
f0dda6553b Merge branch 'CURA-7455_Keep_printer_configurations_when_cloud_printer_removed_from_account' into CURA-7454_Add_remove_printers_button_in_removed_printers_from_account_message 2020-06-09 15:04:54 +02:00
Kostas Karmas
01230cff00 Merge branch 'CURA-7438_Show_cloud_connection_not_available_printer_removed_from_account' into CURA-7455_Keep_printer_configurations_when_cloud_printer_removed_from_account 2020-06-09 15:04:41 +02:00
Nino van Hooff
1024879f9d Process Review feedback for CURA-7438
Renames UltimakerCloudAuthentication to UltimakerCloudConstants

Cura-7438
2020-06-09 13:41:30 +02:00
Nino van Hooff
32f57b8770 Merge remote-tracking branch 'origin/master' into CURA-7437_no_internet_cloud_bugs 2020-06-09 10:47:53 +02:00
Kostas Karmas
7ba400254d Merge branch 'CURA-7455_Keep_printer_configurations_when_cloud_printer_removed_from_account' into CURA-7454_Add_remove_printers_button_in_removed_printers_from_account_message 2020-06-08 09:22:39 +02:00
Kostas Karmas
42daef0a75 Remove spam info message 2020-06-05 13:20:38 +02:00
Kostas Karmas
27b733fe3d Add "Keep printer configurations" button in removed printers message
Since keeping the printers as local ones is the default action, this
button behaves the same way as the "X" button, hiding the message.

CURA-7455
2020-06-05 11:39:26 +02:00
Kostas Karmas
167a4c1f58 Make reported_device_ids a class variable
So that the actions that can be performed by the message buttons
can properly access the list and take the necessary steps to achieve
their purpose.

CURA-7438
2020-06-05 11:25:44 +02:00
Kostas Karmas
458b439a9a Rename META_REMOVED_FROM_ACCOUNT to META_LINKED_TO_ACCOUNT
The meta data entry was rename to be more representative of its
function. In addition, the bool metadata entry is now properly
handled using the parseBool function.

CURA-7438
2020-06-04 16:14:09 +02:00
Kostas Karmas
ee7f2d4b38 Handle the case when a cloud printer is removed from the account
When a cloud printer is no longer received from mycloud, it is safe to
assume that the printer is removed from the account. In such a case,
the new function _devicesRemovedFromAccount(..) will retrieve all the
devices that are to be removed (i.e. they are added in Cura but they
do not exist in the clusters received from mycloud) and will remove
their output device. In addition the function will generate a message
that mentions all the devices that were no longer linked to the
account.

In order to achieve that, the Cloud/CloudOutputDeviceManager is
enriched with the dictionary self._um_cloud_printers that contains all
the currently existing cloud-enabled devices that were previously added
in Cura. In addition, the meta-data field "removed_from_account" is
added to all the cloud-enabled Cura devices to distinguish the ones
actually linked to the current account.

With these additions, the cloud devices that are removed from the
account will be automagically re-linked to it once the devices are once
again retrieved from mycloud for the specific account.

CURA-7438
2020-06-04 14:56:58 +02:00
Nino van Hooff
80a5b53aad Store the printer cluster size as a metadata entry on the machine
This makes the cluster size also available when the machine is offline.
Also fixes an issue where the cluster size is improperly restored
once the internet connection comes back online, resulting in the printer
showing as a single printer until next sync

CURA-7347
2020-06-03 13:59:51 +02:00
Kostas Karmas
be9aec624a Use the um_cloud_cluster_id metadata when removing the cloud printer
CURA-7457
2020-06-03 11:13:21 +02:00
Kostas Karmas
d0534c0476 Update _remote_clusters dict when cloud printer is removed from Cura
CURA-7457
2020-06-02 15:23:35 +02:00
Nino van Hooff
ba705176fe Remove extraneous logging 2020-06-02 14:13:04 +02:00
Jaime van Kessel
f1d3c2272e
Merge branch 'CURA-7458_Add_offline_cloud_printers_in_Cura' of github.com:Ultimaker/Cura 2020-06-02 10:55:21 +02:00
Nino van Hooff
89f0970a88 Remove trailing whitespace from Python files 2020-05-29 14:30:33 +02:00
Kostas Karmas
5aff6218d5 Add the offline cloud printers in Cura when they are discovered
CURA-7458
2020-05-29 14:02:36 +02:00
Jaime van Kessel
280d3f07a6
Merge branch 'CURA-7290_manual_account_sync' of github.com:Ultimaker/Cura 2020-05-26 11:52:14 +02:00
Kostas Karmas
b5e971f9ec Update remove cloud printer pop-up message
CURA-7436
2020-05-20 15:21:57 +02:00
Nino van Hooff
e7af27ff80
Add type hint to plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py
Co-authored-by: Jaime van Kessel <nallath@gmail.com>
2020-05-19 14:14:59 +02:00
Nino van Hooff
252b993169 Refactor removal warning message to CloudOutputDeviceManager
CURA-7436
2020-05-18 16:22:55 +02:00
Nino van Hooff
9acf8b6122 Revert "Add a sync timeout to CloudOutputDeviceManager"
Stopgap solution is not necessary anymore after CloudOutputDeviceManager
after implementing timeouts on the http-level.

This reverts commit 15f813a4
2020-05-15 11:32:49 +02:00
Nino van Hooff
f3c66c3189 Refactor CloudApiClient (and ToolpathUploader) to use HttpRequestManager
Has the benefit of a more unified Http request management + timeouts

CURA-7290
2020-05-15 11:28:17 +02:00
Nino van Hooff
15f813a4ff Add a sync timeout to CloudOutputDeviceManager
Fixes an issue where printer syncing breaks when switching networks etc.

CURA-7290
2020-05-14 15:47:45 +02:00
Nino van Hooff
b40b8e8489 Merge remote-tracking branch 'origin/master' into CURA-7290_manual_account_sync
# Conflicts:
#	cura/API/Account.py
2020-05-12 14:59:01 +02:00
Nino van Hooff
1ae050bbc5 Expose Account.SyncState as an Enum to QML
Provides a single source of truth

CURA-7290
2020-05-08 11:09:48 +02:00
Nino van Hooff
9b79b70f2b Merge branch 'CURA-7290_auto_sync_packages' into CURA-7290_manual_account_sync
# Conflicts:
#	cura/API/Account.py
#	plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py
2020-05-06 16:03:37 +02:00
Nino van Hooff
bfae7e9fb1 Replace some hard-coded sync states
CURA-7290
2020-05-06 12:54:07 +02:00
Remco Burema
2687578a86
Merge pull request #7624 from Ultimaker/CURA-7022_Add_cloud_printer_within_add_a_connected_printer
Cura 7022 add cloud printer within add a connected printer
2020-05-06 11:13:27 +02:00
Nino van Hooff
eac884fcd2 Convert SYNC_STATES to Enum
CURA-7290
2020-05-04 17:26:38 +02:00
Nino van Hooff
88ff68e40c Also check for package updates automatically
Moves the 30-second sync timer from CloudOutputDeviceManager to
Account and subscribes CloudPackageChecker to the timer.

CURA-7290
2020-05-04 16:56:09 +02:00
Nino van Hooff
049c1946d4 Create Account sync state interface to allow for multiple sync services
Needed to add the package sync

CURA-7290
2020-05-04 13:52:40 +02:00
Nino van Hooff
81d02d5d58 Implement printer cloud sync error state
CURA-7290
2020-05-04 13:19:16 +02:00
Nino van Hooff
0aed6d3731 Connect the manual sync button
CURA-7290
2020-05-01 15:56:09 +02:00
Kostas Karmas
80a4cfbd75 Remove duplicated line
This line is called both outside and inside of _setOutputDeviceMetadata(...)

CURA-7055
2020-04-30 14:03:34 +02:00
Kostas Karmas
b008f1e823 Merge branch 'master' into CURA-7022_Add_cloud_printer_within_add_a_connected_printer 2020-04-29 15:37:53 +02:00
Jaime van Kessel
084e80bcda
Only connect a cloud printer if it's the active one
By splitting up the correctly setting of metadata and actually
connecting, the distinction can be made.

CURA-7055
2020-04-29 13:48:06 +02:00
Kostas Karmas
eda868f938 Make the discovered cloud printers model generic
Removed the dependency of the DiscoveredCloudPrintersModel on CloudOutputDevice,
which is Ultimaker specific. This can allow even external plugins to add to this
model in the future.

CURA-7022
2020-04-29 13:31:45 +02:00
Kostas Karmas
ea404af973 Transfer cloudPrintersDetectedChanged in DiscoveredUltimakerCloudPrintersModel
CURA-7022
2020-04-28 14:19:28 +02:00
Kostas Karmas
6583f5f5ac Reset the model when pressing the Add cloud printer button
CURA-7022
2020-04-28 12:08:48 +02:00
Kostas Karmas
49cb1d325e Update the DiscoveredCloudUltimakerPrinters model
Whenever new cloud devices are detected on the ultimaker account, add
them to the model

CURA-7022
2020-04-24 19:17:34 +02:00
Nino van Hooff
3ba284b36c
Merge pull request #7539 from Ultimaker/CURA-7019_Move_sign_in_screen_in_front_of_add_printer_in_first_run_wizard
Cura 7019 move sign in screen in front of add printer in first run wizard
2020-04-23 14:56:31 +02:00
Jaime van Kessel
45dc8bcc68
Fix warnings about output device not being detected
CURA-7055
2020-04-23 11:38:34 +02:00
Jaime van Kessel
6746106608
Also connect with cloudOutput device if it was added
CURA-7055
2020-04-23 11:07:21 +02:00
Jaime van Kessel
7c7c1ad96c
Fix remote_clusters not being added in second boot
CURA-7055
2020-04-23 10:58:16 +02:00
Kostas Karmas
1602b71841 Inform the Cloud page about new cloud printers
Properly close the welcome screen if the user has signed in and has
cloud printers linked to his/her account. If he doesn't have any, move
to the next page of the welcome wizard.

CURA-7019
2020-04-23 09:59:32 +02:00
Kostas Karmas
1262d1f641 Activate the first available Cloud printer if the activeMachine is empty
CURA-7019
2020-04-22 18:31:04 +02:00