Панель для результатов поиска файлов

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Описание:
Скрипт является панельным модулем, предназначенным заменять временную панель при выводе результатов поиска файлов. Основные отличия:
  • форма вывода информации приближёна к формату результатов поиска в диалоге поиска Far;
  • функциональность скрипта, в отличие от стандартной временной панели, ограничена реальными файлами;
  • работа с файлами внутри архивов.


Требуемая версия Far 3.0.5182+.

Замечание: скрипт передаёт список содержимого плагину "Временная панель" через файл. Сборки плагина 107-109 при заполнении Временной панели содержимым из файла для каждого элемента заполняют APanel.UNCPath полным именем (включая абсолютный путь) файла-списка. Если это может сломать работу Ваших скриптов, используйте сборку Временной панели 106 от более ранней версии Far, а лучше перейдите на Far 3.0.5641+, содержащий Временную панель сборки 110+ с устранённой вышеописанной особенностью.



Attachments
TmpPanel.1.3.5.7z
(14.48 KiB) Downloaded 169 times
Last edited by IgorZ on Thu 12 May, 2022 11:40, edited 23 times in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Latest post of the previous page:

aflexus wrote:IgorZ, Не работает "Copy files to temporary panel".
Автоматически при открытии, или вручную? Если автоматически, то и неудивительно, раз настройка не включена. Вручную работает.
aflexus wrote:Более того не сохраняется одноименная настройка.
Действительно. Проверю, что там.
aflexus wrote:Учитывая, что в списке можно лишь просмотреть содержимое файла - теряется весь смысл скрипта.
??? Панель поддерживает все возможности аналогичного плагина "Временная панель", доступные для реальных файлов, и добавляет кое-что своё. Если Вы обнаружили заявленный, но неработающий функционал, сообщайте.
aflexus wrote: - Возможно ли добавить функционал, чтобы по клику в результатах поиска на файле происходил переход на выделенный файл, а не его запуск?
- То же касается и перехода в папку при клике на ней?
Нет, поскольку управление сознательно скопировано с плагина "Временная панель".
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Версия 1.3.1 -
  • Исправлена ошибка с сохранением настроек. Точнее, с несохранением. :)
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ,
в разных папках найденного могут оказаться файлы с одинаковым именем. если их копировать по F5 на обычную файловую панель, то они перезаписывают друг друга без предупреждений.
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Версия 1.3.2 -
  • Исправлена ошибка с перезаписью целевых файлов без запроса.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Версия 1.3.3 -
  • Переделаны копирование/перенос и удаление. После выкладывания предыдущей версии решил присмотреться к коду повнимательнее и ужаснулся: какой болван написал этот бред?!! Ах да, я... В общем, теперь код правильнее, а пользоваться должно стать удобнее.
P. S. Всех с наступающим Новым Годом!
Last edited by IgorZ on Wed 29 Dec, 2021 07:11, edited 1 time in total.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ,
при попытке по F5 скопировать файл с панели скрипта в обычную панель выдается диалог с сообщением об ошибке:
TmpPanel.lua:341: attempt to index field 'diACM' (a nil value)
после закрытия этого диалога появляется диалог копирования, и последующее копирование завершается успешно.

второе замечание. если в панели скрипта изменить сортировку (я использовал: по времени — CtrlF5), то в такой панели возникает проблема с выделением файлов. не все файлы могут быть выделены. нагляднее всего это проявляется при выделении всех файлов: ShiftAdd. "Search for folders" в поиске лучше отключить, пробелов в выделении будет больше.

проверялось на Far30b5832.x86.20210622.7z, но замечено на разных билдах.
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

ccaid wrote: Mon 07 Feb, 2022 17:44 IgorZ,
при попытке по F5 скопировать файл с панели скрипта в обычную панель выдается диалог с сообщением об ошибке:
TmpPanel.lua:341: attempt to index field 'diACM' (a nil value)
после закрытия этого диалога появляется диалог копирования, и последующее копирование завершается успешно.
Такое впечатление, что повреждены языковые файлы TmpPanel*.lng. Попробуйте открыть в редакторе соответствующий Вашему языку Far (английский, я так понял?) и помотрите, там почти в самом начале должна быть строка diACM = {. Ну и надёжнее всего заново переписать файлы из дистрибутива. Только что скачал с сайта и проверил: там нормальные.
ccaid wrote: Mon 07 Feb, 2022 17:44 второе замечание. если в панели скрипта изменить сортировку (я использовал: по времени — CtrlF5), то в такой панели возникает проблема с выделением файлов. не все файлы могут быть выделены. нагляднее всего это проявляется при выделении всех файлов: ShiftAdd. "Search for folders" в поиске лучше отключить, пробелов в выделении будет больше.
Скрипт рассчитан на несортированный список содержимого и выставляет соответствующий режим сортировки при открытии панели. К сожалению, запретить переключение режима сортировки совсем - невозможно. Я могу, конечно, добавить принудительное выставление режима "несортировано" при каждом обновлениии панели, но, подозреваю, это окажется довольно прожорливо по ресурсам и не совсем удобно. Ещё можно написать в справке "если Вы хотите поменять режим сортировки, делайте это на свой страх и риск". Но её всё равно почти никто не читает. :(
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ wrote: Tue 08 Feb, 2022 11:11 повреждены языковые файлы
нет, не в этом дело. для проверки я делал чистую установку с новым локальным профилем: только Far и скрипт — оба из архивов. перекачал скрипт с сайта — нет отличий от моей копии. если в панели скрипта нажать AltShiftF9, сообщает, что не находит языковые файлы. PathName в скрипте определяется верно, глубже раскопать у меня знаний не хватает.
IgorZ wrote: Tue 08 Feb, 2022 11:11 можно написать в справке
да, это будет уместно. перед баграпортом я заглядывал в справку.
запрещать не нужно, но существующие ограничения отметить не помешает — что именно и в каком случае не будет работать.
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

ccaid wrote: Tue 08 Feb, 2022 12:56
IgorZ wrote: Tue 08 Feb, 2022 11:11 повреждены языковые файлы
нет, не в этом дело. для проверки я делал чистую установку с новым локальным профилем: только Far и скрипт — оба из архивов. перекачал скрипт с сайта — нет отличий от моей копии. если в панели скрипта нажать AltShiftF9, сообщает, что не находит языковые файлы. PathName в скрипте определяется верно, глубже раскопать у меня знаний не хватает.
Попробуйте заменить функцию LoadLang (со строки 81)

на

Если при загрузке не обнаружены языковые файлы, она выдаст окно, где перечислит PathName, первые три буквы языка, затем полные имена языковых файлов, которые пытается загрузить, и их файловые атрибуты (для проверки наличия файлов). Для последнего также выведется сообщение об ошибке, если она возникла. Имена и пути файлов можете сравнить с реальными у Вас в системе, может, сразу всё прояснится. Если нет, вываливайте полученные сообщения сюда, и будем думать дальше.
ccaid wrote: Tue 08 Feb, 2022 12:56
IgorZ wrote: Tue 08 Feb, 2022 11:11 можно написать в справке
да, это будет уместно. перед баграпортом я заглядывал в справку.
запрещать не нужно, но существующие ограничения отметить не помешает — что именно и в каком случае не будет работать.
Ладно, сделаю в следующей версии.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ, резюме: у вас в английском языковом файле опечатка в строке 13
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Версия 1.3.4 -
  • Обновление пассивной панели после операций копирования/переноса. Потерялось в пути...
  • Исправлена опечатка в английском языковом файле. Вызывала досадную ошибку.
  • Дополнена справка: предостережение о возможных проблемах при смене режима сортировки.
  • Небольшой рефакторинг при работе с языковыми файлами: теперь смена языка должна идти синхронно с самим Far-ом.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

плагин оказался неравнодушен к файлам на своей панели, содержащим в себе символ точка-с-запятой ;
если их (таких файлы) выделить и скопировать, копирование пройдет успешно, но выделение не снимется.
Фар делают добрые люди
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Панель для результатов поиска файлов

Post by IgorZ »

Версия 1.3.5 -
  • Поправлена ошибка со снятием выделения, если имя файла содержит ";". Panel.Select не совсем корректно работает, если указывать имя файла с путём, поэтому я указывал маску. Но не учёл, что для масок ; - особый символ. Вроде, выкрутился с помощью Panel.FExist, он работает без ошибок.
  • Небольшой рефакторинг: теперь диалоги не вызываются, если нет языковых файлов; ещё по мелочи.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Панель для результатов поиска файлов

Post by ccaid »

IgorZ wrote: Thu 12 May, 2022 11:43Версия 1.3.5 -
в относительно старых билдах Far выделение вообще не сбрасывается.
поиск точки перехода привел к
drkns 12.10.2021 18:09:00 +0100 - build 5902
  1. 0003902: Panel.FAttr doesn't work on TmpPanel.
если решение невозможно или нецелесообразно, то стоит где-нибудь упомянуть об этом ограничении.
Фар делают добрые люди
Post Reply

Return to “Полезные макросы и скрипты”