Запрос на тестирование плагина (Консоль для ТС)

Обсуждение только плагинов и утилит для Total Commander.

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

Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Уф. Пофиксил все баги, кроме хоткеев и передачи фокуса при ресайзе.
написал приблуду для принятия сообщений, сейчас начну хоты писать...
Create new console on load
Ты не понял, не саму консоль показывать, а форму плагина (заголовок кнопки и тд...)
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Намаялся я с хуком. Локальными хуками сделать не удалось, сделал глобальный.
Пофиксил пару багов появляющихся после долгой работы с сотней консольных окон.
Зачем я запускал сотню окон, сам не понимаю :).
В архиве сэмпл посылки комманд окну ТоталКонсоле.
Написал своим корявым английским ридми.

v 0.3 beta rc 2
[/] горячие клавиши (переделано на хук)
[+] поддержка комманд посылаемых плагину (через sendmessage или postmessage)
[*] поправлено несколько неявных багов
[/] множество мелких изменений


Рапида
Слил
Аватара пользователя
StrangeRRor
Сообщения: 214
Зарегистрирован: Сб июл 15, 2006 13:16

Сообщение StrangeRRor »

Установил плагин, попытался подключить другой шелл и сразу ошибка (или особенность работы плагина?:wink: ). Диалог выбора файла практически не видно - его закрывает окно настроек плагина, который невозможно передвинуть, пока не будет закрыт диалог выбора файла. Замкнутый круг какой-то.
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

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

Сообщение D1P »

При смене языка, надпись в окне настроек Reread TC panels on resize остаётся неизменной.
На кнопке "Применить" русский капшен не умещается.
Курсор при изменении размеров консоли не меняется на нужный, пока не происходит щелчок по сплиттеру. Если изменение курсора сделать сложно, можно хотя бы сплиттер сделать более очевидный (сейчас он выглядит "толстовато" для сплиттера, скорее как панелька какая-то).
Порядок перехода фокуса по кнопкам не соответствует их расположению. Я, кстати, рекомендовал бы их сделать либо плоскими, либо отодвинуть на пару пикселей друг от друга (а то создаётся впечатление, будто кнопка "Закрыть активную" наезжает на "Новая консоль", а кнопка с фокусом вообще не смотрится).
Хотелось бы, чтобы после отработки команды "Показать консоль" фокус сразу же переводился на в саму консоль. Соответственно, после скрытия консоли возвращался в TC.
Отлов cm_ExecuteDOS кривоват - если при скрытой консоли вызвать команду (у меня подвешена на Ctrl+O), тогда окно TC теряет фокус, но самой консоли не видно. Появлется она только когда жму Ctrl+Win+S, при этом там столько открытых вкладок с консолями, сколько раз я нажал Ctrl+O.
В контекстном меню, дублирующем кнопки, опечатка - "ЗАкрыть все". Посмотрел Lng-файл - вообще зачем делать разные ключи для одинаковых надписей?
Хочу закрывать табы колёсиком. И открывать им же. В общем, полную копию поведения Тотала при работе с вкладками.
Ещё подумал - если сделать так, чтобы при активной консоли и TC был активен, невозможно, нужно тогда сделать какой-то индикатор того, находится ли фокус в консоли. На данный момент, если TC не в фокусе, я не могу определить, в фоусе ли консоль.
Заголовок диалога настроек следует поменять на Console options или что-то подобное. Иначе, в случае, если пользователь вызовет его по горяей клавише тогда, когда самой консоли не видно, может возникнуть недоразумение.

В целом же консолька смотрится куда симпотнее с каждой версией, спасибо. Перевод интерфейса на более-менее нормальный английский сейчас сделаю.
Последний раз редактировалось D1P Вт июл 03, 2007 21:05, всего редактировалось 3 раза.
Аватара пользователя
StrangeRRor
Сообщения: 214
Зарегистрирован: Сб июл 15, 2006 13:16

Сообщение StrangeRRor »

2B4rr4cuda
Power (Monad) shell rc1, TC 7.0 pb3, XP рус. SP2
На вкладке "Шелл" выбираю "Другая", жму кнопку для выбора другого шелла и, собственно, всё.
Может просто изменить свойство формы, что бы она не была "всегда сверху" (является таковой для всех запущенных приложений), а диалог выбора фала, по идее, и должен быть модальным.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Ещё косяки: окно настроек НЕ МОДАЛЬНО ни по отношению к консоли ни к Тоталу. По идее, такие вещи надо бы делать модальными.
Кнопка Apply, по правилам хорошего тона дизайна интерфейсов, должна быть неактивна, если применять нечего, т.е. если в настройках нет изменений. В этом одно из основных предназначений, собсно.
Кстати, это так и задумано, что у консоли внутри плагина можно изменить размер. Т.е. взять мышкой за край и изменить? Практической надобности этому я не вижу, а привести это может к тому, что нижний край консоли окажется за пределами окна плагина, и будет не видна одна-две строчки ввода. По крайней мере у меня получалось так сделать.
Консоль иногда неправильно определяет собственные размеры. Раздвигаем окно до половины окна TC, сдвигаем окно Тотала по вертикали до минимума (до тонкой полоски, раздвигаем - консоль занимает ВСЁ окно Тотала. Интересный эффект при этом наблюдается, если переключиться из окна TC на другое и обратно - иконки панели инструментов отрисоввываются прямо поверх консоли, забавно видеть, как прямо под иконкой мигает текстовый курсор :)
Крайне забавно обрабатывается нажатие Alt+Enter (переход в полноэкранный режим). =)

Немного поправил английския языковой файл: http://super.wincmd.ru/d/English.rar
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

To D1P
Замечания по интерфейсу учту.
Отлов cm_ExecuteDOS кривоват - если при скрытой консоли вызвать команду (у меня подвешена на Ctrl+O), тогда окно TC теряет фокус, но самой консоли не видно. Появлется она только когда жму Ctrl+Win+S, при этом там столько открытых вкладок с консолями, сколько раз я нажал Ctrl+O.
Я уже говорил об этом :) меня самого это взбесило. Наверное либо сделаю мультикоманды, либо увеличу список команд - ещё не решил.
Зачем делать разные ключи для одинаковых надписей?
Лениво было писать для каждого текстового поля загрузку текста, поэтому сделал циклом для каждого типа компонент.
Хочу закрывать табы колёсиком. И открывать им же. В общем, полную копию поведения Тотала при работе с вкладками.
Не сразу, но сделаю...
Ещё подумал - если сделать так, чтобы при активной консоли и TC был активен, невозможно, нужно тогда сделать какой-то индикатор того, находится ли фокус в консоли. На данный момент, если TC не в фокусе, я не могу определить, в фоусе ли консоль.
Изменение цвета заголовка\сплитера при активации\деактивации подойдёт?
В целом же консолька смотрится куда симпотнее с каждой версией, спасибо.
Тебе тоже огромное спасибо за тесты, советы и критику... :)
Перевод интерфейса на более-менее нормальный английский сейчас сделаю.
А вот за это отдельное спасибо.

To StrangeRRor
Power (Monad) shell rc1, TC 7.0 pb3, XP рус. SP2 На вкладке "Шелл" выбираю "Другая", жму кнопку для выбора другого шелла и, собственно, всё. Может просто изменить свойство формы, что бы она не была "всегда сверху" (является таковой для всех запущенных приложений), а диалог выбора фала, по идее, и должен быть модальным.
Шелл сейчас качаю, буду разбираться в чём проблема.
Свойство формы уже изменил, честно говоря даже не помню зачем я её ОнТоп поставил... :(
To D1P
Кнопка Apply, по правилам хорошего тона дизайна интерфейсов, должна быть неактивна, если применять нечего, т.е. если в настройках нет изменений. В этом одно из основных предназначений, собсно.
Хотел, но дюже гемморно это. Таки придёться кодить... :( :)
Кстати, это так и задумано, что у консоли внутри плагина можно изменить размер. Т.е. взять мышкой за край и изменить? Практической надобности этому я не вижу, а привести это может к тому, что нижний край консоли окажется за пределами окна плагина, и будет не видна одна-две строчки ввода. По крайней мере у меня получалось так сделать.
Мне это не нравиться, но изменить ничего не могу, это уже csrss.exe работает, а вмешиваться ещё и в его работу совсем не хочеться.
И так плаг на одних "хаках" построен, у меня каспёр визжит постоянно... :\
Консоль иногда неправильно определяет собственные размеры. Раздвигаем окно до половины окна TC, сдвигаем окно Тотала по вертикали до минимума (до тонкой полоски, раздвигаем - консоль занимает ВСЁ окно Тотала. И
По логике плага это единственый правильный выход :). Размеры вычисляються от Top-а консольки.
нтересный эффект при этом наблюдается, если переключиться из окна TC на другое и обратно - иконки панели инструментов отрисоввываются прямо поверх консоли, забавно видеть, как прямо под иконкой мигает текстовый курсор
А вот за это я Гислера хотел бы казнить.
Как он определяет поверхность для отрисовки??? :(
У меня такое чувство будто ТС отрисовывает на главном окне...
Я с этой багой борюсь, пока что у нас ничья :)
Крайне забавно обрабатывается нажатие Alt+Enter (переход в полноэкранный режим). =)
Стандартная реакция :) А чего ты ожидал? :) :) :)
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

StrangeRRor
На ТС 7.0 rc5 бага не потвердилась. Попробуй обновить версию тотала...
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Наверное либо сделаю мультикоманды, либо увеличу список команд - ещё не решил.
А лучше и то и другое. Но доп. команды нужны уже сейчас, плюс такое поведение должно быть дефолтным.
Лениво было писать для каждого текстового поля загрузку текста, поэтому сделал циклом для каждого типа компонент.
Дело твоё.
Изменение цвета заголовка\сплитера при активации\деактивации подойдёт?
Более чем. Но учти, что и цвет шрифта надписи TotalConsole должен меняться, дабы быть читаемым на любом фоне.
Хотел, но дюже гемморно это. Таки придёться кодить...
Ничего геморного. Пишешь одну процедуру, которая делает ApplyBtn.Active:=true; эту процедуру вписываешь в качестве обработчика на OnChange/OnClick для текстовых полей и чекбоксов, для остальных контролов логика такая же. Всё делается в IDE. Ну и само собой, ApplyBtn.Active:=false; при нажатии на саму кнопку.
Мне это не нравиться, но изменить ничего не могу, это уже csrss.exe работает, а вмешиваться ещё и в его работу совсем не хочеться.
И так плаг на одних "хаках" построен, у меня каспёр визжит постоянно... :\
Ну и фиг с ним.
По логике плага это единственый правильный выход . Размеры вычисляються от Top-а консольки.
А вот за это я Гислера хотел бы казнить.
Как он определяет поверхность для отрисовки???
Логично конечно, но логику надо бы поменять. У тебя есть проверка, чтобы при изменении размера сплиттером, консоль не смогла бы быть "вытянута" вверх за тулбар, вот хотя бы её вставь и при изменении размеров самого Тотала. Чтобы не вылезало куда не надо (если консоль максимизирована через даблклик по сплиттеру, то она никуда не вылезает). Хотя проблему сохранения пропорции консоли надо решать всё-таки как-то иначе, пока не могу придумать, как.
Кстати, иконки, скорее всего, так и рисуются - чёрт его знает, на что Гислеру пришлось сделать, чтобы обеспечить поддержку тем XP. Решение, может, и не очень красивое, но что есть, то есть.
Стандартная реакция А чего ты ожидал?
Прошу прощения, это глюк монитора. У меня тут широкоэкранная плазменная панель, так вот она полноэкранную консоль отображает... гм, ну представьте себе jpg-картинку с впечатанным текстом, растянутую в десять раз.
Хотя в некоторых случаях глюк имеет место быть: запускаю в консоли far (работает, кстати, отлично, если не пытаться менять размеры консоли), жму Alt+Enter, на экране отображается только половина левого окна far =)

Ещё косяки: скрываем консоль, жмём Ctrl+Win+O. TC теряет фокус. Консоль-то не видна, поэтому возникает недоразумение. Посему предлагаю опцию - "Не реагировать на горячие клавиши, если консоль скрыта". Ессно, хоткей на показ консоли должен работать.
Или вот: некоторые хоткеи не работают, когда фокус в консоли, например Ctrl+Win+O (вместо нового таба, в консоль впечатывается последовательность ^O)
Куда более страшный косяк:
1) Щёлкаем два раза по сплиттеру. Консоль "максимизируется", при этом у неё появляется скроллер, очень непонятно себя ведущий (если его подвигать, видно, как он меняет размер прямо под мышью). Сама консоль всегда скроллится кверху, т.е. чере какое-то время вывод команд становится невозможно просматривать. Тот же эффект наблюдается, если консоль через сплиттер растянуть до максимальных размеров.
2) Два раза по сплиттеру, меняем размеры TC. В некоторых случаях размер консоли при этом не меняется (даже после изменения размера TC). Галка "Менять размер сразу при смене размера TC" снята, если включить, то всё в порядке.
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

D1P писал(а):а привести это может к тому, что нижний край консоли окажется за пределами окна плагина, и будет не видна одна-две строчки ввода.
Хех. Я тут на другой эффект напоролся. Окно консоли - это же натуральное окно. И справа вверху, если присмотреться, виден краешек от стандартных виндовозных кнопочек. Я даже не замечал, пока случайно мышой туда не клюкнул. Оказалось попал на крестик - консоль естественно исчезла. Только я на какое-то время ошалел. Потом дошло. :)
B4rr4cuda писал(а):У меня такое чувство будто ТС отрисовывает на главном окне...
Это вряд ли, ТС использует WS_CLIPCHILDREN. А вот дочерние окна могут рисовать одно на другом. Может быть они перекрываются и в этом все дело?
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

2 D1P
А лучше и то и другое. Но доп. команды нужны уже сейчас, плюс такое поведение должно быть дефолтным.
Доп команды будут в любом случае, а вот с мулькомандами заморочка- никак не могу додуматься, как их лучше передавать? Сейчас хоткейная библа посылает сообщение с номером команды в WParam и "Хоткей работает в" в LParam. Есть какие нибудь идеи насчёт посылки мультикомманд?
цвет шрифта надписи TotalConsole должен меняться, дабы быть читаемым на любом фоне
Учту. Поставлю инвертный цвет...
Ничего геморного. Пишешь одну процедуру, которая делает ApplyBtn.Active:=true; эту процедуру вписываешь в качестве обработчика на OnChange/OnClick для текстовых полей и чекбоксов, для остальных контролов логика такая же. Всё делается в IDE. Ну и само собой, ApplyBtn.Active:=false; при нажатии на саму кнопку.
Именно это геммор я и имел в виду.
Логично конечно, но логику надо бы поменять.... Хотя проблему сохранения пропорции консоли надо решать всё-таки как-то иначе, пока не могу придумать, как.
Я тоже. Наиболее нативным оказался сайз по топу.При ресайзе, по пропорции и по высоте, очень уж некрасиво и непривычно работает ...
Посему предлагаю опцию - "Не реагировать на горячие клавиши, если консоль скрыта".
Ок. Добавлю.
некоторые хоткеи не работают Ctrl+Win+O (вместо нового таба, в консоль впечатывается последовательность ^O)
С некоторыми хоткеями вообще беда...
Чую работу с хоткеями буду я писать с нуля..
Почти рифма.. :)
Особенно нервируют сочетания с Win. Ни тотал, ни консоль не считают её за модификатор - игнорируют начисто... Вот и бажит сочетание Ctrl+Win+O. Я себе Ctrl+Win+С на новую консоль поставил, потом кучу сссссссссссс из ком.строки Тотала вытираю...

Со "страшными косяками" разберусь. Действительно неприятные баги...

2 VadiMGP
Окно консоли - это же натуральное окно.И справа вверху, если присмотреться, виден краешек от стандартных виндовозных кнопочек. Я даже не замечал, пока случайно мышой туда не клюкнул. Оказалось попал на крестик - консоль естественно исчезла. Только я на какое-то время ошалел. Потом дошло
:) :)
Сильно у тебя кнопки вылезают?
Это вряд ли, ТС использует WS_CLIPCHILDREN. А вот дочерние окна могут рисовать одно на другом. Может быть они перекрываются и в этом все дело?
Да. Когда консолька перекрывает тулбар, тогда над ней и издеваються :).
Но субьективно кнопки тулбара ТС рисует на канве главного окна в клиент ректе тулбара.
ХЗ как такой эффект получаеться...
Да и неважно, я уже поправил сорцы - теперь максимизируеться под тулбар.
Это я и назвал ничьей :)
VadiMGP
Сообщения: 1625
Зарегистрирован: Ср мар 21, 2007 20:58

Сообщение VadiMGP »

B4rr4cuda писал(а):Сильно у тебя кнопки вылезают?
Нет. Буквально на 2 пикселя. Потому-то и не видел раньше.

Нарыл еще несколько бяк.

1. Если фокус находится в консоли, то Alt+F4 не работает и выйти из коммандера можно только мышой.
2. Если окно ТС частично перекрыто другим окном, то клюк мышой по видимой части консоли не вытаскивает окно ТС вперед. Приходится искать другое место в ТС куда ткнуть мышью. Не смертельно, но слегка раздражает.
3. Что-то странное творится при изменении размера фонта. Когда фокус в консоли нажать Alt+Enter, зайти в свойства консоли и поменять размер фонта. После этого размер окна консоли какой-то непредсказуемый. То оно ресайзируется под ТС то нет. В общем, никакой закономерности я не нашел.
Аватара пользователя
B4rr4cuda
Сообщения: 376
Зарегистрирован: Вс июн 03, 2007 00:36
Откуда: Россия, Москва

Сообщение B4rr4cuda »

Буквально на 2 пикселя.
Ясно, скрою...
1. Если фокус находится в консоли, то Alt+F4 не работает и выйти из коммандера можно только мышой.
Это стандартное поведение cmd.exe. Используй хоткей "закрыть все", а потом уж альт-Ф4. Пофиксить не могу.
2. Если окно ТС частично перекрыто другим окном, то клюк мышой по видимой части консоли не вытаскивает окно ТС вперед. Приходится искать другое место в ТС куда ткнуть мышью. Не смертельно, но слегка раздражает.
Могу вылечить только хуком, но он сильно затормозит Тотал.
Если будешь настаивать, сделаю...
3.Что-то странное творится при изменении размера фонта. Когда фокус в консоли нажать Alt+Enter, зайти в свойства консоли и поменять размер фонта. После этого размер окна консоли какой-то непредсказуемый. То оно ресайзируется под ТС то нет. В общем, никакой закономерности я не нашел.
Закономерность проста - сейчас консолька ресайзируеться по Топу и за единицу
по x:y для консольного окна берёться 8:12.
8 х 12 - стандартный размер символов шрифта виндозной консоли. При изменении фонта нарушаеться расчёт размеров, вот и глючит...
Попробую находить размеры используемого шрифта автоматом, если не получиться - добавлю пункт в опции.
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Хех. Я тут на другой эффект напоролся. Окно консоли - это же натуральное окно. И справа вверху, если присмотреться, виден краешек от стандартных виндовозных кнопочек. Я даже не замечал, пока случайно мышой туда не клюкнул. Оказалось попал на крестик - консоль естественно исчезла. Только я на какое-то время ошалел. Потом дошло.
Я это прочёл, нажал Alt+Enter, выбрал "Переместить", переместил и долго смеялся. Так что
Ясно, скрою...
тут не поможет :)
Ответить