312 QHash<KoPatternSP, QString> patternToUuidMap;
316 if (!allPatterns.isEmpty()) {
321 if (!patternToUuidMap.contains(pattern)) {
322 QString uuid = w.writePattern(
"", pattern);
323 patternToUuidMap.insert(pattern, uuid);
326 warnKrita <<
"WARNING: KisAslLayerStyleSerializer::saveToDevice: saved pattern is null!";
335 w.enterDescriptor(
"",
"",
"null");
336 w.writeText(
"Nm ", style->name());
337 w.writeText(
"Idnt", style->psdUuid());
340 w.enterDescriptor(
"",
"",
"Styl");
342 w.enterDescriptor(
"documentMode",
"",
"documentMode");
345 w.enterDescriptor(
"Lefx",
"",
"Lefx");
347 w.writeUnitFloat(
"Scl ",
"#Prc", 100);
348 w.writeBoolean(
"masterFXSwitch", style->isEnabled());
354 w.enterDescriptor(
"DrSh",
"",
"DrSh");
358 w.writeColor(
"Clr ", dropShadow->
color());
360 w.writeUnitFloat(
"Opct",
"#Prc", dropShadow->
opacity());
362 w.writeUnitFloat(
"lagl",
"#Ang", dropShadow->
angle());
363 w.writeUnitFloat(
"Dstn",
"#Pxl", dropShadow->
distance());
364 w.writeUnitFloat(
"Ckmt",
"#Pxl", dropShadow->
spread());
365 w.writeUnitFloat(
"blur",
"#Pxl", dropShadow->
size());
366 w.writeUnitFloat(
"Nose",
"#Prc", dropShadow->
noise());
375 w.writeBoolean(
"layerConceals", dropShadow->
knocksOut());
382 w.enterDescriptor(
"IrSh",
"",
"IrSh");
386 w.writeColor(
"Clr ", innerShadow->
color());
388 w.writeUnitFloat(
"Opct",
"#Prc", innerShadow->
opacity());
390 w.writeUnitFloat(
"lagl",
"#Ang", innerShadow->
angle());
391 w.writeUnitFloat(
"Dstn",
"#Pxl", innerShadow->
distance());
392 w.writeUnitFloat(
"Ckmt",
"#Pxl", innerShadow->
spread());
393 w.writeUnitFloat(
"blur",
"#Pxl", innerShadow->
size());
394 w.writeUnitFloat(
"Nose",
"#Prc", innerShadow->
noise());
396 w.writeBoolean(
"AntA", innerShadow->
antiAliased());
409 w.enterDescriptor(
"OrGl",
"",
"OrGl");
418 if (segmentGradient && segmentGradient->
valid()) {
419 w.writeSegmentGradient(
"Grad", *segmentGradient);
420 }
else if (stopGradient && stopGradient->
valid()) {
421 w.writeStopGradient(
"Grad", *stopGradient);
423 warnKrita <<
"WARNING: OG: Unknown gradient type!";
424 w.writeColor(
"Clr ", outerGlow->
color());
428 w.writeColor(
"Clr ", outerGlow->
color());
431 w.writeUnitFloat(
"Opct",
"#Prc", outerGlow->
opacity());
435 w.writeUnitFloat(
"Ckmt",
"#Pxl", outerGlow->
spread());
436 w.writeUnitFloat(
"blur",
"#Pxl", outerGlow->
size());
437 w.writeUnitFloat(
"Nose",
"#Prc", outerGlow->
noise());
439 w.writeUnitFloat(
"ShdN",
"#Prc", outerGlow->
jitter());
448 w.writeUnitFloat(
"Inpr",
"#Prc", outerGlow->
range());
456 w.enterDescriptor(
"IrGl",
"",
"IrGl");
465 if (segmentGradient && innerGlow->
gradient(style->resourcesInterface())->valid()) {
466 w.writeSegmentGradient(
"Grad", *segmentGradient);
467 }
else if (stopGradient && innerGlow->
gradient(style->resourcesInterface())->valid()) {
468 w.writeStopGradient(
"Grad", *stopGradient);
470 warnKrita <<
"WARNING: IG: Unknown gradient type!";
471 w.writeColor(
"Clr ", innerGlow->
color());
475 w.writeColor(
"Clr ", innerGlow->
color());
478 w.writeUnitFloat(
"Opct",
"#Prc", innerGlow->
opacity());
482 w.writeUnitFloat(
"Ckmt",
"#Pxl", innerGlow->
spread());
483 w.writeUnitFloat(
"blur",
"#Pxl", innerGlow->
size());
486 w.writeUnitFloat(
"ShdN",
"#Prc", innerGlow->
jitter());
487 w.writeUnitFloat(
"Nose",
"#Prc", innerGlow->
noise());
498 w.writeUnitFloat(
"Inpr",
"#Prc", innerGlow->
range());
506 w.enterDescriptor(
"ebbl",
"",
"ebbl");
515 w.writeColor(
"sdwC", bevelAndEmboss->
shadowColor());
516 w.writeUnitFloat(
"sdwO",
"#Prc", bevelAndEmboss->
shadowOpacity());
522 w.writeUnitFloat(
"lagl",
"#Ang", bevelAndEmboss->
angle());
523 w.writeUnitFloat(
"Lald",
"#Ang", bevelAndEmboss->
altitude());
525 w.writeUnitFloat(
"srgR",
"#Prc", bevelAndEmboss->
depth());
526 w.writeUnitFloat(
"blur",
"#Pxl", bevelAndEmboss->
size());
536 w.writeUnitFloat(
"Sftn",
"#Pxl", bevelAndEmboss->
soften());
546 w.writeBoolean(
"AntA", bevelAndEmboss->
antiAliased());
547 w.writeUnitFloat(
"Inpr",
"#Prc", bevelAndEmboss->
contourRange());
555 w.writeUnitFloat(
"Scl ",
"#Prc", bevelAndEmboss->
textureScale());
556 w.writeUnitFloat(
"textureDepth ",
"#Prc", bevelAndEmboss->
textureDepth());
560 w.writePhasePoint(
"phase", bevelAndEmboss->
texturePhase());
569 w.enterDescriptor(
"ChFX",
"",
"ChFX");
573 w.writeColor(
"Clr ", satin->
color());
576 w.writeBoolean(
"Invr", satin->
invert());
577 w.writeUnitFloat(
"Opct",
"#Prc", satin->
opacity());
578 w.writeUnitFloat(
"lagl",
"#Ang", satin->
angle());
579 w.writeUnitFloat(
"Dstn",
"#Pxl", satin->
distance());
580 w.writeUnitFloat(
"blur",
"#Pxl", satin->
size());
592 w.enterDescriptor(
"SoFi",
"",
"SoFi");
596 w.writeUnitFloat(
"Opct",
"#Prc", colorOverlay->
opacity());
597 w.writeColor(
"Clr ", colorOverlay->
color());
607 if (gradientOverlay->
effectEnabled() && ((segmentGradient && segmentGradient->
valid()) || (stopGradient && stopGradient->
valid()))) {
608 w.enterDescriptor(
"GrFl",
"",
"GrFl");
612 w.writeUnitFloat(
"Opct",
"#Prc", gradientOverlay->
opacity());
614 if (segmentGradient && segmentGradient->
valid()) {
615 w.writeSegmentGradient(
"Grad", *segmentGradient);
616 }
else if (stopGradient && stopGradient->
valid()) {
617 w.writeStopGradient(
"Grad", *stopGradient);
620 w.writeUnitFloat(
"Angl",
"#Ang", gradientOverlay->
angle());
624 w.writeBoolean(
"Rvrs", gradientOverlay->
reverse());
626 w.writeUnitFloat(
"Scl ",
"#Prc", gradientOverlay->
scale());
630 w.writeBoolean(
"Dthr", gradientOverlay->
dither());
638 w.enterDescriptor(
"patternFill",
"",
"patternFill");
642 w.writeUnitFloat(
"Opct",
"#Prc", patternOverlay->
opacity());
647 w.writeUnitFloat(
"Scl ",
"#Prc", patternOverlay->
scale());
649 w.writePhasePoint(
"phase", patternOverlay->
patternPhase());
656 w.enterDescriptor(
"FrFX",
"",
"FrFX");
664 w.writeUnitFloat(
"Opct",
"#Prc", stroke->
opacity());
666 w.writeUnitFloat(
"Sz ",
"#Pxl", stroke->
size());
669 w.writeColor(
"Clr ", stroke->
color());
675 if (segmentGradient && segmentGradient->
valid()) {
676 w.writeSegmentGradient(
"Grad", *segmentGradient);
677 }
else if (stopGradient && stopGradient->
valid()) {
678 w.writeStopGradient(
"Grad", *stopGradient);
680 warnKrita <<
"WARNING: Stroke: Unknown gradient type!";
681 w.writeColor(
"Clr ", stroke->
color());
684 w.writeUnitFloat(
"Angl",
"#Ang", stroke->
angle());
687 w.writeBoolean(
"Rvrs", stroke->
reverse());
688 w.writeUnitFloat(
"Scl ",
"#Prc", stroke->
scale());
692 w.writeBoolean(
"Dthr", stroke->
dither());
698 w.writeUnitFloat(
"Scl ",
"#Prc", stroke->
scale());
1053 QMap<QString, psd_technique_type> fillTechniqueMap;
1083 QMap<QString, psd_glow_source> glowSourceMap;
1125 QMap<QString, psd_gradient_style> gradientStyleMap;
1150 QMap<QString, psd_stroke_position> strokeStyleMap;
1156 QMap<QString, psd_fill_type> strokeFillType;
1194 QMap<QString, psd_technique_type> bevelTechniqueMap;
1200 QMap<QString, psd_bevel_style> bevelStyleMap;
1218 QMap<QString, psd_direction> bevelDirectionMap;