326 QHash<KoPatternSP, QString> patternToUuidMap;
330 if (!allPatterns.isEmpty()) {
335 if (!patternToUuidMap.contains(pattern)) {
336 QString uuid = w.writePattern(
"", pattern);
337 patternToUuidMap.insert(pattern, uuid);
340 warnKrita <<
"WARNING: KisAslLayerStyleSerializer::saveToDevice: saved pattern is null!";
349 w.enterDescriptor(
"",
"",
"null");
350 w.writeText(
"Nm ", style->name());
351 w.writeText(
"Idnt", style->psdUuid());
354 w.enterDescriptor(
"",
"",
"Styl");
356 w.enterDescriptor(
"documentMode",
"",
"documentMode");
359 w.enterDescriptor(
"Lefx",
"",
"Lefx");
361 w.writeUnitFloat(
"Scl ",
"#Prc", 100);
362 w.writeBoolean(
"masterFXSwitch", style->isEnabled());
368 w.enterDescriptor(
"DrSh",
"",
"DrSh");
372 w.writeColor(
"Clr ", dropShadow->
color());
374 w.writeUnitFloat(
"Opct",
"#Prc", dropShadow->
opacity());
376 w.writeUnitFloat(
"lagl",
"#Ang", dropShadow->
angle());
377 w.writeUnitFloat(
"Dstn",
"#Pxl", dropShadow->
distance());
378 w.writeUnitFloat(
"Ckmt",
"#Pxl", dropShadow->
spread());
379 w.writeUnitFloat(
"blur",
"#Pxl", dropShadow->
size());
380 w.writeUnitFloat(
"Nose",
"#Prc", dropShadow->
noise());
389 w.writeBoolean(
"layerConceals", dropShadow->
knocksOut());
396 w.enterDescriptor(
"IrSh",
"",
"IrSh");
400 w.writeColor(
"Clr ", innerShadow->
color());
402 w.writeUnitFloat(
"Opct",
"#Prc", innerShadow->
opacity());
404 w.writeUnitFloat(
"lagl",
"#Ang", innerShadow->
angle());
405 w.writeUnitFloat(
"Dstn",
"#Pxl", innerShadow->
distance());
406 w.writeUnitFloat(
"Ckmt",
"#Pxl", innerShadow->
spread());
407 w.writeUnitFloat(
"blur",
"#Pxl", innerShadow->
size());
408 w.writeUnitFloat(
"Nose",
"#Prc", innerShadow->
noise());
410 w.writeBoolean(
"AntA", innerShadow->
antiAliased());
423 w.enterDescriptor(
"OrGl",
"",
"OrGl");
432 if (segmentGradient && segmentGradient->
valid()) {
433 w.writeSegmentGradient(
"Grad", *segmentGradient);
434 }
else if (stopGradient && stopGradient->
valid()) {
435 w.writeStopGradient(
"Grad", *stopGradient);
437 warnKrita <<
"WARNING: OG: Unknown gradient type!";
438 w.writeColor(
"Clr ", outerGlow->
color());
442 w.writeColor(
"Clr ", outerGlow->
color());
445 w.writeUnitFloat(
"Opct",
"#Prc", outerGlow->
opacity());
449 w.writeUnitFloat(
"Ckmt",
"#Pxl", outerGlow->
spread());
450 w.writeUnitFloat(
"blur",
"#Pxl", outerGlow->
size());
451 w.writeUnitFloat(
"Nose",
"#Prc", outerGlow->
noise());
453 w.writeUnitFloat(
"ShdN",
"#Prc", outerGlow->
jitter());
462 w.writeUnitFloat(
"Inpr",
"#Prc", outerGlow->
range());
470 w.enterDescriptor(
"IrGl",
"",
"IrGl");
479 if (segmentGradient && innerGlow->
gradient(style->resourcesInterface())->valid()) {
480 w.writeSegmentGradient(
"Grad", *segmentGradient);
481 }
else if (stopGradient && innerGlow->
gradient(style->resourcesInterface())->valid()) {
482 w.writeStopGradient(
"Grad", *stopGradient);
484 warnKrita <<
"WARNING: IG: Unknown gradient type!";
485 w.writeColor(
"Clr ", innerGlow->
color());
489 w.writeColor(
"Clr ", innerGlow->
color());
492 w.writeUnitFloat(
"Opct",
"#Prc", innerGlow->
opacity());
496 w.writeUnitFloat(
"Ckmt",
"#Pxl", innerGlow->
spread());
497 w.writeUnitFloat(
"blur",
"#Pxl", innerGlow->
size());
500 w.writeUnitFloat(
"ShdN",
"#Prc", innerGlow->
jitter());
501 w.writeUnitFloat(
"Nose",
"#Prc", innerGlow->
noise());
512 w.writeUnitFloat(
"Inpr",
"#Prc", innerGlow->
range());
520 w.enterDescriptor(
"ebbl",
"",
"ebbl");
529 w.writeColor(
"sdwC", bevelAndEmboss->
shadowColor());
530 w.writeUnitFloat(
"sdwO",
"#Prc", bevelAndEmboss->
shadowOpacity());
536 w.writeUnitFloat(
"lagl",
"#Ang", bevelAndEmboss->
angle());
537 w.writeUnitFloat(
"Lald",
"#Ang", bevelAndEmboss->
altitude());
539 w.writeUnitFloat(
"srgR",
"#Prc", bevelAndEmboss->
depth());
540 w.writeUnitFloat(
"blur",
"#Pxl", bevelAndEmboss->
size());
550 w.writeUnitFloat(
"Sftn",
"#Pxl", bevelAndEmboss->
soften());
560 w.writeBoolean(
"AntA", bevelAndEmboss->
antiAliased());
561 w.writeUnitFloat(
"Inpr",
"#Prc", bevelAndEmboss->
contourRange());
569 w.writeUnitFloat(
"Scl ",
"#Prc", bevelAndEmboss->
textureScale());
570 w.writeUnitFloat(
"textureDepth ",
"#Prc", bevelAndEmboss->
textureDepth());
574 w.writePhasePoint(
"phase", bevelAndEmboss->
texturePhase());
583 w.enterDescriptor(
"ChFX",
"",
"ChFX");
587 w.writeColor(
"Clr ", satin->
color());
590 w.writeBoolean(
"Invr", satin->
invert());
591 w.writeUnitFloat(
"Opct",
"#Prc", satin->
opacity());
592 w.writeUnitFloat(
"lagl",
"#Ang", satin->
angle());
593 w.writeUnitFloat(
"Dstn",
"#Pxl", satin->
distance());
594 w.writeUnitFloat(
"blur",
"#Pxl", satin->
size());
606 w.enterDescriptor(
"SoFi",
"",
"SoFi");
610 w.writeUnitFloat(
"Opct",
"#Prc", colorOverlay->
opacity());
611 w.writeColor(
"Clr ", colorOverlay->
color());
621 if (gradientOverlay->
effectEnabled() && ((segmentGradient && segmentGradient->
valid()) || (stopGradient && stopGradient->
valid()))) {
622 w.enterDescriptor(
"GrFl",
"",
"GrFl");
626 w.writeUnitFloat(
"Opct",
"#Prc", gradientOverlay->
opacity());
628 if (segmentGradient && segmentGradient->
valid()) {
629 w.writeSegmentGradient(
"Grad", *segmentGradient);
630 }
else if (stopGradient && stopGradient->
valid()) {
631 w.writeStopGradient(
"Grad", *stopGradient);
634 w.writeUnitFloat(
"Angl",
"#Ang", gradientOverlay->
angle());
638 w.writeBoolean(
"Rvrs", gradientOverlay->
reverse());
640 w.writeUnitFloat(
"Scl ",
"#Prc", gradientOverlay->
scale());
644 w.writeBoolean(
"Dthr", gradientOverlay->
dither());
652 w.enterDescriptor(
"patternFill",
"",
"patternFill");
656 w.writeUnitFloat(
"Opct",
"#Prc", patternOverlay->
opacity());
661 w.writeUnitFloat(
"Scl ",
"#Prc", patternOverlay->
scale());
663 w.writePhasePoint(
"phase", patternOverlay->
patternPhase());
670 w.enterDescriptor(
"FrFX",
"",
"FrFX");
678 w.writeUnitFloat(
"Opct",
"#Prc", stroke->
opacity());
680 w.writeUnitFloat(
"Sz ",
"#Pxl", stroke->
size());
683 w.writeColor(
"Clr ", stroke->
color());
689 if (segmentGradient && segmentGradient->
valid()) {
690 w.writeSegmentGradient(
"Grad", *segmentGradient);
691 }
else if (stopGradient && stopGradient->
valid()) {
692 w.writeStopGradient(
"Grad", *stopGradient);
694 warnKrita <<
"WARNING: Stroke: Unknown gradient type!";
695 w.writeColor(
"Clr ", stroke->
color());
698 w.writeUnitFloat(
"Angl",
"#Ang", stroke->
angle());
701 w.writeBoolean(
"Rvrs", stroke->
reverse());
702 w.writeUnitFloat(
"Scl ",
"#Prc", stroke->
scale());
706 w.writeBoolean(
"Dthr", stroke->
dither());
712 w.writeUnitFloat(
"Scl ",
"#Prc", stroke->
scale());
1058 QMap<QString, psd_technique_type> fillTechniqueMap;
1088 QMap<QString, psd_glow_source> glowSourceMap;
1130 QMap<QString, psd_gradient_style> gradientStyleMap;
1155 QMap<QString, psd_stroke_position> strokeStyleMap;
1161 QMap<QString, psd_fill_type> strokeFillType;
1199 QMap<QString, psd_technique_type> bevelTechniqueMap;
1205 QMap<QString, psd_bevel_style> bevelStyleMap;
1223 QMap<QString, psd_direction> bevelDirectionMap;