|
105 | 105 | (* ADD: REST Server *) |
106 | 106 | (* FIX: did not refresh folder if subfolder was deleted *) |
107 | 107 | (* FIX: copying empty subfolders did not work *) |
| 108 | +(* FIX: crash, when a file in folder is deleted while a *) |
| 109 | +(* file is renamed that is "later" in that folder *) |
108 | 110 | (* *) |
109 | 111 | (******************************************************************************) |
110 | 112 | (* Silk icon set 1.3 used *) |
|
1117 | 1119 | End; |
1118 | 1120 | // F2 = Rename |
1119 | 1121 | If key = VK_F2 Then Begin |
| 1122 | +{$IFDEF Linux} |
| 1123 | + // Löscht man den Key nicht, dann kommt bei einer "Händischen" Eingabe der Dialog doppelt, da scheint wohl was mit der Key weiterleitung im Argen zu sein. |
| 1124 | + key := 0; |
| 1125 | +{$ENDIF} |
1120 | 1126 | w := ''; |
1121 | | - For i := 0 To aListview.Items.Count - 1 Do Begin |
| 1127 | + i := 0; |
| 1128 | + While i < aListview.Items.Count Do Begin |
1122 | 1129 | If aListview.Items[i].Selected Then Begin |
1123 | 1130 | aListview.Items[i].Selected := false; |
1124 | 1131 | If aListview.Items[i].Caption = '[..]' Then Continue; |
1125 | 1132 | s := aListview.Items[i].caption; |
| 1133 | + u := s; |
1126 | 1134 | If pos('(', aListview.Items[i].SubItems[SubItemIndexSize]) = 1 Then Begin |
1127 | 1135 | // Hier wird ein Verzeichnis umbenannt -> Muss nichts weiter gemacht werden. |
1128 | 1136 | End |
|
1136 | 1144 | * Anscheinend gibt es kein RenameDirectory das geht auch so .. |
1137 | 1145 | *) |
1138 | 1146 | If RenameFileUTF8(aView^.aDirectory + s, aView^.aDirectory + t) Then Begin |
| 1147 | + // Wir müssen den Eintrag erneut suchen, da die Inputbox "Zeit" verbraucht in der sich die Listview z.B. durch einen Löschjob ändern kann |
| 1148 | + i := aListview.Items.Count; |
| 1149 | + For j := 0 To aListview.Items.Count - 1 Do Begin |
| 1150 | + If aListview.Items[j].caption = u Then Begin |
| 1151 | + i := j; |
| 1152 | + break; |
| 1153 | + End; |
| 1154 | + End; |
| 1155 | + If i = aListview.Items.Count Then exit; // Der Eintag konnte nicht mehr gefunden werden -> Abbruch |
1139 | 1156 | If pos('(', aListview.Items[i].SubItems[SubItemIndexSize]) = 1 Then Begin |
1140 | 1157 | // Hier wird ein Verzeichnis umbenannt |
1141 | 1158 | aListview.Items[i].caption := t; |
|
1151 | 1168 | End; |
1152 | 1169 | End; |
1153 | 1170 | End; |
| 1171 | + inc(i); |
1154 | 1172 | End; |
1155 | 1173 | // Es wurde etwas umbenannt -> Die Verzeichnisse müssen neu geladen werden |
1156 | 1174 | If w <> '' Then Begin |
|
0 commit comments