Копирование файлов на временную панель
- buniak_a_h
- Posts: 4265
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов на временную панель
Здравствуйте!
Предлагаю к обсуждению скрипт для копирования отмеченных файлов на временную панель.
Суть скрипта такова:
1. Вешается обработчик событий на инициализацию и закрытие стандартного диалога копирования файлов
2. При инициализации в историю добавляется имя временной панели (в зависимости от язка может быть разное)
3. При закрытии диалога, если нажата кнопка "по умолчанию" и в качестве приёмника указана временна панель, то происходит отказ от реального копирования, а помеченные элементы добавляются на временную панель. После этого состояние панелей (видимость, тип) восстанавливается.
--
Отсюда ограничение: не гарантируется корректность работы скрипта, если пассивная панель открыта плагином, не поддерживающим функцию far.SetPanelDirectory (я знаю один такой: MultiArc). Также не проверялась работа скрипта, если активная панель - плагиновая. НО! Даже если работать не будет, полезность скрипта лично у меня не вызывает сомнений, т.к. постоянно приходится переключаться на временную панель и добавлять…
Предлагаю к обсуждению скрипт для копирования отмеченных файлов на временную панель.
Суть скрипта такова:
1. Вешается обработчик событий на инициализацию и закрытие стандартного диалога копирования файлов
2. При инициализации в историю добавляется имя временной панели (в зависимости от язка может быть разное)
3. При закрытии диалога, если нажата кнопка "по умолчанию" и в качестве приёмника указана временна панель, то происходит отказ от реального копирования, а помеченные элементы добавляются на временную панель. После этого состояние панелей (видимость, тип) восстанавливается.
--
Отсюда ограничение: не гарантируется корректность работы скрипта, если пассивная панель открыта плагином, не поддерживающим функцию far.SetPanelDirectory (я знаю один такой: MultiArc). Также не проверялась работа скрипта, если активная панель - плагиновая. НО! Даже если работать не будет, полезность скрипта лично у меня не вызывает сомнений, т.к. постоянно приходится переключаться на временную панель и добавлять…
Last edited by buniak_a_h on Fri 17 Jan, 2020 13:32, edited 4 times in total.
Копирование файлов на временную панель
Latest post of the previous page:
Да, это более надежно, чем предложил я.
- buniak_a_h
- Posts: 4265
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов на временную панель
LAT, учтены Ваши замечания, реализовано, как я писал.
Вышла версия 1.1.0:
Вышла версия 1.1.0:
- Добавлен контроль введённого пути назначения. Если строка-целевая папка начинается с заголовка временной панели или префикса с двоеточием (например, «Temporary panel:» или «tmp:»), и после двоеточия имеются "лишние" символы, то задаётся уточняющий вопрос, что пользователь имеет в виду: временную панель (вкралась ошибка) или файл с альтернативными потоками. Кроме указанных вариантов предоставляется возможность "передумать"; в этом случае фокус передаётся на поле ввода целевой папки.
- Добавлена локализация; в комплект поставки добавлено два языковых файла.
Копирование файлов на временную панель
На секундочку, а это так и задумано?
Разве не должно быть %FARPROFILE%\Macros\modules\
Code: Select all
files = [[%FARPROFILE%\modules\BAX\BaxUtils.lua, %FARPROFILE%\modules\BAX\TmpPanelUtils.lua, %FARPROFILE%\modules\BAX\GetMsg.lua, CopySelectedToTempPanel*.lng]];
Пользуюсь ФАРом больше 20 лет © собирательный.
- buniak_a_h
- Posts: 4265
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов на временную панель
В самом макросе написаноWave wrote: ↑Sun 10 Jan, 2021 21:57 На секундочку, а это так и задумано?Разве не должно быть %FARPROFILE%\Macros\modules\Code: Select all
files = [[%FARPROFILE%\modules\BAX\BaxUtils.lua, %FARPROFILE%\modules\BAX\TmpPanelUtils.lua, %FARPROFILE%\modules\BAX\GetMsg.lua, CopySelectedToTempPanel*.lng]];
require"BAX.TmpPanelUtils"
, require"BAX.GetMsh"
и т.п. . Я не очень стал разбираться с загрузчиком модулей (там очень много буковок), единственно, что я "вычислил" (на примерах других скриптов) - это что если в require написано AAA.BBB, то загрузка модуля происходит из подкаталога AAA, файла BBB.lua папки …\macros\modules. Чем и пользуюсь: все мои модули расположены в подпапке BAX.
Last edited by buniak_a_h on Mon 11 Jan, 2021 01:43, edited 1 time in total.
- buniak_a_h
- Posts: 4265
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов на временную панель
Wave, добавочка.
Приведённая Вами цитата вообще относится к макросу Info. Я нигде строгого описания правил оформления этой таблицы не встречал. Наверно, Вы правы (ScriptsBrowser не показывает такую конструкцию). Но это вроде как неправильно. От этой строки ничего не зависит, переписывайте как хотите.
Приведённая Вами цитата вообще относится к макросу Info. Я нигде строгого описания правил оформления этой таблицы не встречал. Наверно, Вы правы (ScriptsBrowser не показывает такую конструкцию). Но это вроде как неправильно. От этой строки ничего не зависит, переписывайте как хотите.
Last edited by buniak_a_h on Mon 11 Jan, 2021 01:45, edited 1 time in total.
- buniak_a_h
- Posts: 4265
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов на временную панель
Wave, главное-то я и не заметил. Конечно, там должно быть слово macros. Просто я не знаю, на что это влияет. И ошибочка, видимо, в ScriptsBrowser закралась: в просмотре списка файлов, если сначала идут модули, а затем - CopySelectedToTempPanel*.lng, то в список попадает CopySelectedToTempPanelCopySelectedToTempPanel*.lng. Хотя, возможно, это - результат уже моих переделок. Разберусь - напишу автору (если это его касается).
Копирование файлов на временную панель
Угу, отлично. Себе-то я сразу поправил, ещё до первой же пробы, просто потому, что открыл посмотреть, как это сделано, и глаза сами уцепились, что что-то не то.
Кстати, вообще-то спасибо за скрипт — оказывается, удобно.
Кстати, вообще-то спасибо за скрипт — оказывается, удобно.
Пользуюсь ФАРом больше 20 лет © собирательный.
- buniak_a_h
- Posts: 4265
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Копирование файлов на временную панель
Сделано было ДО того, как появился
far.Host
(в частности, far.Host.PutFiles
). Всё руки не доходят попробовать…