156 Commits

Author SHA1 Message Date
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
Lipu Fei
e1455a4551 Fix deserializing ExtruderStacks in project loading
CURA-3756
2017-05-17 15:57:13 +02:00
Lipu Fei
e2e208261e Fix renaming quality_changes and definition containers in project loading
CURA-3756
2017-05-17 11:53:13 +02:00
Lipu Fei
a9ec3f2712 Add docs to project loading code
CURA-3756
2017-05-17 11:25:48 +02:00
Lipu Fei
8c2fe0951d Refactor project loading
CURA-3756
2017-05-17 11:03:52 +02:00
Lipu Fei
ee831928ba Fix overriding extruder stacks for project loading
CURA-3756
2017-05-17 10:20:14 +02:00
Lipu Fei
40d70b5f39 Fix version upgrade for project loading
CURA-3756
2017-05-16 14:38:27 +02:00
Ghostkeeper
ccda155882
Add setting_version every time we create InstanceContainer
Except when we fill the instancecontainer via deserialising. Because then we want to retain the original version number.

Contributes to issue CURA-3427.
2017-05-15 10:39:53 +02:00
Lipu Fei
598751817a Fix resolve strategy "new" for user instance container
CURA-3756
2017-05-12 16:52:37 +02:00
Lipu Fei
3996230ff9 Load GlobalStack before ExtruderStacks for project loading
CURA-3756
2017-05-12 15:52:16 +02:00
Lipu Fei
fe11819ce9 Handle "new" resolve strategy for definition&quality changes
CURA-3756
2017-05-12 14:34:41 +02:00
Lipu Fei
9ea0f48341 Check definition changes conflicts in preRead()
CURA-3756
2017-05-12 14:34:41 +02:00
Lipu Fei
8a94f94258 WIP: use .userChanges property to replace user containers in project loading
CURA-3756
2017-05-11 14:54:00 +02:00
Lipu Fei
3baec9b742 WIP: set dirty after overriding a user container with deserialize()
CURA-3756
2017-05-11 14:53:04 +02:00
Lipu Fei
bb0e711577 WIP: fix material container renaming in project loading
CURA-3756
2017-05-11 14:20:11 +02:00
Lipu Fei
f436da8674 WIP: fix project loading and container renaming
CURA-3756
2017-05-11 14:20:11 +02:00
Jack Ha
79561f44b1 Fix project load, new non existing machine. CURA-3756 2017-05-10 16:16:57 +02:00
Jack Ha
d9f0e1fd4b WIP project loading - at least it mostly works again. CURA-3756 2017-05-10 15:37:22 +02:00
Lipu Fei
77864f4237 WIP: Fix definition_changes handling in 3mf reader
CURA-3756
2017-05-10 13:07:45 +02:00
Jack Ha
b688178a2e Fix one part of project load - update existing. CURA-3756 2017-05-10 10:56:19 +02:00
Lipu Fei
c60fefc927 Add non-existing instance containers when opening a project file
CURA-3756
2017-05-09 14:58:18 +02:00
Lipu Fei
acde348c6d Use ConfigParser hack to replace connect_signals=False hack
CURA-3756
2017-05-09 13:07:42 +02:00
Jack Ha
0d76ce72b0 Add comments CURA-3756 2017-05-09 13:07:42 +02:00
Lipu Fei
711b493ebf Fix code style 2017-05-09 13:07:42 +02:00
Lipu Fei
3e6d4b9230 document why no signals connecting in project file pre-read
CURA-3756
2017-05-09 13:07:41 +02:00
Lipu Fei
9c747733c4 Project Reader: Use ".<ext>" for profile type detection
CURA-3756
2017-05-09 13:07:41 +02:00
Ghostkeeper
61f7b6aa68 Add spaces around binary operator
According to our code style.

Contributes to issue CURA-3756.
2017-05-09 13:07:41 +02:00
Lipu Fei
53141303d2 WIP: Fix project loading
CURA-3756
2017-05-09 13:07:41 +02:00
Lipu Fei
e00c68344a CURA-3495 open project/models in one dialog 2017-03-16 13:37:06 +01:00
Jaime van Kessel
bae7af1ea0 Dots in the ID no longer confuse workspace reader
CURA-3450
2017-03-02 17:06:10 +01:00