среда, 7 января 2009 г.

Что идёт не так, если вы добавляете "Copy To" в контекстное меню

Это перевод What goes wrong when you add "Copy To" to the context menu. Автор: Реймонд Чен.
Lockergnome ошибочно подсказали людям вот эту страничку, на которой говориться (среди прочих вещей) о добавлении команды "Copy To" ("Копировать в") в контекстное меню. Я подумывал, не добавить ли этот трюк (tweak) в Tweak UI, но теперь решительно против него. И вот почему:
Команды "Copy to Folder" и "Move to Folder" ("Копировать в папку" и "Переместить в папку") не были предназначены для работы в контекстном меню. Их планировалось использовать только в тулбаре Проводника (щёлкните правой по тулбару своего Проводника и выберите "Настроить...", затем выберите "Переместить в" и "Копировать в" из списка доступных кнопок слева). Если вы добавите их в контекстное меню, то вы можете заметить, что диалоги "Копировать в" и "Переместить в" начинают показываться в моменты, когда вы совершенно их не ждёте - например, при двойном щелчке на вложении в Outlook.

Причина заключается в том, что эти два пункта являются слишком жадными. Когда вы спрашиваете их "А ты обрабатываешь команду <X>?", они говорят "О, да! Это моя!". Это нормально работает в тулбаре, потому что вопрос "Ты обрабатываешь команду <X>?" задаётся им только когда пользователь щёлкает по их же кнопке. Но в контекстном меню их спрашивают горазо чаще и с различными значениями X.

Поэтому, когда Outlook запускает вложение, оболочка (shell) загружает обработчики контекстного меню и спрашивает каждого: "это ты обрабатываешь команду Open?". Пункт "Удалить" говорит: "Неа, извини". Так же говорят и "Вырезать" и "Отправить в" и "Общий доступ и безопастность". Но команда "Копировать в" счастливо кричит: "Да-да! Это моя команда!".

И тогда появляется диалог "Копировать в", когда вы его совершенно не ждёте.
Это пример того, что может произойти, когда вы берёте какой-то объект и используете его в ситуации, для которой он не разрабатывался.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.