REQ Заменить диалоги MessageBox на более удобные

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

REQ Заменить диалоги MessageBox на более удобные

Сообщение Моторокер »

Тема Сообщения об «ошибках» пользователя, юзабилити нашла своё частичное продолжение и на оффоруме:
[REQ] Replace MessageBox'es with usual dialogs

Пересказываю слова CaptainFlint, который предложил использовать более удобные диалоги, чем встроенные системные:
1. Не работают Enter и Tab в главном окне, если сообщение показано в Листере.
2. Нельзя перевести названия кнопок OK, Отмена и т.д.
3. Не работает Esc в диалоге Да-Нет
4. Нельзя добавить доп. контролы в диалог, например «Больше не показывать»
5. Нельзя шрифт настроить в Тотале, можно использовать только стандартный системный

Также по теме предложение от AlexTP использовать диалоги от JSDialog:
Use JSDialog for the MessageBox replacement

От себя предлагаю простые сообщения с одной кнопкой OK показывать в трее, как делает SM2BT или как KillOK (около трея).
Хотя можно придумать и какой-то другой механизм, например полупрозрачный баллун на месте курсора или в центре окна Тотала, сообщающий о проблеме.
Главное, чтобы простые сообщения не требовали нажатия OK.

Изображение
Add: Подправлено.
Последний раз редактировалось Моторокер Пн ноя 26, 2007 11:00, всего редактировалось 2 раза.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Моторокер писал(а):От себя предлагаю простые сообщения с одной кнопкой OK показывать в трее, как делает SM2BT или как KillOK (около трея).
От себя выражаю категорическое несогласие с таким "улучшением".
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

CaptainFlint
За более чем год использования программы такой способ показа сообщений избавил меня от огромной порции щелчков мышью и клавиатурой.
Не вижу ни одного недостатка.
У Тотала только одно сообщение, которое пока нельзя перевести в трей – «Нажмите OK по завершении работы программы» и то этот диалог можно переделать в немодальный, как делается для диалога Закрыть-В фоне.

Пусть не в трее будут, пусть в стандартном месте на фоне Тотала полупрозрачные на вид и прозрачные для щелчков, как на картинке.

Каждый опытный пользователь Тотала знает наизусть текст этих диалогов, так что без разницы где они будут выводиться или даже если вообще не будут.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Моторокер писал(а):За более чем год использования программы такой способ показа сообщений избавил меня от огромной порции щелчков мышью и клавиатурой.

Не вижу ни одного недостатка.
Я не считаю эти щелчки бессмысленными. Лично мне они необходимы. Элементарнейший пример: я отошёл от компа, и в это время выдалось сообщение. Я приду и прочитаю его. Если же оно всплывёт где-то там в трее, то долго не продержится (а заглянуть туда я в жизни не вспомню).

Во-вторых, чем мне не нравится трей: у меня панель задач слева и автоматически скрывается, чтобы и места было на экране достаточно, и кнопки приложений не становились в два пикселя шириной, когда их много. Соответственно, как только в трее появляется подсказка, панель задач сразу выезжает, закрывая значительную часть рабочей области. Уже неоднократно таким образом запускал лишние приложения, когда нужно было щёлкнуть в какой-нибудь программе слева сверху, и как раз за долю секунды до щелчка неожиданно выскакивала панель задач из-за идиотского тултипа в трее. Да ещё пока по тултипу не щёлкнешь, обратно не уедет... Просто превосходнейшая экономия щелчков получается! :evil:

В-третьих, модальные сообщения по самой своей сути имеют задачей непременно довести до сведения пользователя определённую информацию. Критическую информацию. Которая, вполне возможно, повлияет на дальнейшие действия пользователя (блондинок со стереотипом "там что-то вылезло, я что-то нажала" в расчёт не берём).
Пример: я создаю каталог и сразу после этого хочу что-то с ним делать. Если каталог создан, я сразу могу продолжать работу — переходить в него дополнительным нажатием на Enter (курсор уже на каталоге), перетаскивать туда файлы и т.д. Если же при создании каталога возникла ошибка, то модальное сообщение препятствует моим дальнейшим действиям. Если же этого сообщения нет, я уже на автомате жму, скажем, Enter для перехода в свежесозданный каталог — и оп-ля, вместо этого запускаю вредонос, который я только что просматривал и на котором установлен курсор. Ведь каталог не создался, курсор никуда не переместился.

Предвижу возражение: кто, мол, мешает не тыкать всякие кнопки на автомате, а смотреть сначала, что получилось. Мол, если бы в Тотале сразу были реализованы неблокирующие оповещения, то такой привычки и не было бы.
Отвечаю: да, привычки не было бы, но скорость работы от этого заметно бы уменьшилась. Что быстрее: два раза подряд тыкнуть на кнопку Enter, не задумываясь об этом, когда приём и обработка информации с экрана идёт параллельно, в фоновом режиме, или же сначала тыкнуть Enter, посмотреть, появился ли каталог, посмотреть, не появилось ли сообщений об ошибке, если появились — прочитать и осознать (а то, может, это какая-то другая программа из трея о чём-то своём оповещает), и только потом тыкнуть второй раз Enter для перехода в каталог?
Моторокер писал(а):Каждый опытный пользователь Тотала знает наизусть текст этих диалогов, так что без разницы где они будут выводиться или даже если вообще не будут.
Дело вовсе не в содержании диалогов. Они могут быть даже пустыми. Ключевой целью этих диалогов является информирование о нештатной ситуации и блокировка дальнейших, возможно, фатальных действий.


В качестве эпилога скажу, что я не против всяческой автоматизации и допускаю, что кто-то считает изничтожение диалогов с кнопкой OK гениальнейшей идеей и что кому-то так удобнее и привычнее работать — сколько людей, столько и мнений. Просто я лично нахожу такой вариант автоматизации крайне неудобным. А в силу последней причины — ещё и совершенно неприемлемым для такого массового продукта, как TC. Разве что каким-то неимоверно сверхсекретным ключом, чтобы не дай Бог, ни в одной сборке этот ключ не был выставлен в 1 — ведь подавляющему числу пользователей до фени, что это сборка, они ведь поднимут вой до небес. А другие послушают этот вой и не станут себе ставить Тотал или снесут уже установленный от греха подальше.
Почему же, ё-моё, ты нигде не пишешь "ё"?
GeNtlE
Сообщения: 141
Зарегистрирован: Чт дек 16, 2004 12:36
Откуда: Россия, Чита
Контактная информация:

Сообщение GeNtlE »

Моторокер писал(а):сообщения с одной кнопкой OK показывать в трее, как делает SM2BT
SM2BT с версии 0.5 уже не использует тултип для вывода сообщений, для этих целей используется собственное окно.
Не надо оговаривать SM2BT и вводить всех в заблуждение. :) Тем более, на оффоруме ТС. :wink:
Моророкер писал(а):У Тотала только одно сообщение, которое пока нельзя перевести в трей – «Нажмите OK по завершении работы программы» и то этот диалог можно переделать в немодальный, как делается для диалога Закрыть-В фоне.
И видимо есть внутренние причины, по которым это не реализовано. Я, кстати, до сих пор не понял, в каких случаях появляется это окно. Оно какое-то "интеллектуальное" или я невнимательно смотрел?
CaptainFlint писал(а):Если же оно всплывёт где-то там в трее, то долго не продержится
Продержится ровно до прихода пользователя. Другое дело, если вылезет следующее сообщение, то предыдущее "перекроется". Но это уже вопрос реализации.

В общем, моё мнение: некоторые из диалогов сообщений с ОК можно отображать ненавязчиво (типа "Нет выбранных файлов" или "Файлы одинаковы"). Ненавязчиво - ни в коем случае не в полупрозрачных окнах. Критичные же оставить в покое - на то они и критичные. Как раз этим и занимается SM2BT. Программа не должна быть умнее пользователя и автоматизации должно быть в меру.
Новые версии SM2BT здесь.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

GeNtlE писал(а):
CaptainFlint писал(а):Если же оно всплывёт где-то там в трее, то долго не продержится
Продержится ровно до прихода пользователя.
Кто-то случайно мышку двинул — "приход пользователя" произошёл.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Полностью согласен с CaptainFlint. Менять стандартные диалоги, в принципе, нужно, но никак не на всплывающие из трея сообщения. Удобен бы был вариант запросов, реализованных в FTP-клиенте SmartFTP: при каждом однотипном событии, требующем реакции пользователя, программа кроме предложения некоторого набора стандартных действий, спрашивает "а как мне вести себя в такой ситуации в следующий раз? Опять спросить, подождать, а потом продолжить, остановиться?".
Вот как-то так. Само собой, у TC автоматизировать можно далеко не всё, но мечтать не вредно.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

CaptainFlint писал(а):Я не считаю эти щелчки бессмысленными. Лично мне они необходимы. Элементарнейший пример: я отошёл от компа, и в это время выдалось сообщение. Я приду и прочитаю его.
Какие долговременные операции показывают критические сообщения?
CaptainFlint писал(а):Если же оно всплывёт где-то там в трее, то долго не продержится (а заглянуть туда я в жизни не вспомню).
Пока нет щелчков мыши, клавиатурой, окно держится. Пошла работа, окно пропало через пару сек.
CaptainFlint писал(а):неожиданно выскакивала панель задач из-за идиотского тултипа в трее.
Частный случай.
Тултип – это ведь не строго использование стандартных возможностей системы. Да и в 98 работать не будет. Их можно и самому сделать.
Вот допустим менеджер клавиатуры позволяет выбрать, где показывать OSD. Ни разу не помешало.
CaptainFlint писал(а):Да ещё пока по тултипу не щёлкнешь, обратно не уедет... Просто превосходнейшая экономия щелчков получается! :evil:
Тултип закрывается автоматом.
CaptainFlint писал(а):Если каталог создан, я сразу могу продолжать работу — переходить в него дополнительным нажатием на Enter (курсор уже на каталоге), перетаскивать туда файлы и т.д. Если же при создании каталога возникла ошибка, то модальное сообщение препятствует моим дальнейшим действиям. Если же этого сообщения нет
«Ошибка» при создании каталога – нежелание программиста найти другой подход к решению проблемы.
Показал Тотал «ошибку» и что теперь сделает пользователь? >90%, что снова нажмёт F7.
Если пользователь на каком-то этапе может выполнить только одно действие, пусть его выполнит компьютер.
Элементарно – оставляем диалог создания папки как есть, не закрывая и показываем немодальное сообщение. Например баллун вылезет со стрелкой, которая показывает на проблемный символ в имени папки.
Либо показываем его прямо во время написания имени папки – «Такая папка уже существует», «В имени папки нельзя использовать символы :" и т.д.»
Когда первые проверки прошли нормально, тут уже можно показать и расширенный диалог с админскими правами и т.д.
Понимаю, F7 – частный случай, но нормальное решение можно найти всегда. Здесь проблемы точно нет и MessageBox совершенно не нужен.
GeNtlE писал(а):Не надо оговаривать SM2BT и вводить всех в заблуждение
Пользователю без разницы внутреннее устройство программы. Сам не знал, пропустил похоже историю.
GeNtlE писал(а):И видимо есть внутренние причины, по которым это не реализовано.
Да просто программисту удобней написать ShowMessage, чем кодировать доп. функционал.
GeNtlE писал(а):Продержится ровно до прихода пользователя. Другое дело, если вылезет следующее сообщение, то предыдущее "перекроется". Но это уже вопрос реализации.
Сообщения в IM (аськах) накладываются как кирпичики друг на друга от низа экрана, если их много. Отличное решение.
GeNtlE писал(а):Ненавязчиво - ни в коем случае не в полупрозрачных окнах.
Скажем, баллун, указывающий на текущее место курсора.
А в диалоге сравнения прямо в процессе писать, отличаются ли файлы.
Если отличаются, юзер жмёт Отмена и не видит лишнего сообщения. Экономится время, системные ресурсы, уменьшается кол-во щелчов, меньше отвлекается внимание.
D1P писал(а):при каждом однотипном событии, требующем реакции пользователя, программа кроме предложения некоторого набора стандартных действий, спрашивает "а как мне вести себя в такой ситуации в следующий раз?
Тотал тоже спрашивает при F5/F6 – можно задать опции до копирования, а можно в процессе, например Заменить всё.
D1P писал(а):Менять стандартные диалоги, в принципе, нужно, но никак не на всплывающие из трея сообщения.
Гислеру давно пора подключать спецов по проектированию/юзабилити, но похоже он как программист не считает это нужным. А некоторые даже считают Тотал верхом юзабилити :)
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Моторокер писал(а):Какие долговременные операции показывают критические сообщения?
Например, сравнение файлов в диалоге синхронизации (сообщение о наличии файлов с именами, отличающимися только регистром).
Моторокер писал(а):Пока нет щелчков мыши, клавиатурой, окно держится. Пошла работа, окно пропало через пару сек.
Выше привёл пример: любой дёрг мышью — и считается, что работа пошла, хотя это мог быть совершенно незапланированный дёрг.
Моторокер писал(а):Тултип закрывается автоматом.
Через N секунд. Быстрее будет щёлкнуть, нежели ждать. А если, наоборот, исчезает сразу — то тоже недостаток, не успеешь прочитать, когда оно действительно надо.
Моторокер писал(а):«Ошибка» при создании каталога – нежелание программиста найти другой подход к решению проблемы.
Показал Тотал «ошибку» и что теперь сделает пользователь? >90%, что снова нажмёт F7.
Верно. И сделает он это именно потому, что ему вывелось сообщение, что он знает о наличии проблемы, что его ткнули носом: чувак, ты пургу гонишь. А если его не тыкать носом, если молча вывести снова тот же самый диалог F7, сколько пользователей, тупо матеря "глючный Тотал, который на Enter никак сработать не может", будут снова и снова тыкать Enter, не замечая, что у них ошибка в имени?
Моторокер писал(а):Если пользователь на каком-то этапе может выполнить только одно действие, пусть его выполнит компьютер.
Пусть. Но только так, чтобы пользователь знал, что это он ступил, а также чтобы он знал, в чём именно он ступил, и чтобы результат этого тупежа не сказался на дальнейшей работе (вспоминая мой пример с двойным нажатием Enter для перехода в свежесозданный каталог).
Моторокер писал(а):Понимаю, F7 – частный случай, но нормальное решение можно найти всегда. Здесь проблемы точно нет и MessageBox совершенно не нужен.
Не забывай приписывать в таких случаях "IMHO". Не провозглашай своё мнение за вселенскую истину. Я уже сказал выше, что не считаю такую концепцию корректной и подходящей для всех без исключения и привёл причины.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Worros
Сообщения: 1123
Зарегистрирован: Пт янв 19, 2007 18:46

Сообщение Worros »

Всецело согласен с CaptainFlintом.
Вступать в долгую и бесполезную полемику-неохота.Все,что было необходимо, уже обосновали до меня. Если Моторокера эти аргументы не убедили, думаю, нет смысла продолжать.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Моторокер писал(а):Тотал тоже спрашивает при F5/F6 – можно задать опции до копирования, а можно в процессе, например Заменить всё.
Отличие в том, что SmartFTP может запомнить такой выбор навсегда. Там вообще действительно умно сделано это.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

CaptainFlint писал(а):
Моторокер писал(а):Какие долговременные операции показывают критические сообщения?
Например, сравнение файлов в диалоге синхронизации (сообщение о наличии файлов с именами, отличающимися только регистром).
Ни разу не пользовался, но наверняка можно исправить. Вот EI показвыает жёлтое выползающее окошко – хочешь, закрывай, хочешь – дальше работай.
CaptainFlint писал(а):
Моторокер писал(а):Пока нет щелчков мыши, клавиатурой, окно держится. Пошла работа, окно пропало через пару сек.
Выше привёл пример: любой дёрг мышью — и считается, что работа пошла, хотя это мог быть совершенно незапланированный дёрг.
Дёрг=клик или дёрг=движение?
Если клик на сообщении, то оно закроется. Если в другом месте, пойдёт отсчёт таймера для закрытия.
CaptainFlint писал(а):
Моторокер писал(а):Тултип закрывается автоматом.
Через N секунд. Быстрее будет щёлкнуть, нежели ждать. А если, наоборот, исчезает сразу — то тоже недостаток, не успеешь прочитать, когда оно действительно надо.
А сейчас не щёлкаешь? :)
CaptainFlint писал(а):А если его не тыкать носом, если молча вывести снова тот же самый диалог F7
Подозреваю, ты не совсем внимательно прочитал – если нет возможности создания папки, пользователю явно сообщается ещё до закрытия этого диалога, а возможно и до попытки создания папки.
Не просто тупо сообщается уже после попытки создания папки «Папка не создана», конкретно говорится, прямо при наборе текста «Такая папка уже существует» или «Символ такой-то использовать нельзя, замените на _».
CaptainFlint писал(а):Не забывай приписывать в таких случаях "IMHO". Не провозглашай своё мнение за вселенскую истину.
Любые слова любого пользователя, не являющиеся цитатой, являются имхо.
CaptainFlint писал(а):Я уже сказал выше, что не считаю такую концепцию корректной и подходящей для всех без исключения и привёл причины.
Да всё корректно будет, если к проблеме подходить с другого боку.
Надо только абстрагироваться от стандартного ShowMessage.
Это как от goto отвыкнуть после бейсика.
«Белый шум» рулит.

Можно найти альтернативное решение, главное творчески подойти, не с позиции программиста. Можно Купера или Раскина почитать, хороший заряд даёт.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Моторокер писал(а):Дёрг=клик или дёрг=движение?
Движение.
Моторокер писал(а):А сейчас не щёлкаешь?
Могу не щёлкать. Если диалог висит в Тотале, это мне никак не помешает работать, скажем, в EmEditor'е. А если вылез тултип и панель задач закрыла мне полэкрана и висит там, тут я вынужден щёлкнуть, чтобы её убрать на место.
Моторокер писал(а):Подозреваю, ты не совсем внимательно прочитал – если нет возможности создания папки, пользователю явно сообщается ещё до закрытия этого диалога, а возможно и до попытки создания папки.

Не просто тупо сообщается уже после попытки создания папки «Папка не создана», конкретно говорится, прямо при наборе текста «Такая папка уже существует» или «Символ такой-то использовать нельзя, замените на _».
Это возможно далеко не всегда.
Моторокер писал(а):Любые слова любого пользователя, не являющиеся цитатой, являются имхо.
По стилю написания это не всегда очевидно...


В общем, я своё мнение высказал: для массового пользователя это "улучшение" не только не нужно, но и вредно. А учитывая распространённость сборок, в которых всё, что надо и что не надо, эта проблема оказывается куда более значительной сильно усугубляется.
Последний раз редактировалось CaptainFlint Пт ноя 23, 2007 12:22, всего редактировалось 1 раз.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
Arschmann
Сообщения: 49
Зарегистрирован: Ср май 16, 2007 12:37
Откуда: Переславль-Залесский
Контактная информация:

Сообщение Arschmann »

Имхо, мне это было бы удобно. Особенно если все было бы хорошо настраиваемо.

Моторокер, кстати спасибо за киллок =).
Изображение - линия прямой правительственной связи.
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Flint писал(а):В общем, я своё мнение высказал: для массового пользователя это "улучшение" не только не нужно, но и вредно.
Похоже, тема снова в юзабилити превращается :)
Попробуем с конкретных примеров.
Разбираем не просто замену MsgOK на другой вид, а избавление от них в принципе.
Flint писал(а):
Моторокер писал(а):Не просто тупо сообщается уже после попытки создания папки «Папка не создана», конкретно говорится, прямо при наборе текста «Такая папка уже существует» или «Символ такой-то использовать нельзя, замените на _».
Это возможно далеко не всегда.
Тогда приведи примеры, когда это невозможно. Примеры, когда нужно (хмм) показать MsgOK, а не расширенный диалог.
Попробуй создать папку в Windows с «неправильными» символами.

Теперь картинка, котарая могла быть в Тотале:
Изображение
Хинт можно показывать либо после анализа строки либо после попытки создания папки. Что здесь вредного?
Пользователь сразу видит, ещё до появления «Ошибка», что кнопку OK жать рано.
Думаю, понятно, что конкретная картинка только для примера, главное – смысл.
Flint писал(а):
Моторокер писал(а):Любые слова любого пользователя, не являющиеся цитатой, являются имхо.
По стилю написания это не всегда очевидно...
Цитата во всяком случае, выделена.

Конкретно по твоему предложению:
Допустим, заменили диалоги MsgOK на диалоги типа от JDialogs, какую пользу это даст пользователю? Переводы и шрифт – это косвенная польза, так, для эстетики и культуры.
Единственная польза – в диалогах Да-Нет можно будет жать Esc.
Но MsgOK так и останутся как были. Да ещё и закрыть нельзя будет с помощью KillOK.
Какая польза от ребрендинга, если ребрейнинга не было?
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Ответить