LINUX.ORG.RU
ФорумTalks

Документ не сохранён! Сохранить, отклонить, отмена?

 


0

1

Может, глупость говорю, но почему нельзя при закрытии программы с несохранённым документом просто закрывать её безо всяких вопросов, а при следующем открытии просто восстанавливать состояние на момент закрытия, в том числе и тот несохранённый документ? Почему в моём линуксе так не делают, а везде лепят этот тупой вендодиалог? Ну и апофеоз юзабилити: http://ompldr.org/vaGtrcQ. Угадайте с трёх раз, в каком Тру Редакторе это чудо? Почему?

Перемещено hibou из general

Может, глупость говорю, но почему нельзя при закрытии программы с несохранённым документом просто закрывать её безо всяких вопросов, а при следующем открытии просто восстанавливать состояние на момент закрытия, в том числе и тот несохранённый документ?

Напоминает новость про макинтош и их желание отказаться от сохранения вообще

Siado ★★★★★
()
Ответ на: комментарий от RCV

Слишком ограниченный выбор. Хочу ещё возможность отправить документ на email, распечатать его, открыть для редактирования в другой программе, скопировать на флешку и выключить компьютер.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Если так хотите, то наверняка это можно сделать. Я не знаю как, т.к. для меня закрывать Emacs - грех.

RCV ★★★★
()
Ответ на: комментарий от quiet_readonly

Рука пенсионера с артритом не на такое способна

Пенсионер с артритом давно удвоил себе шрифт и снизил чувствительность мыши. Так что мимо кассы. Кроме того, конструкция диалога такова, что там не надо возить мышкой. Сохранить файл? Кнопка «Да», как самая безопасная, уже выбрана, и мышь стоит на ней по умолчанию - есть такие настройки.

Я уж не говорю о том, что элементарно можно записать изменённую версию и сохранить куда-то к себе именно старую версию, либо просто сохранить сериализованную историю Do/Undo.

Разделять данные и программу. Весь твой поток бреда про «версии» и «undo» это околопрограммистская херня, порожденная потоком больного сознания.

Есть одно простое правило - ЕСЛИ ПРИ ЗАПУСКЕ ПРОГРАММЫ ОНА ОТКРЫВАЕТ КАКОЙ-ТО ФАЙЛ, ОНА ДОЛЖНА ПОКАЗАТЬ ИМЕННО ТО ЧТО ЕСТЬ В ФАЙЛЕ. Без всякой «сериализованой do/huydo». И если она открывает файл для которого есть какие-то «апдейты» и «изменения», программа должна сообщить «Есть изменения которые когда-то делались, но не сохранились в файле, что с ними сделать?».

Никогда не решать за пользователя. Максимум что ты можешь - предложить наиболее разумный вариант «по умолчанию».

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Разделять данные и программу. Весь твой поток бреда про «версии» и «undo» это околопрограммистская херня

Если вы начали обсуждать подробности реализации, то чего вы ещё ждали, кроме программирования?

Вижу кучу выдумок и попытку хоть как-то натянуть фанатизм по части диалогов на ускользающую реальность.

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 2)
Ответ на: комментарий от quiet_readonly

ойаа? «приведите мне пример, но только без примера» у гономеров было достаточно времени на продумывание — палками никто никуда не гонит, дедлайнов нет. и эти придурки напродумывались до того, что в 3м гономе даже шрифты (!) и тему нельзя сменить штатными средствами.

thunar ★★★★★
()

Вдруг при закрытии твой редактор сделает segmentation fault, и ты уже не будешь знать в каких документах правки сохранились, а в каких нет.

wintrolls ☆☆
()
Ответ на: комментарий от quiet_readonly

«Мужчина, вы не видите у нас обед если трудно взять справку по месту жительства, то менять паспорт вам ещё рано, ждите пока вас полиция задержит и решит вопрос без вас».

Вот какую фантастику пишут плюсовики! Это может быть в ваших нерезиновсках так, а в провинциях теперь на должностях паспортисток куча народа, максимум из того что можно выжать из штата, и маловато-то клиентов. И ты уж поверь, они рады любому новому клиенту с бабками и даже предложат оплатить при получении паспорта через терминал с карточки в этом же помещении со словами: а у нас за платёж не берут комиссионных. Ты только побольше услуг закажи чтобы им была работа - крысис очень странная штука.

Napilnik ★★★★★
()
Ответ на: комментарий от no-dashi

Потому, что однажды кто-то изменит документ, закроет текстовый процессор, который НЕ СОХРАНИЛ изменения, и отправит НЕИСПРАВЛЕННЫЙ документ. И тогда начнутся разборки, он откроет текстовый процессор, в котором ВНЕЗАПНО!!! новый текст.

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

marvin_yorke ★★★
()

при следующем открытии просто восстанавливать состояние на момент закрытия,

Чтоб если программа таки заглючит, вылечить её стандартным приёмом было бы невозможно?

Miguel ★★★★★
()
Ответ на: комментарий от marvin_yorke

Потому, что однажды кто-то изменит документ, закроет текстовый процессор, который НЕ СОХРАНИЛ изменения, и отправит НЕИСПРАВЛЕННЫЙ документ. И тогда начнутся разборки, он откроет текстовый процессор, в котором ВНЕЗАПНО!!! новый текст.

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

В результате и получится, что кто-то изменил документ, закрыл текстовый процессор, который НЕ СОХРАНИЛ изменения, и отправил НЕИСПРАВЛЕННЫЙ документ. Потом начнутся разборки, он откроет текстовый процессор, в котором ВНЕЗАПНО!!! новый текст.

Miguel ★★★★★
()
Ответ на: комментарий от marvin_yorke

само собой он должен сохранять не документ (там же, откуда он был открыт), а состояние редактирования.

Это ты пользователю будешь объяснять про «состояние редактирования», потому что когда пользователь (любой!) запускает текстовый процессор и видит в заголовке C:\Documents\ОченьВажныйОтчёт.doc, он считает что это именно содержимое файла, а не «состояние редактирования».

И пользователь прав. А «знаток UI» говно.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Поэтому решение только одно — автоматическое сохранение + vcs.

geekless ★★
()
Ответ на: комментарий от marvin_yorke

Охренеть просто. Перенес состояние из того места, где пользователь его может увидеть и обработать («Документ не сохранён. Сохранить/Отклонить/Отмена») туда, где он его никогда не заметит вообще (в маленький мессадж в заголовке).

Ты вообще понимаешь, что источником проблемы является сам факт наличия состояния? Спрятав состояние, ты только глуюже спрячешь проблему, а не решишь её.

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

Юзабилитисты, блин. Вот такие дубы Гном и проектируют.

geekless ★★
()

Может, глупость говорю, но почему нельзя при закрытии программы с несохранённым документом просто закрывать её безо всяких вопросов

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

drBatty ★★
()
Ответ на: комментарий от quiet_readonly

Я солидарен с теми, кто аргументировал после моего последнего сообщения, повторятся не хочу.

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от geekless

я как бы никому решения свои не навязываю, в отличие от гноморазрабов и специалистом UI/UX себя не позиционирую, так что претензии не обоснованы

marvin_yorke ★★★
()
Ответ на: комментарий от geekless

И единственный метод решения - автосохранение документа всегда.

Даже когда документ не проходит проверку синтаксиса?

baverman ★★★
()
Ответ на: комментарий от geekless

Честно говоря, насрать на пользователей, но в snaked сделал так:

* никаких вопросов

* сохранение только по C-s и только если файл проходит syntax check, так как автоматическое ломает разработческие серверы, которые следят за ФС.

* При закрытии редактора, не сохраненные изменения сбрасываются в *.bak

* При открытии файла, с существующим *.bak, загружается измененная версия, а в историю undo/redo запихивается оригинальная, чтоб можно было откатиться.

Как бы все, никаких диалогов для дебилов, и полный контроль над происходящим.

baverman ★★★
()
Ответ на: комментарий от baverman

* При закрытии редактора, не сохраненные изменения сбрасываются в *.bak

Ты сделал мой день. Может следовало этот костыль назвать хотя бы *.fwd? :}

geekless ★★
()
Ответ на: комментарий от geekless

Какие проблемы-то?

Прозреваю, ты никогда не работал с dev-серверами (которые программы). Ну да ладушки, твое мнение по этому поводу может быть любым пока сам не столкнешься.

baverman ★★★
()
Ответ на: комментарий от geekless

Ну вот представляешь, похерил юзер файл

Что значит похерил? Похерил и сохранил? Никакого *.bak он тогда не увидит, селяви :}

baverman ★★★
()
Ответ на: комментарий от baverman

Ты во-первых рассуждаешь о инструменте для другой ниши, а во во-вторых при распрсотранении такой модели работы с данными, подход был бы совсем иным. Так у тебя по сути в оперативе сидит отдельная working copy с историей правок, которую ты коммитишь в файл время от времени. В случае рассматривемого редактора, у тебя было бы отдельное дерево в котором ты правишь данные, и отдельное - в которое ты их коммитишь для запуска/тестирования. Коммит заменял бы тебе Ctrl-S как раз. И работал бы не пофайлово, а обеспечивал целостность транзакции на уровне всего дерева.

Почему я тут объяснением очеивдных вещей занимаюсь сейчас? Вроде умный мужик, сам должен воображение включать.

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от baverman

Еще раз повторю: твоё использование этого суффикса конфликтует с общепринятым.

geekless ★★
()
Ответ на: комментарий от geekless

facepalm. Очень сильно напоминает картинку про дерево и качели. Сколько технологий, а всё ради того чтоб сохранить сраные изменения в сраный файл. Мой подход идеально работает, причем реализован предельно (предельно!) просто.

Это хорошо, что я твоих тем с фантазиями не читаю, наверняка там такая же феерия.

baverman ★★★
()
Ответ на: комментарий от baverman

Сколько технологий, а всё ради того чтоб сохранить сраные изменения в сраный файл.

Разупорись. Разработчик пользуется VCS? Пользуется. Какого тебе еще надо, какие, мать их, «технологии»? Или не используешь VCS при разработке? Иди тогда из профессии уже куда-нибудь.

Мой подход идеально работает, причем реализован предельно (предельно!) просто.

Работает? Когда юзер открывает файл file.sh и видит вместо него file.sh.bak? Охеренно работает, чо. А почему бы сразу не /tmp/somerandomname или http://ya.ru/ Смысла не больше.

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от baverman

Очень сильно напоминает картинку про дерево и качели.

Воистину, лол. Чего хотел юзер: избавиться от состояния «файл не сохранён». Как реализовали: молча открываем какой-то левый файл вместо указанного.

geekless ★★
()
Ответ на: комментарий от geekless

Разработчик пользуется VCS?

Ты делаешь коммит на каждое изменение? o_O. Лично для меня, как и для большинства вменяемых разработчиков, история коммитов это связный рассказ, а не портянка с бредом (fix, fix, fix).

Когда юзер открывает файл file.sh и видит вместо него file.sh.bak?

Nope. Он видит file.sh, каким он был в последний раз.

baverman ★★★
()
Последнее исправление: baverman (всего исправлений: 1)
Ответ на: комментарий от geekless

Как реализовали: молча открываем какой-то левый файл вместо указанного.

Открываем тот же файл.

baverman ★★★
()
Ответ на: комментарий от baverman

Ты делаешь коммит на каждое изменение? o_O.

Ctrl-S — это коммит из рабочей копии, находящкейся в ОЗУ, в файл. Повторять, пока смысл не дойдёт.

Лично для меня, как и для большинства вменяемых разработчиков, история коммитов это связанный рассказ, а не портянка с бредом (fix, fix, fix).

У тебя в edit -> undo/redo связанный рассказ? Нельзя столько пить, ох нельзя...

Nope. Он видит file.sh, каким он был в последний раз.

cat file.sh, ну ты понял

geekless ★★
()
Ответ на: комментарий от geekless

Ctrl-S — это коммит из рабочей копии, находящкейся в ОЗУ, в файл.

Ты так скоро до ручки дойдешь, смотри, простое сохранение коммитом обозвать, да еще и из рабочей копии в ОЗУ.

У тебя в edit -> undo/redo связанный рассказ?

Золотые слова! Именно поэтому версионирование изменений при редактировании — полный булшит.

cat file.sh, ну ты понял

Ты похоже забыл, что мне насрать на других пользователей, а это, между прочим, были ключевые слова.

baverman ★★★
()
Ответ на: комментарий от baverman

Именно поэтому версионирование изменений при редактировании — полный булшит.

undo ненужно, так и говори.

Ты похоже забыл, что мне насрать на других пользователей, а это, между прочим, были ключевые слова.

Добро пожаловать в команду разработчиков Gnome, чо.

geekless ★★
()
Ответ на: комментарий от geekless

undo ненужно, так и говори.

Очень печально, что история изменений у тебя эквивалентна undo/redo.

Добро пожаловать в команду разработчиков Gnome, чо.

На них мне тоже насрать, сам не сделаешь — никто не сделает.

baverman ★★★
()

А хранить для каждого файла свои дельты на диске нод хватит?

fbiagent ★★★
()
Ответ на: комментарий от baverman

Очень печально, что история изменений у тебя эквивалентна undo/redo.

Очень печально, что до тебя не доходит, что перемещение undo/redo из приложения в файловую систему абсолютно ничего не меняет в картине мира. Как было у тебя две сущности: «то, что правится» и «то, что сохраняется», так и осталось. Уйдёт только дебильное ограничение «ой, у меня упал gimp, где мои последние 10 минут работы?», потому что обе сущности будут представлены в персистентном хранилище.

Впрочем, вру - не «очень печально». На самом деле мне пофиг.

На них мне тоже насрать, сам не сделаешь — никто не сделает.

А херли ты лезешь со своими личными костылями в тред, где обсуждают юзабилити решений, предназначенных для массового использования?

geekless ★★
()
Ответ на: комментарий от geekless

где обсуждают юзабилити решений, предназначенных для массового использования?

Персистентное хранилище с контролем версий.

предназначенных для массового использования

facepalm².

baverman ★★★
()
Ответ на: комментарий от geekless

Ты про time machine? Угу, знаю как оно используется массами.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.