185 Commits

Author SHA1 Message Date
Lipu Fei
6b3e130349 Fix edge cases with ultimaker2 and whatever other machines that may get affected
CURA-4617
2017-11-23 16:28:36 +01:00
Lipu Fei
ef37f0d8c7 Fix project loading to reset quality if it doesn't exist
CURA-4617
2017-11-23 15:35:33 +01:00
Lipu Fei
033cc4fbc7 Fix quality update in project loading
CURA-4613
2017-11-23 14:12:41 +01:00
Lipu Fei
1db448d7d8 Use the correct quality container for global stacks loaded from project files
CURA-4613
2017-11-23 13:04:06 +01:00
Lipu Fei
18c7a5acf3 Pass optional file_name for deserialization
CURA-4613

Some upgrades depend on the file_name, so the file_name is needed in
this case.
2017-11-23 11:28:16 +01:00
Ghostkeeper
105d7a5615
Return newly added single extruder
The workspace reader needs to use it to get the correct material.

Contributes to issue CURA-4604.
2017-11-22 17:12:53 +01:00
Diego Prado Gesto
feb0a08fd9 CURA-4581 The project name is cached instead of set 2017-11-21 12:34:08 +01:00
ChrisTerBeke
657a91c525 Merge pull request #2685 from Ultimaker/container_stack_improvements
Container stack improvements
2017-11-20 17:42:26 +01:00
Ghostkeeper
3a9c8d16a2
Fix remaining references to instance_container._id
These must've slipped through the cracks.

Contributes to issue CURA-4243.
2017-10-30 15:07:46 +01:00
Lipu Fei
0096fe0de3 Fix project loading to handle "Not Supported" quality profiles
CURA-4451
2017-10-30 12:54:21 +01:00
Ghostkeeper
6c4c7fff4d
Use findContainersMetadata whenever possible
This ensures that we only load those containers that we actually need the data of.

Contributes to issue CURA-4243.
2017-10-20 15:09:45 +02:00
Ghostkeeper
7745113704
Re-use stack variable
We're creating the variable but then requesting the 0th element from the list each time... That can be more logical and more efficient.

Contributes to issue CURA-4243.
2017-10-19 15:32:21 +02:00
Lipu Fei
052ea7d90a Force use and update the job name with the loaded project file
CURA-4348

- If no project is loaded beforehand and then a model file is loaded,
  the job name should be determined with the current machine name and
  the first loaded model name.
- If a project is loaded, the job name should be the same as the project
  name, and it should not change until another project is loaded.
2017-10-12 07:59:43 +02:00
Lipu Fei
245eec9314 Hide settings visibility row if it is not in preferences
CURA-4344

Hide the row which shows the number of settings that are visible on the
project file loading dialog if this information is not available.
2017-10-10 11:31:37 +02:00
A.Sasin
2288997697 Fixed: while project loading pass call upgrade plugin for preferences
CURA-4344
2017-10-06 18:56:17 +02:00
Diego Prado Gesto
104926c6ed Updating when new definition changes should be created when loading project - CURA-4413 2017-10-04 13:14:07 +02:00
Jaime van Kessel
6dcb542e64 Fixed issue where "create new" of quality changes in combination with machine caused issues
CURA-4409
2017-10-03 13:46:38 +02:00
Jaime van Kessel
8c5b5e32ac Loading multi extruder custom machine over a single extruder doesnt cause issue anymore
CURA-4404
2017-10-03 10:26:51 +02:00
Jaime van Kessel
d48ab89031 Overriding custom FDM printer with 1 extruder doesn't cause issue anymore.
It would try to override extruders that weren't thare. This was caused by the previous
change that would always load the extruders, but that should only happen for new machines, not for
overrides.
2017-10-02 15:30:24 +02:00
Jaime van Kessel
437da52f65 Merge branch 'fix_multiple_extruder_issues' of github.com:Ultimaker/Cura into 3.0 2017-09-29 15:17:11 +02:00
Diego Prado Gesto
402617af1e Loading extruder stack files also for single extruder printers - CURA-4379 2017-09-29 15:16:14 +02:00
Mark
9a193ad5c5 Changing AGPLv3 to LGPLv3 2017-09-28 13:00:43 +02:00
Jaime van Kessel
e5f3d45385 When project loading needs to create a new machine, also create a new definition changes
CURA-4345
2017-09-19 14:02:01 +02:00
Ghostkeeper
557173e799
Merge branch '2.7' 2017-08-24 15:33:01 +02:00
Lipu Fei
3d44d3c4ca Add logging and minor fix for project loading
CURA-4204
2017-08-23 17:42:40 +02:00
Lipu Fei
3805d2ff9e Add comments for HACK in project loading
CURA-4204
2017-08-23 17:37:59 +02:00
Lipu Fei
d662770b22 Fix setting new material for stacks
CURA-4204

When a new material is created during project file loading, the material
for each stack is set according to the parent material ID, but actually
the child material should be used. This fix uses a hack to find the
corresponding child material for a stack so when a user chooses to
create a new material during project file loading, the material can be
correctly set.
2017-08-23 16:27:28 +02:00
Lipu Fei
4ad62daf61 Generate new unique names for new machines from the project files
CURA-4144

Generate a new name for the machine loaded from a project file instead
of using new ID as the new name.
2017-08-16 08:30:13 +02:00
alekseisasin
dc629f7c91 Solved incorrect printer name after loading a project from file
CURA-4144
2017-08-15 23:48:35 +02:00
Lipu Fei
da8b55cf62 Make sure stacks will have non-empty definitionChanges in project loading
CURA-4107

In old Cura, there is no definitionChanges container, so loading a
project file from an old version will result in stacks with empty
defnitionChanges. This will cause an unnecessary auto-slice problem when
we switch between the extruder tabs for the first time. This action will
trigger a piece code in MachineAction which creates a definitionChanges
container for the active stack if it is empty. This eventually triggers
a propertyChanged signal and results in an unncessary auto-slicing.
2017-08-15 14:38:49 +02:00
Lipu Fei
3ebaacfa11 Use the extruder count in the global stack in project loading
CURA-4167

Custom FDM printers have multiple extruder stacks by default but not all
of them may be used. The actual number of extruders depends on what's
defined in the global stack. Because in the current architecture,
single-extrusion machines don't have extruder stacks, in project
loading, the extruder count in the global stack should be used so these
cases can be handled properly.
2017-08-15 14:19:23 +02:00
Lipu Fei
026244fb53 Add comments for conflict detection
CURA-4143
2017-08-15 10:49:11 +02:00
Lipu Fei
9ff6ae010a Use findInstanceContainers() for definition_changes
CURA-4167
2017-08-15 10:44:23 +02:00
Lipu Fei
66b26bafd4 Show quality name in project loading summary
CURA-4142

In case the quality changes container is not there, show the quality
name of the quality profile.
2017-08-09 13:27:00 +02:00
Lipu Fei
ccabbd8ca0 Mark definition changes container found instead of conflict
CURA-4143

Reverts 65554b60e19507635c79048dc73862e6b25ec0ec
2017-08-09 13:12:06 +02:00
Lipu Fei
65554b60e1 Mark definition_changes conflict if it is not found
CURA-4143
2017-08-09 13:06:18 +02:00
Lipu Fei
686ca803ee Set correct machine name when creating a new machine from a project
CURA-4074
2017-07-26 15:08:15 +02:00
Lipu Fei
15a6b5626d Remove useless code
CURA-4053
2017-07-21 11:32:11 +02:00
Lipu Fei
141cfe776e Fix handling old stack without definition_changes and add doc
CURA-4053
2017-07-21 11:28:47 +02:00
Jaime van Kessel
326c4cc4a4 Removed code duplication
CURA-4053
2017-07-21 10:15:20 +02:00
Lipu Fei
22c1a118a8 Fix conflict detection when there is no definition_changes
CURA-4053

An old project file doesn't have the definition_changes container in the
stacks. When this is the case, Cura should also check if the definition
changes container in an existing stack is empty or not for project file
loading conflict detection.
2017-07-20 10:28:09 +02:00
Lipu Fei
356b3cf0ca Remove unnecessary code
CURA-4053
2017-07-19 16:44:04 +02:00
Lipu Fei
9288f408e5 Correctly detect old project files for conflicts
CURA-4053

- In Cura 2.5, there is no definition_changes in the stack. This is now
  taken into account when doing conflicts detection.
- In Cura 2.5, we have empty containers named as "empty_variant" and
  such. Those are now properly handled in conflict detection.
2017-07-19 16:39:04 +02:00
Lipu Fei
7148c71877 Change extruder stacks for conflicts only if the global stack is found
CURA-4053

If the global stack is not found, we assume the machine is not there and
default to create a new one. If the machine is found and there is not
conflicts, then we check the extruders associated for conflicts.
2017-07-19 16:35:52 +02:00
Lipu Fei
3474bb0738 Fix project conflict resolving for global stack and extruder stacks
CURA-4053

- Fix that if the resolve strategy is new for machine, Cura should
  always create new global and extruder stacks
- Fix possible duplicated IDs when "Create New" machine is selected
2017-07-19 15:20:29 +02:00
Lipu Fei
834fd055b6 Fix conflict resolve strategies in project loading
CURA-4053

When loading a project file:

- Only check if the global stack exists to detect conflicts instead
  of checking the global stack and the extruder stacks. It can happen
  that the global stack exists while the extruder stacks not or the
  other way around.

- Always assign a resolve strategy to container(s). There can be
  "None" strategies and those were not handled correctly.
2017-07-19 14:48:11 +02:00
Jaime van Kessel
99b236c8d4 Removed "fix" that caused project files to create new instances if there was no conflict.
The overriding doesn't make any sense. The original commit mentions that it should fix something, but it doesn't acutally fix it. It seems
the original issue was fixed in the proper place, leaving this code to mess everything up.

CURA-3756
2017-07-17 11:08:31 +02:00
Lipu Fei
870d6fe76a Use position number to get extruders for overriding in project loading
CURA-3756
2017-05-18 14:34:37 +02:00
Lipu Fei
cbdddd0b16 Ignore "quality" and "variant" containers in project loading
CURA-3756
2017-05-18 10:28:02 +02:00
Lipu Fei
18dd8dc6cc Simplify ExtruderStack override code in project loading
CURA-3756
2017-05-17 17:10:55 +02:00