А кто мешает изметять свойство DefaultButton в соответствии в активным переключателем? И подсветка будет.Fuhrer писал(а):Обычно, в диалогах, где присутствует элементы с памятью (радиобаттоны, чекбоксы) есть одна кнопка, которая реагирует на Enter. И тогда, как и положено, она подсвечивается жирным контуром. Она же и нажимается при двойном щелчке на радиобаттоне, если это какой-нибудь всплывающий диалог с вариантами ответа.
Я уже несколько раз писал, что обработка клавиатуры не доделана... Даже, что именно в ней не доделано...Fuhrer писал(а):Ага! То есть программа-пример в этом плане не отражает задумку автора? Если так, тогда пользование диалогом действительно приобретает смысл. Правда, нестандартная обработка нажатий на стрелки ([<--],[-->]) потребует привыкания к ней со стороны пользователя, что не есть хорошо. Да и нагромождение элементов пугает не меньше моих микрокнопок. Но уже какой-тто смысл есть. Поехали дальше.Qwertiy писал(а):Tab - лишнее. Стрелки влево и вправо его заменяют.
По задумке Влево=Shift+Tab, Вправо=Tab. Но сочетания с Tab (теоретически) тоже должны поддерживаться.
Для этого к основным вариантам и добавлен пункт "Все".Fuhrer писал(а):Да, Shift - это слабое место. Есть смысл в том, чтобы пользователь нажимал Enter без лишних условий. Но только в случае неувеличения количества действий до нажатия Enter.Qwertiy писал(а):И Shift почти не нужен.
Это только у Вас. Во всех других диалогах (Проводник, TC, 7Zip и т. д.) эти кнопки одинакового размера.Fuhrer писал(а):Ну а что сложнее для попадания - моя кнопка или Ваш радиобаттон - спорить не буду, ибо кому как. Наверно, кнопка сложнее. Ну на то она и более ответственна. Уменьшенная вероятность случайно заменить все файлы в очереди вместо одного - скорее фича, чем баг.
Кстати, для переключателей используется свойство Dock, а их высота определяется автоматически, чтобы текст помещался.
Идея хорошая, хотя по содержимому надёжнее... Вообще, когда мне нужна эта функция, то я бы предпочёл именно содержимое, но, наверное, здесь возможны варианты...Fuhrer писал(а):Это чрезвычайно полезная функция. Почти всегда, если у файлов разное содержимое, то и некоторые из их атрибутов отличны. И наоборот: если все атрибуты одинаковы, то одинаково и содержимое. Это относится ко всем архивам, видеофайлам, как правило и к текстовым файлам.
1. Как я писал, эта настройка приоритетна над выбором в диалоге. Т. е. пользователь ставит оба флажка, потом, на паре несовпадающих файлов выбирает "Пропустить все". Результат: все файлы, для которых в папке назначения существуют дубликаты, удалены; остальные файлы, для которых в папке назначения есть одноимённые, пропущены, а все остальные перемещены. Вы действительно считаете, что такую опцию следует помещать именно в диалог? А что будет, если разные файлы попадутся раньше, чем совпадающие?Fuhrer писал(а):Я считаю очень неправильным вынесение настроек "При совпадении имён и размеров сравнивать по содержимому" и "При совпадении по содержимому считать файл перемещённым" за пределы диалога. ... Кроме того, возможен бездиалоговый запуск копирования (у меня Drag`n`Drop так работает, например), когда копирование начинается вообще без лишних переспрашиваний.
2. У меня при drag-n-drop'е получается стандартный диалог, что меня вполне устраивает...
Это конечно хорошо, но даже я считаю такое количество настроек перебором... В таких случаях есть синхронизация... Наверное...Fuhrer писал(а):А насчёт условий... Мне кажется, есть смысл рассматривать три варианта:
1. У файлов одинаковые имена. Содержимое никого не интересует.
2. Одинаковые имена и все атрибуты. Под атрибутами я понимаю всю информацию о файле, не включая его путь, права, и содержимое. То есть это его даты (создания, изменения), размер, и собственно, файловые атрибуты в понимании FAT/NTFS. Если эти данные совпадают (а их можно мгновенно получить для файла любого размера), тогда можно с большой долей вероятности делать вывод о том, что файлы одинаковы.
3. Сравнение по содержимому.
Все три варианта нужно чётко указать пользователю, чтобы он хорошо понимал на основании какого из трёх сравнений программа принимает решение о действии. Что самое сложное, эти же три вида сравнения можно применить не только для удаления исходника, но и для других операций (замена, пропуск, дописывание). Правда, не во всех случаях это рационально, нужно продумать возможные применимые в жизни варианты и дать пользователю возможность их выбрать.
На этой картинке - ничем! А в диалоге - другое дело!Fuhrer писал(а):
1. Если Вы добавляете кнопку, то как её выбрать? Если рассматривать переключение с помощью стрелок, то как Вы объясните, почему кнопка "Пропустить файл" выбирается с помощью стрелок влево/вправо, а кнопка "Пропустить все" только с помощью стрелок вверх/вниз при активной кнопке "Пропустить файл"? Догадываетесь, что пользователь подумает о таком диалоге? Если включить кнопку в последовательность кнопок, то это увеличит максимальное количество необходимых клавиш до 7 (как минимум), что уже много.
2. Единство интерфейса. В каждой группе есть возможность выбрать вариант одного действия и подтвердить его.
3. Возможность сохранения выбранного ранее варианта для каждого из основных действий в отдельности. Высока вероятность, что он же будет выбран снова. В таком случае, это экономит одно действие.
И ещё, пользуясь Вашей логикой, можно все переключатели заменить на кнопки. И что тогда будет?