View Issue Details

IDProjectCategoryView StatusLast Update
0001966Double CommanderFile operationspublic2021-10-29 23:21
Reportercordylus Assigned ToAlexx2000  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
ProjectionnoneETAnone 
Product Version0.8.0 
Target Version0.9.0Fixed in Version0.9.0 
Summary0001966: Wrong file is renamed if the original file was deleted after the start of rename
DescriptionIt renames the file under cursor and that is changed behind the edit field
TagsNo tags attached.
Fixed in Revision8636-8637
Operating system
Widgetset
Architecture

Activities

cordylus

2017-12-18 09:35

developer   ~0002436

Вопрос, как это лучше реализовать.

Если запоминать путь к файлу в начале переименования, то в конце не удастся переименовать файл, который был переименован снаружи во что-то еще за время переименования (сейчас - можно). И есть риск переименовать другой файл, а не тот, на который мы смотрим, если под именем старого будет сохранен новый за то же время.
Это было бы не страшно, но поле переименования ездит за активным файлом, а значит, предполагает, что переименован будет именно он.

Можно было бы оставить переименование за активным файлом, но прятать поле, если файл был удален, а не переименован. Но я не нашел возможности отслеживать изменение текущего файла - OnChangeActiveFile при удалении не срабатывает, т.к. он запускается только из DoFileIndexChanged, а индекс при этом фактически не меняется. Возможно, стоит этот момент исправить?

И третий вариант - в DisplayFileListChanged отлавливать изменение имени файла под курсором и в таком случае отменять переименование. это захватит события как удаления, так и внешнего переименования текущего файла.

cordylus

2017-12-22 01:20

developer   ~0002458

Правильно ли я понимаю, что разбросанные по uFileView комменты следующего вида значат, что надежного события смены файла действительно нет? Но статусная строка как-то же обновляется даже после удаления файла...

    // TODO: move this call to some generic place that is called
    // ALWAYS when currently selected file is changed

kmvan

2018-07-29 05:07

reporter   ~0002704

Maybe looks like https://doublecmd.sourceforge.io/forum/viewtopic.php?f=5&t=4471&p=24279#p24279

Alexx2000

2019-02-03 12:00

administrator   ~0003023

Реализовал третий вариант.

Issue History

Date Modified Username Field Change
2017-12-18 08:32 cordylus New Issue
2017-12-18 09:35 cordylus Note Added: 0002436
2017-12-22 01:20 cordylus Note Added: 0002458
2018-07-29 05:07 kmvan Note Added: 0002704
2019-02-03 01:32 Alexx2000 Status new => confirmed
2019-02-03 01:32 Alexx2000 Target Version => 0.9.0
2019-02-03 12:00 Alexx2000 Fixed in Revision => 8636
2019-02-03 12:00 Alexx2000 Note Added: 0003023
2019-02-03 12:00 Alexx2000 Status confirmed => resolved
2019-02-03 12:00 Alexx2000 Resolution open => fixed
2019-02-03 12:00 Alexx2000 Assigned To => Alexx2000
2019-02-03 12:07 Alexx2000 Fixed in Revision 8636 => 8636-8637
2019-02-03 12:07 Alexx2000 Fixed in Version => 0.9.0
2021-10-29 23:21 Alexx2000 Status resolved => closed