Bladeren bron

debug image diff

Unknown 6 jaren geleden
bovenliggende
commit
e26d66b02e
2 gewijzigde bestanden met toevoegingen van 39 en 6 verwijderingen
  1. 3 3
      lazpaint/uimage.pas
  2. 36 3
      lazpaint/uimagediff.pas

+ 3 - 3
lazpaint/uimage.pas

@@ -727,7 +727,7 @@ begin
       prevAction := TObject(FUndoList[FUndoPos]) as TCustomImageDifference;
       if IsInverseImageDiff(AUndoAction,prevAction) then
       begin
-        writeln('Inverse');
+        //writeln('Inverse');
         AUndoAction.Free;
         FCurrentState.saved := prevAction.SavedBefore;
         Dec(FUndoPos);
@@ -739,7 +739,7 @@ begin
         AUndoAction.Free;
         If prevAction.IsIdentity then
         begin
-          writeln('Inverse (combine)');
+          //writeln('Inverse (combine)');
           FCurrentState.saved := prevAction.SavedBefore;
           Dec(FUndoPos);
           ClearUndoAfter;
@@ -757,7 +757,7 @@ begin
       FUndoList.Add(AUndoAction);
       inc(FUndoPos);
     end;
-    writeln(AUndoAction.ToString);
+    //writeln(AUndoAction.ToString);
     FCurrentState.saved := AUndoAction.SavedAfter;
     CompressUndoIfNecessary;
   end;

+ 36 - 3
lazpaint/uimagediff.pas

@@ -1965,9 +1965,42 @@ end;
 function TImageLayerStateDifference.ToString: ansistring;
 begin
   Result:= ClassName+'(';
-  If ChangeImageLayer then result += 'ImageLayer ';
-  If ChangeSelectionMask then result += 'SelectionMask ';
-  If ChangeSelectionLayer then result += 'SelectionLayer ';
+  If ChangeImageLayer then
+  begin
+    if (imageDiff.SizeBefore.cx = 0) or (imageDiff.SizeBefore.cy = 0) then
+      result += 'Create'
+    else
+    if (imageDiff.SizeAfter.cx = 0) or (imageDiff.SizeAfter.cy = 0) then
+      result += 'Remove'
+    else
+      result += 'Change';
+
+    result += 'ImageLayer ';
+  end;
+  If ChangeSelectionMask then
+  begin
+    if (selectionMaskDiff.SizeBefore.cx = 0) or (selectionMaskDiff.SizeBefore.cy = 0) then
+      result += 'Create'
+    else
+    if (selectionMaskDiff.SizeAfter.cx = 0) or (selectionMaskDiff.SizeAfter.cy = 0) then
+      result += 'Remove'
+    else
+      result += 'Change';
+
+    result += 'SelectionMask ';
+  end;
+  If ChangeSelectionLayer then
+  begin
+    if (selectionLayerDiff.SizeBefore.cx = 0) or (selectionLayerDiff.SizeBefore.cy = 0) then
+      result += 'Create'
+    else
+    if (selectionLayerDiff.SizeAfter.cx = 0) or (selectionLayerDiff.SizeAfter.cy = 0) then
+      result += 'Remove'
+    else
+      result += 'Change';
+
+    result += 'SelectionLayer ';
+  end;
   if nextSelectionTransform<>prevSelectionTransform then result += 'SelectionTransform ';
   result := trim(Result)+')';
 end;