Два варианта Undo

Jun 15, 2014 14:14

А вот скажите, люди. В разных программах по-разному работает отмена последней команды (Undo ( Read more... )

опрос, scoring application, undo

Leave a comment

Comments 10

kivagant June 15 2014, 17:43:35 UTC
Если есть стопроцентная гарантия, что команда ничего не меняла - то хорошо, чтобы она не записывалась в историю. Если гарантия 99,9% - то лучше записывать. Вариант, например, как в MS Word, когда отправка на печать меняет историю и документ считается изменённым (вследствие чего его предлагается сохранить перед выходом) - это бред, который только пугает пользователя (он ведь ничего не менял, а тут вдруг надо что-то сохранять).

В Adobe бредово сделана история в том плане, что Ctrl+Z по-умолчанию отменяет только один шаг истории, а второе нажатие возвращает его обратно. Ничего меня так не выбешивало в их продуктах, как это.

Так что да, сохранять всё, что меняет результат, пропускать всё, что не меняет. Хранить как можно больше истории. Если выходной файл получается маленький по размеру - то всю историю правок можно вообще в этот файл и закатать, чтобы пользователь при повторном открытии ошарашенно-радостно заметил, что всё хранится и ничто не забыто.

Как-то так.

Reply

ptrue June 16 2014, 06:50:20 UTC
Спасибо. Примерно так и думал, но мне нужно было подтверждение ( ... )

Reply

kivagant June 16 2014, 06:58:10 UTC
Эксель ведёт себя разумно в этом разрезе: история не засоряется переключением вкладок и выделением ячеек, но сохранять можно сколько угодно - и эти изменения успешно записываются. Так что изменения, не модифицирующие контент, просто не отображать в истории, позволять сохранять, но не требовать этого (как ворд при печати). Это логично и удобно.

Reply


(The comment has been removed)

ptrue June 16 2014, 14:24:43 UTC
Ок, спасибо!

Reply


golger_i June 16 2014, 14:00:03 UTC
Вопрос: а что собственно записывается в историю? Только команда, или соответсрвующее ей состояние файла? То есть Undo вызывает загрузку предыдущего состояния файла, или выполнение команды, "обратной" последней?

Reply

ptrue June 16 2014, 14:27:10 UTC
Зависит от ситуации.
В тех случаях, когда можно совершить обратную команду, мы записываем команду. Если это невозможно (например, пользователь удалил всё содержимое файла. Какая команда будет обратной?), то сохраняем состояние.

В некоторых программах сохраняют так называемый "инкремент", то есть изменение, произведённое в содержимом. Но не с любым содержимым это удаётся.

Reply

golger_i June 16 2014, 16:05:12 UTC
Тогда в ситуации, когда обратная команда существует (хотя бы логически), я бы писал ее в историю, даже если файл не меняется. Потому что может быть полезно просто для того, чтобы вспомнить последовательность операций, которую, например, захотелось повторить на другом материале. А когда не существует, и файл не изменился, то не писать.
Но в любом случае меню сохранения файла пусть лучше всегда работает, даже если файл с прошлого сохранения не изменился.

Reply

ptrue June 17 2014, 10:30:54 UTC
А, ну тут вы хотите использовать кусок истории в качестве макроса, а это не совсем корректно, хотя и история и макрос состоят из одних и тех же команд. В случае если мы предоставим возможность копировать историю в макрос, то, вероятно, нам придётся записывать в историю даже операции-пустышки, поскольку, как вы совершенно справедливо заметили, в какой-то ситуации они будут пустышками, а какой-то другой -- могут что-то и выполнить.

Но, полагаю, что в любом случае копирование из истории в макросы не должно быть бездумным. Впрочем, разберёмся с этим, когда дойдём до макросов :)

Reply


niclaus June 22 2014, 09:43:46 UTC
Как мне представляется:
история бесконечная (с момента создания файла), причём в обе стороны - undo/redo, доступно восстановление состояния документа в любой точке, а не только пошагово (Photoshop)
хранить только то, что привело к реальному изменению
самое главное: история записывается в рабочий файл с тем, что бы можно было бы восстановить все действия с сохранённым файлом после закрытия программы, перезагрузки, на другом компьютере и т.д.

Reply

ptrue June 23 2014, 14:13:12 UTC
Хорошая штука. Можно сделать.
Только это получается совершенно альтернативный способ хранения файла. Переход от одного способа к другому может получиться не слишком элегантным. Ладно, посмотрим :)

Reply


Leave a comment

Up