Управление custom-колонками с помощью lua-скрипта

Разработка Far.
Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Maximus5 » Fri 05 Dec, 2014 14:24

Latest post of the previous page:

Меня текущая реализация устраивает. Кроме разве что того, что не нужно грузить C0 для всех файлов панели при входе в папку, а только для видимых. Но это уже внутренности (патч в бис-е у меня есть).

Делать "интерфейс" для конфигуратора IMHO не стоит усилий, все хотелки не предусмотришь.

User avatar
John Doe
Бюрократ
Posts: 11246
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by John Doe » Fri 05 Dec, 2014 14:33

Maximus5 wrote: Делать "интерфейс" для конфигуратора IMHO не стоит усилий, все хотелки не предусмотришь.
О каком интерфейсе речь?

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Maximus5 » Fri 05 Dec, 2014 14:37

О настройке колонок. Типа {ver},{diz} и т.п. Работы дофига а эффект не значителен.

User avatar
John Doe
Бюрократ
Posts: 11246
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by John Doe » Fri 05 Dec, 2014 14:42

Maximus5 wrote: О настройке колонок. Типа {ver},{diz} и т.п. Работы дофига а эффект не значителен.
В каком месте это работы дофига, покажите.
Фар тупо передаёт lua-обработчику шаблон, и получает обратно готовый результат для отображения.
Работы 0.

Эффект же потенциально весьма значителен.
Представьте, если плагины возвращают 50 колонок, а фактически отображается одна.
Мой подход позволил бы не делать лишнюю работу для 49 ненужных в данный момент колонок.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Maximus5 » Fri 05 Dec, 2014 14:45

zg уже отвечал кажись.

User avatar
zg
zero-gravity
Posts: 5263
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 43 times
Contact:

обсуждение GetCustomDataW и FreeCustomDataW.

Post by zg » Fri 05 Dec, 2014 14:56

John Doe wrote:Но я и на ответ отвечал.
я его не понял.
John Doe wrote:Но я не вижу в этой теме тех, кто вообще против управления.
вы против. Шмуел против:
Shmuel wrote:Мне нынешняя конструкция совсем не нравится.
харт высказался неопределённо. итого 3:1 в пользу отката.
Shmuel wrote:У меня тоже есть.
они ж не опубликованы.
John Doe wrote:В каком месте это работы дофига, покажите.
Фар тупо передаёт lua-обработчику шаблон, и получает обратно готовый результат для отображения.
Работы 0.
ну раз работы 0, давайте патч.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Shmuel » Fri 05 Dec, 2014 15:02

zg wrote:
Shmuel wrote:У меня тоже есть.
они ж не опубликованы.
viewtopic.php?p=65023#p65023

User avatar
John Doe
Бюрократ
Posts: 11246
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by John Doe » Fri 05 Dec, 2014 15:13

zg wrote: вы против. Шмуел против:
Я возражаю против того, чтобы заморозить текущую реализацию. Но совершенно не против идеи управления с помощью lua-скрипта.
Если дальше текущей реализации вы не готовы идти, то другое дело.
(Но это ведь не означает, что никто другой не может реализовать)
zg wrote: John Doe писал(а):
Но я и на ответ отвечал.
я его не понял.
Мне не лень повторить.
В момент перечитывания панели фар не будет опрашивает C0-плагины, этим займётся обработчик (при его наличии).
Фар берёт строку (заданную в режиме панели), и передаёт обработчику.
Обработчик интерпретирует строку как ему заблагорассудится, и (при необходимости) самостоятельно опрашивает плагины.
(Для этого фар может предоставить функцию, типа Plugin.QueryContent(guid,...)).
zg wrote: ну раз работы 0, давайте патч.
Не надо воспринимать буквально.
Предлагаю обсудить идею.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Shmuel » Fri 05 Dec, 2014 16:37

С именами колонок можно было бы сделать так:

Code: Select all

intptr_t GetCustomDataW(
  const wchar_t *FilePath,
  size_t Count,           // (_In)  сколько колонок в массиве Names; из настроек панели
  const wchar_t **Names,  // (_In)  имена колонок; из настроек панели
  const wchar_t ***Data   // (_Out) данные для колонок
);

void FreeCustomDataW(size_t Count, wchar_t** Data);
И не нужны были бы обработчики. Мы же для нативных фаровских колонок обработчики не вызываем.

User avatar
DrKnS
Posts: 4618
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 121 times
Contact:

обсуждение GetCustomDataW и FreeCustomDataW.

Post by DrKnS » Fri 05 Dec, 2014 17:37

zg wrote:пока ещё есть время что-то изменить. может быть.
Измени, пожалуйста, параметры у GetCustomDataW/FreeCustomDataW на, как везде, структуру CustomDataInfo со StructSize, Instance и всем остальным необходимым.

User avatar
John Doe
Бюрократ
Posts: 11246
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by John Doe » Fri 05 Dec, 2014 19:02

Shmuel wrote: из настроек панели
Это как?
Данные возвращаются плагином по имени колонки?
Shmuel wrote: Мы же для нативных фаровских колонок обработчики не вызываем.
Только потому, что в этом случае обработчики уже в фаре.
И колонки тоже сейчас без обработчиков вполне работают, но мы же хотим большего контроля.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Shmuel » Fri 05 Dec, 2014 19:12

John Doe wrote: Данные возвращаются плагином по имени колонки?
Да.
John Doe wrote: Только потому, что в этом случае обработчики уже в фаре.
Впервые слышу.
John Doe wrote: но мы же хотим большего контроля.
Не знаю, кто это "мы".

User avatar
John Doe
Бюрократ
Posts: 11246
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by John Doe » Fri 05 Dec, 2014 20:15

Shmuel wrote:
John Doe wrote: Только потому, что в этом случае обработчики уже в фаре.
Впервые слышу.
Ок. Давайте по порядку.
Как это будет выглядеть в настройке режимов панели? Пример.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Shmuel » Fri 05 Dec, 2014 20:25

John Doe wrote: Как это будет выглядеть в настройке режимов панели? Пример.
<CRC32>

User avatar
John Doe
Бюрократ
Posts: 11246
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by John Doe » Fri 05 Dec, 2014 20:35

Что если у нас есть более 1 плагина, предоствавляющего колонку CRC?
Как в одной колонке выводить для mp3 длительность, а для jpg размеры?

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by Shmuel » Fri 05 Dec, 2014 20:45

John Doe wrote: Что если у нас есть более 1 плагина, предоствавляющего колонку CRC?
Я уже высказывал своё мнение выше в этой теме.
John Doe wrote: Как в одной колонке выводить для mp3 длительность, а для jpg размеры?
С чего бы это? Фар же не выводит в одной колонке для mp3 время модификации, а для jpg размеры.

User avatar
John Doe
Бюрократ
Posts: 11246
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

обсуждение GetCustomDataW и FreeCustomDataW.

Post by John Doe » Fri 05 Dec, 2014 20:53

Shmuel wrote: Я уже высказывал своё мнение выше в этой теме.
Будьте добры высказать его повторно, или дать ссылку.
Shmuel wrote: С чего бы это? Фар же не выводит в одной колонке для mp3 время модификации, а для jpg размеры.
Панель узкая, под все виды колонок места не хватит.
Для одних типов файлов меня больше интересует одна информация, для других - другая.
Для exe - версия. Для html - title. Всё это может быть в одной колонке. Может и не быть, кому как удобно.

Post Reply

Return to “Development”