1031 |
1031 |
1032 "Modified: / 17-03-2004 / 12:42:02 / cg" |
1032 "Modified: / 17-03-2004 / 12:42:02 / cg" |
1033 ! |
1033 ! |
1034 |
1034 |
1035 deleteFiles:colOfFiles confirm:confirm |
1035 deleteFiles:colOfFiles confirm:confirm |
1036 |resources answer nFilesToDelete ask labels values fileTypeString msg lbls vals dontAskForNonEmptyDirectory| |
1036 |resources answer nFilesToDelete ask labels values fileTypeString msg lbls vals dontAskForNonEmptyDirectory |
|
1037 nFilesDone| |
1037 |
1038 |
1038 dontAskForNonEmptyDirectory := false. |
1039 dontAskForNonEmptyDirectory := false. |
1039 ask := confirm. |
1040 ask := confirm. |
1040 resources := AbstractFileBrowser classResources. |
1041 resources := AbstractFileBrowser classResources. |
1041 |
1042 |
1042 nFilesToDelete := colOfFiles size. |
1043 nFilesToDelete := colOfFiles size. |
|
1044 nFilesDone := 0. |
1043 colOfFiles do:[:filenameOrString | |
1045 colOfFiles do:[:filenameOrString | |
1044 |filename doDelete skip| |
1046 |filename doDelete skip| |
1045 |
1047 |
1046 filename := filenameOrString asFilename. |
1048 filename := filenameOrString asFilename. |
1047 |
1049 skip := false. |
1048 skip := false. |
1050 fileTypeString := ''. |
1049 fileTypeString := ''. |
1051 filename isSymbolicLink ifTrue:[ |
1050 filename isSymbolicLink ifTrue:[ |
1052 fileTypeString := 'symbolic link '. |
1051 fileTypeString := 'symbolic link '. |
1053 ] ifFalse:[ |
1052 ] ifFalse:[ |
1054 filename exists ifFalse:[ |
1053 filename exists ifFalse:[ |
1055 (Dialog |
1054 (Dialog |
1056 confirm:('%1 does not exist.' bindWith:filename asString allBold) |
1055 confirm:('%1 does not exist.' bindWith:filename asString allBold) |
1057 yesLabel:(resources string:'Proceed') |
1056 yesLabel:(resources string:'Proceed') |
1058 noLabel:(resources string:'Cancel')) |
1057 noLabel:(resources string:'Cancel')) |
1059 ifFalse:[ |
1058 ifFalse:[ |
1060 ^ self. |
1059 ^ self. |
1061 ]. |
1060 ]. |
1062 skip := true. |
1061 skip := true. |
1063 ] |
1062 ] |
1064 ]. |
1063 ]. |
1065 skip ifFalse:[ |
1064 skip ifFalse:[ |
1066 ask ifTrue:[ |
1065 ask ifTrue:[ |
1067 nFilesToDelete = 1 ifTrue:[ |
1066 nFilesToDelete = 1 ifTrue:[ |
1068 labels := #('No' 'Yes'). |
1067 labels := #('No' 'Yes'). |
1069 values := #(#no #yes). |
1068 values := #(#no #yes). |
1070 ] ifFalse:[ |
1069 ] ifFalse:[ |
1071 labels := #('Cancel' 'No' 'Yes' 'Yes to All' ). |
1070 labels := #('Cancel' 'No' 'Yes' 'Yes to All' ). |
1072 values := #(#cancel #no #yes #yesToAll). |
1071 values := #(#cancel #no #yes #yesToAll). |
1073 ]. |
1072 ]. |
1074 msg := self isErase ifTrue:'Really erase' ifFalse:'Really delete'. |
1073 msg := self isErase ifTrue:'Really erase' ifFalse:'Really delete'. |
1075 msg := msg , |
1074 msg := msg , |
1076 (nFilesToDelete = 1 |
1075 (nFilesToDelete = 1 |
1077 ifTrue:'\\%1%2 ?' |
1076 ifTrue:'\\%1%2 ?' |
1078 ifFalse:'\\%1%2 \\(%3 files alltogether)'). |
1077 ifFalse:'\\%1%2 \\(%3 files alltogether)'). |
1079 answer := Dialog |
1078 answer := Dialog |
1080 confirmWithCancel:(resources |
1079 confirmWithCancel:(resources |
1081 stringWithCRs:msg |
1080 stringWithCRs:msg |
1082 with:fileTypeString |
1081 with:fileTypeString |
1083 with:(filename asString allBold) |
1082 with:(filename asString allBold) |
1084 with:nFilesToDelete) |
1083 with:nFilesToDelete) |
1085 labels:(resources array:labels) |
1084 labels:(resources array:labels) |
1086 values:values |
1085 values:values |
1087 default:(values indexOf:#yes). |
1086 default:(values indexOf:#yes). |
1088 ] ifFalse:[ |
1087 ] ifFalse:[ |
1089 answer := #yesToAll. |
1088 answer := #yesToAll. |
1090 ]. |
1089 ]. |
1091 |
1090 |
1092 answer == #cancel ifTrue:[ |
1091 answer == #cancel ifTrue:[ |
1093 ^ self. |
1092 ^ self. |
1094 ]. |
1093 ]. |
1095 |
1094 |
1096 answer == #yesToAll ifTrue:[ |
1095 answer == #yesToAll ifTrue:[ |
1097 ask := false. |
1096 ask := false. |
1098 answer := #yes. |
1097 answer := #yes. |
1099 ]. |
1098 ]. |
1100 |
1099 |
1101 answer == #yes ifTrue:[ |
1100 answer == #yes ifTrue:[ |
1102 doDelete := true. |
1101 doDelete := true. |
1103 filename isSymbolicLink ifFalse:[ |
1102 filename isSymbolicLink ifFalse:[ |
1104 dontAskForNonEmptyDirectory ifFalse:[ |
1103 dontAskForNonEmptyDirectory ifFalse:[ |
1105 filename isNonEmptyDirectory ifTrue:[ |
1104 filename isNonEmptyDirectory ifTrue:[ |
1106 colOfFiles size == 1 ifTrue:[ |
1105 colOfFiles size == 1 ifTrue:[ |
1107 lbls := #('Cancel' 'Remove'). |
1106 lbls := #('Cancel' 'Remove'). |
1108 vals := #(false true). |
1107 vals := #(false true). |
1109 ] ifFalse:[ |
1108 ] ifFalse:[ |
1110 lbls := #('Cancel All' 'Keep' 'Remove' 'Remove All'). |
1109 lbls := #('Cancel All' 'Keep' 'Remove' 'Remove All'). |
1111 vals := #(nil false true #removeAll). |
1110 vals := #(nil false true #removeAll). |
1112 ]. |
1111 ]. |
1113 doDelete := Dialog |
1112 doDelete := Dialog |
1114 confirmWithCancel:(resources |
1113 confirmWithCancel:(resources |
1115 stringWithCRs:'Directory ''%1'' is not empty\remove anyway ?' |
1114 stringWithCRs:'Directory ''%1'' is not empty\remove anyway ?' |
1116 with:filename pathName allBold) |
1115 with:filename pathName allBold) |
1117 labels:( resources array:lbls ) |
1116 labels:( resources array:lbls ) |
1118 values:vals |
1117 values:vals |
1119 default:(vals indexOf:true). |
1118 default:(vals indexOf:true). |
1120 doDelete == nil ifTrue:[ |
1119 doDelete == nil ifTrue:[ |
1121 ^ self |
1120 ^ self |
1122 ]. |
1121 ]. |
1123 doDelete == #removeAll ifTrue:[ |
1122 doDelete == #removeAll ifTrue:[ |
1124 dontAskForNonEmptyDirectory := true. |
1123 dontAskForNonEmptyDirectory := true. |
1125 doDelete := true. |
1124 doDelete := true. |
1126 ]. |
1125 ]. |
1127 ]. |
1126 ]. |
1128 ]. |
1127 ]. |
1129 ]. |
1128 ]. |
1130 doDelete ifTrue:[ |
1129 doDelete ifTrue:[ |
1131 ProgressNotification progressPercentage:(nFilesDone / nFilesToDelete)*100. |
1130 self deleteFile:filename. |
1132 self deleteFile:filename. |
1131 ] |
1133 nFilesDone := nFilesDone + 1. |
1132 ]. |
1134 ProgressNotification progressPercentage:(nFilesDone / nFilesToDelete)*100. |
1133 ]. |
1135 ] |
1134 ]. |
1136 ]. |
1135 |
1137 ]. |
1136 "Modified: / 05-09-2006 / 11:52:35 / cg" |
1138 ]. |
|
1139 |
|
1140 "Modified: / 11-10-2010 / 13:08:20 / cg" |
1137 ! ! |
1141 ! ! |
1138 |
1142 |
1139 !FileOperation::Erase methodsFor:'actions-basic'! |
1143 !FileOperation::Erase methodsFor:'actions-basic'! |
1140 |
1144 |
1141 eraseFilesContentsBeforeRemoving:file |
1145 eraseFilesContentsBeforeRemoving:file |