Копирование файла в панель другого Фара

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Копирование файла в панель другого Фара

Post by fml2 »

Latest post of the previous page:

Работает! Здорово, спасибо!

Есть еще следующие предложения. Я сам не уверен, стоит ли их реализовывать, но обдумать, по-моему, неплохо бы. Может, сделать опции?

1. Сортировать все пункты по алфавиту. Если других экземпляров Фара много, то уже не помнишь, где там что, и поэтому, наверное, будет легче найти искомый элемент, если элементы отсортированы по алфавиту.

2. Включать в список и пути из "собственного" экземпляра. Бывает, надо скопировать куда-то, и я точно знаю, что путь назначения где-то открыт. Но уже не помню где, т.к. внимание сконцентрировано только на одной (активной) панели -- настолько, что даже не помню, какой путь на неактивной.

3. Включать в список каждое значение только один раз, если один и тот же путь открыт в нескольких экземплярах Фара (т.е., иными словами, исключать дубликаты)

4. Сделать вызов скрипта возможным и из диалога перемещения файлов (а не только копирования)

Спасибо iva и вам за скрипт!
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Копирование файла в панель другого Фара

Post by iva »

Postby John Doe » Wed 14 Jan, 2015 20:50
Вот набросал что-то:
Заглянул на форум и обрадовался, что мои каракули подвигли Вас, John Doe, написать такой макрос. Как я понял, Вы посчитали, что выгоднее привязать создание файлов с данными о директориях с запросом на копирование, а не со сменой каталога, как пытался сделать я.
Ваш код меня многому научил, остался только один вопрос: почему Вы использовали mf.postmacro(print, item.text), а не просто print(item.text)? Надеюсь, не для того чтобы у меня на 3.0.3525 не работало (шутка).
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Копирование файла в панель другого Фара

Post by John Doe »

fml2, ok.
iva wrote: почему Вы использовали mf.postmacro(print, item.text)
Иначе не будет работать из меню плагинов.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Копирование файла в панель другого Фара

Post by fml2 »

Я тоже пытаюсь учиться по вашим скриптам. Если я правильно понял, работа скрипта основана на том, что каждый экземпляр Фара 20 раз в секунду (poll_delay = 50) опрашивает, существует ли определенный файл. Есть ли это хорошо? Не слишком ли большая нагрузка на систему?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Копирование файла в панель другого Фара

Post by John Doe »

fml2 wrote: Не слишком ли большая нагрузка на систему?
Думаю мизерная.

Давайте рассмотрим альтернативный подход: каждый экземпляр должен следить за изменениями пути. Допустим, это можно делать в 20 раз реже, 1 раз в секунду.
Но зато вместо простого вызова одной системной функции понадобиться следить за состоянием базы sqlite, что (не исключено) может получится и затратнее по ресурсам.

Без реальных измерений я затрудняюсь делать выводы.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Копирование файла в панель другого Фара

Post by fml2 »

John Doe wrote:fml2 wrote:Source of the post Не слишком ли большая нагрузка на систему?
Думаю мизерная
Ну тогда ладно. Возможно, еще более экономно было бы (как вначале делал iva) создавать/обновлять эти файлы при смене каталога. Но на это можно возразить, что большинство этих обновлений будет впустую, т.к. каталог других экземпляров будет опрашиваться скорее всего довольно редко.

Еще одно предложение в смысле читаемости кода: по-моему, неплохо бы было в скрипте ввести функцию "FileExists(filename)" и использовать ее вместо выражений "win.GetFileAttr(filename)". Внутри FileExists(filename) будет, естественно, только один вызов -- win.GetFileAttr(filename). Но код будет проще понять.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Копирование файла в панель другого Фара

Post by John Doe »

fml2 wrote: Возможно, еще более экономно было бы (как вначале делал iva) создавать/обновлять эти файлы при смене каталога.
Вопрос именно в том как отследить смену каталога.
Если не следить за базой sqlite, то остаётся только проверять состояние панелей после нажатия любой клавиши, и даже это будет не вполне надёжно.
В идеале было бы так.
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Копирование файла в панель другого Фара

Post by fml2 »

John Doe wrote: В идеале было бы так.
Согласен.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Копирование файла в панель другого Фара

Post by John Doe »

Обновление.
  • Добавлена защита от ошибок.
  • Скрипт теперь можно вызвать из любого диалога, а также из редактора, и из командой строки.
  • Учтены прочие пожелания (показываются и собственные пути, список сортируется, дубликаты исключаются).
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Копирование файла в панель другого Фара

Post by fml2 »

John Doe wrote: Обновление.
Круто! Супер! Я даже на думал, что мои мечты так скоро станут реальностью! По-моему, этот скрипт стоит поместить в раздел "Полезные макро и скрипты".

Единственное, на чем я споткнулся при чтении кода, это то, что функция называется "FileExist", а не "FileExists"

Спасибо, John Doe!
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Копирование файла в панель другого Фара

Post by fml2 »

Еще одно пожелание/предложение (я, конечно, понимаю, что это уже наглость с моей стороны...): нельзя ли сделать так, чтобы меню всегда, когда это возможно (когда оно при этом еще влезает на экран), отображалось прямо под редактируемой строкой, т.е. так же, как и "встроенное" меню/история, которое появляется при нажатии Ctrl+Down?
Post Reply

Return to “Предложения и идеи”