847 Commits

Author SHA1 Message Date
Jaime van Kessel
f6cbb0f88c
Prevent continued connect / disconnect loop
If a cloud printer was connected, it would time out all the time. In some cases
it would do this in a single update loop (so connect and disconnect). Depending
on the machine of the user, this would either be visible or not at all.
2020-08-25 17:02:39 +02:00
Jaime van Kessel
bf9c413516
Change wording of logline
The log was incorrect. At that point the device isn't connected yet,
it's state is connecting!
2020-08-25 16:31:11 +02:00
Jaime van Kessel
6f3298385f
Increase timeout time for the cluster output
We got reports that 10 seconds can cause connection to be lost
2020-08-25 16:07:46 +02:00
Ghostkeeper
d021fd10fb
Don't crash when trying to upload two jobs at the same time
This will now result in a job being put in the queue but not automatically printing, but there is at least a workaround for that.

Fixes Sentry issue CURA-14A.
2020-08-25 12:23:58 +02:00
Ghostkeeper
9ea418c0a1
Revert "Revert "Merge branch '4.7' of github.com:Ultimaker/Cura into 4.7""
This reverts commit 28f4d8513db7efce17bfd8b80fa7c8b237fd1c18.
The original revert was to revert an accidental merge from master to 4.7. This now reverts the revert on Master, so that we still have those changes on Master.
2020-08-20 16:35:52 +02:00
Ghostkeeper
28f4d8513d
Revert "Merge branch '4.7' of github.com:Ultimaker/Cura into 4.7"
This reverts commit 7f47f12bf0a9cf305542b6c21600ce9b804c1dfd, reversing
changes made to dd42c87da762d2030ee2220bc6f0a3e44cf85c28.
2020-08-20 16:01:46 +02:00
Jaime van Kessel
1374c2faa9
Properly fix the translation crash 2020-08-13 15:13:11 +02:00
Jaime van Kessel
5c8132a944
Fix translation crash 2020-08-13 14:54:34 +02:00
Ghostkeeper
4ecab892e5
Further improve translated strings
Remove this formatting from the translated part.
2020-08-12 10:53:37 +02:00
Ghostkeeper
5ec57d42d0
Improve translatability of cloud printer syncing texts
Here are a number of improvements to the translated texts that make it easier for the translators to translate them:
* Never include layout elements such as <ul> or <li> in the translated text. The translators don't know what to do with them. Instead, leave the tags out of the translated parts and then wrap them around it in Python.
* If there are replacement keys in the source text, explain all of them in the context.
* Use a name within the brackets, to make it clear from context what the brackets mean and to disambiguate multiple keys if there are multiple.
* No invisible whitespace (such as space at the end of a line).
* Use plural forms with i18ncp if applicable (or i18np if no context is necessary).

I also changed the catalogue variable to lowercase with underscores, as per our code style.
2020-08-12 09:45:51 +02:00
Jaime van Kessel
c8746eced6
Move some HTML codes out of the translation
Due to string freeze we can't fix this for 4.7

CURA-7627
2020-08-04 13:44:33 +02:00
Jaime van Kessel
955b2950e8
Change tertiary button to use link text color
CURA-7627
2020-08-04 13:30:01 +02:00
Kostas Karmas
83c5df84d5 Change cloud labels in UM3NetworkPrinting plugin
To be aligned with the Digital Factory.

CURA-7605
2020-07-27 12:00:27 +02:00
Nino van Hooff
49f83cbdb5 Fix printer counts for the auto-added printer message
CURA-7546
2020-07-02 16:23:46 +02:00
Ghostkeeper
43c5d05853
Merge branch 'CURA-7505_Refactor_registration_of_cloud_printers' 2020-06-18 17:21:05 +02:00
Kostas Karmas
18f3d187d5 Remove extra newlines in printers added from account message
Since \n are now replaced by <br>, the \n should be removed from this specific message.
Required after the changes in efaad4f6c8
2020-06-18 14:08:35 +02:00
Kostas Karmas
8abaf69873 Update CloudOutputDevice of the machine when it is rediscovered
Even though the metadata of the machine was updated when it was
rediscovered, the new cluster id was not updated in all its references
(such as in the _remote_clusters and in the _um_cloud_printers dicts).
This commit fixes that issue by properly updating all the entries
that depend on the machine's cluster id.

CURA-7505
2020-06-17 16:11:18 +02:00
Kostas Karmas
3b6ac5eb8d Add host_guid to the cloud printers' metadata
Since the host_guid is unique to the printer, it is more reliable for
identifying the cloud printers. This comes in handy when the cloud
printer is removed from the account and re-added. With the host_guid,
the printer that is added again can be properly identified as an
existing Cura cloud printer, and be linked to the original. To
achieve that, the META_CLUSTER_ID of the printer is updated with the
new one that is generated when the printer is added again to the
account.

CURA-7505
2020-06-15 15:01:14 +02:00
Nino van Hooff
994f9fbde7 Re-implement ConnectionStatus by adding a pyqtSignal to HttpRequestMgr
and using ConnectionStatus as proxy for it.

CURA-7492
2020-06-15 11:39:06 +02:00
Kostas Karmas
ddf312eca5 Refactor the connection status to be informed by the autosync
The autosync, which happens every 30 seconds, will now also inform the
connection status when the get request succeeds or fails, which is an
indicator of whether the internet is reachable.

CURA-7492
2020-06-15 09:34:56 +02:00
Kostas Karmas
defa3fd940 Remove lifetime of message, since it is the same as the default
In response to feedback comment https://github.com/Ultimaker/Cura/pull/7904#discussion_r438023812

CURA-7454
2020-06-10 13:00:55 +02:00
Kostas Karmas
ad36903cbb Convert removed_printers_message into private
In response to feedback comment https://github.com/Ultimaker/Cura/pull/7904#discussion_r438023220

CURA-7454
2020-06-10 12:59:39 +02:00
Kostas Karmas
984426fabb Merge branch 'master' into CURA-7454_Add_remove_printers_button_in_removed_printers_from_account_message 2020-06-10 12:06:41 +02:00
Kostas Karmas
fdc555caf3 Merge branch 'master' into CURA-7455_Keep_printer_configurations_when_cloud_printer_removed_from_account 2020-06-10 11:51:50 +02:00
Nino van Hooff
feeeb972f7
Merge pull request #7873 from Ultimaker/CURA-7438_Show_cloud_connection_not_available_printer_removed_from_account
CURA-7438 Handle the case when a cloud printer is removed from the account
2020-06-10 11:46:10 +02:00
Kostas Karmas
b9956f2ae2 Fix failing tests
CURA-7454
2020-06-09 17:51:06 +02:00
Remco Burema
ac36aeb831
Merge pull request #7903 from Ultimaker/CURA-7493_prefer_online_cloud_printers
Sort new_devices on online status first, name second
2020-06-09 17:46:05 +02:00
Kostas Karmas
2442371c2f Hide the message if a manual check is initiated
This has to be done in order to avoid weird actions taking place, such
as the user pressing to remove the printers while another sync is
happening.

CURA-7454
2020-06-09 17:42:53 +02:00
Remco Burema
a38fac9e67
Fix typing. 2020-06-09 17:34:23 +02:00
Remco Burema
29442e29e4
Make printer name sorting case insensitive again.
part of CURA-7493
2020-06-09 17:28:02 +02:00
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
Kostas Karmas
8e1ed6cd29 Merge branch 'master' into CURA-7454_Add_remove_printers_button_in_removed_printers_from_account_message 2020-06-09 15:03:23 +02:00
Jaime van Kessel
b6b3646f32
Merge branch 'CURA-7437_no_internet_cloud_bugs' of github.com:Ultimaker/Cura 2020-06-09 13:45:21 +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
Ghostkeeper
c6af6565a3
More descriptive and appropriate logging
Contributes to issue CURA-7488.
2020-06-08 17:58:42 +02:00
Ghostkeeper
7e10e74e9e
Don't send print job in chunks
Previously the print job was sent with multiple PUT requests. This was necessary since the request was made with the Python Requests library, which freezes the interface while it's running. By breaking the upload up in chunks, it would at least periodically keep updating the interface (4 times per second or so, depending on your internet speed and Ultimaker's). Later on, this was replaced by a QNetworkRequest which doesn't freeze the interface in a refactor, but it was still broken up in chunks.
Recently that was again refactored to use Uranium's HttpRequestManager, which under the covers also uses QNetworkRequest. This also doesn't freeze while uploading, which is good. However for some reason the second chunk would always give a QNetworkReply::ProtocolUnknownError, which is a bit of a catch-all error for any HTTP status codes not supported by Qt. I was not able to figure out what was really going wrong there, but it has something to do with the content-range header and making multiple requests.
Instead of fixing that, I've removed the chunking. This simplifies the code a lot and doesn't have any implications for the user, since it still doesn't freeze the interface while the network request is ongoing. It should be slightly faster to upload, and reduce load on the server too.

However the disadvantage is that the original bug is probably still there if it was a bug in the HttpRequestManager. If it was a bug in the ToolPathUploader I probably deleted the bug here.

Contributes to issue CURA-7488.
2020-06-08 17:55:07 +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
9e891c201b Merge branch 'master' into CURA-7438_Show_cloud_connection_not_available_printer_removed_from_account 2020-06-04 15:25:43 +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
Gabriel Vogel
2ebf32831a remove duplicate updates for model properties 2020-06-04 13:50:24 +02:00
Ghostkeeper
b2ce1419cf
Don't crash when syncing material that has no colour code
Use the colour code for Generic PLA then.
2020-06-03 17:48:28 +02:00