Универсальные Custom-колонки, предоставляемые плагинами

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by John Doe »

Latest post of the previous page:

Господа, а как насчёт апи для QView?
Плагины ведь по сути одни и те же, что для колонок, что для QView.
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by HaRT »

John Doe wrote:Господа, а как насчёт апи для QView?
Плагины ведь по сути одни и те же, что для колонок, что для QView.
А ещё было бы здорово, если бы кто-нибудь написал колоночный хост для подплагинов Анаморфозиса. Тогда в панели или в диалоге редактирования описания строчки выводились бы склеенными через пробел, а в редакторе, открытом по Edit из DialogTools, — как положено, отдельными строками.

Правда, для custom.module тормозило бы это нещадно…
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by John Doe »

Подплагинов Анаморфозиса очень мало, и разумнее будет их просто модернизировать под новое АПИ.
А сам Анаморфозис вообще нет смысла поддерживать, ибо вместо хаков надо АПИ для QView.
А плагины сами могли бы решать что им выводить в колонке, а что в QView.
Например, ver_c0 в QView выводил бы все поля VERINFO, а в колонке - только численное значение (либо, предоставлять несколько колонок).

А html_c0 - в колонке только заголовок, а в QView - весь текст документа.
(Естественно, что в этом случае html_c0 можно сделать универсальным плагином, который в том числе мог бы вызываться из редактора, вьювера, панелей. По префиксу и из меню)
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by John Doe »

HaRT wrote:Тогда в панели или в диалоге редактирования описания строчки выводились бы склеенными через пробел, а в редакторе, открытом по Edit из DialogTools, — как положено, отдельными строками.
Про описания ведь пока речь не идёт?
HaRT wrote:Правда, для custom.module тормозило бы это нещадно…
Выше уже предлагалось выполнять в отдельном потоке. Или такие ресурсоёмкие операции вообще не должны выполняться при отображении в колонке, либо как-то их кэшировать...
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by HaRT »

John Doe wrote:Подплагинов Анаморфозиса очень мало, и разумнее будет их просто модернизировать под новое АПИ.
А сам Анаморфозис вообще нет смысла поддерживать, ибо вместо хаков надо АПИ для QView.
А плагины сами могли бы решать что им выводить в колонке, а что в QView.
Здраво, согласен.
John Doe wrote:Про описания ведь пока речь не идёт?
Да, про них родимых.
John Doe wrote:Выше уже предлагалось выполнять в отдельном потоке. Или такие ресурсоёмкие операции вообще не должны выполняться при отображении в колонке, либо как-то их кэшировать...
В отдельном потоке хорошо, но тогда нужна чёткая индикация, что операция не завершена. А в случае с сортировкой по этой колонке и вовсе результат не особо осмыслен, пока все файлы не обработаны, а это может быть очень долго. Ну а при кэшировании своих проблем не оберёшься. Это я к тому, что надо дальше думать, как сделать, чтобы интерфейс получился удобный.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by John Doe »

HaRT wrote:В отдельном потоке хорошо, но тогда нужна чёткая индикация, что операция не завершена.
Во-первых в заголовке, а во-вторых, в самой колонке.
HaRT wrote:А в случае с сортировкой по этой колонке и вовсе результат не особо осмыслен, пока все файлы не обработаны, а это может быть очень долго.
Никто не заставляет сортировать по таким колонкам. Собственно и простенький ver_c0 будет тормозить на больших/сетевых папках.

Но можно представить себе плагины которые работают заведомо быстро (например информацию получают не из содержимого файлов). Такие можно было бы пускать в основном потоке, что с самого начала обеспечило бы корректность сортировки.
HaRT wrote:
John Doe wrote:Про описания ведь пока речь не идёт?
Да, про них родимых.
Вот я и говорю, рано про них.
HaRT wrote:Ну а при кэшировании своих проблем не оберёшься. Это я к тому, что надо дальше думать, как сделать, чтобы интерфейс получился удобный.
Вообще без кэширования грустно. Любое обновление панели - и всё по-новой.
Хотя бы текущую папку кэшировать.
Хорошо бы кэшировать централизованно, чтобы не приходилось в каждом плагине изобретать велосипед.
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by John Doe »

  • Допустим есть штук 10 с0-плагинов. Каждый из них по разу дёрнет все файлы на панели. Представляю тормоза.
  • Допустим, в каждом можно сделать ограничение по маске. Значит каждый из них должен иметь свой диалог настройки.
  • Очевидно, что 10 плагинов нам одновременно не нужны, и более того, плагины типа md5_c0 будут неслабо тормозить.
    Значит надо какой-то удобный способ как-то динамически активировать/дезактивировать плагины.
  • Отдельную информацию удобно видеть в нескольких разных колонках, а некоторую наоборот - в одной колонке.
    Причём иногда в одной колонке хотелось бы видеть информацию от разных плагинов, по шаблону.
Без всего этого пользоваться с0-плагинами будет неудобно. Но и пихать все эти настройки в фар тоже не годится.
В этом свете мысль Maximus5 о хост-плагине и субплагинах мне представляется наиболее правильным архитектурным решением.

Пример такого подхода можно увидеть в плагине PictureView 2 mod.
Применительно к с0-хост-плагину это означало бы следующее: для всех настроек всех субплагинов было бы одно место, откуда можно было бы рулить и масками, и шаблонами, и отображаемыми колонками, и остальными настройками.

А остальных настроек предвидится тоже немало, учитывая необходимость многопоточности, кэширования данных, не говоря уже о (потенциальных) настройках QView.

Update
Обсуждение идеи хостплагина вышло за пределы с0-плагинов, поэтому отделено: Хост-плагины и субплагины: универсализация.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Max Rusov »

По моему лучше всего было бы так: запрашивать информацию о доп.колонке не для всех элементов, а только для тех, которые видны на экране. При этом, учитывая не thread-safe'ность FAR API лучше делать это не в отдельном потоке, а в Idle. В случае сортировки (поиска?) по такой колонке форсировать вызов для всех элементов, только в этом случае будут тормоза...
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by John Doe »

Max Rusov wrote:По моему лучше всего было бы так: запрашивать информацию о доп.колонке не для всех элементов, а только для тех, которые видны на экране.
Возможно, хотя при листании будет тормозить, да и сортировка...
В любом случае, это не решит остальных вопросов.
Max Rusov wrote:В случае сортировки (поиска?) по такой колонке форсировать вызов для всех элементов, только в этом случае будут тормоза...
Ну пользователь должен понимать что делает. И нужен способ прервать опрос.
Плюс, выше уже говорилось о кэшировании.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Maximus5 »

А это только у меня после запуска C0 заполнен только на активной панели?
Shmuel
Posts: 6840
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Shmuel »

У меня так:
1. После запуска Фара - нигде не заполнен. Надо делать Ctrl-R или другим способом форсировать перечитывание папки.
2. При смене режима панели из того, в котором нет C0, на тот, в котором есть - тоже не заполнен. Опять - нужно либо Ctrl-R, либо переход в другую папку с возвратом.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Maximus5 »

Мысль. Если при входе в папку (или уже в процессе чтения ее) нажать и удерживать Shift - не загружать колонку C0. Так вроде удобнее всего будет входить в толстые папки типа System32
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Kildor »

ShiftEnter — Открыть в проводнике. Неудобно будет.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Maximus5 »

Ну и что, что ShiftEnter? Каким боком это относится к тому, что я предложил?
Ты что, во время входа в папку удерживаешь ShiftEnter? :ha:

PS. По моей задумке, место этой проверке - в будущем хост-плагине
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Игорь Юдинцев »

Maximus5
1) при быстрой навигации Enter-Shift будет частенько превращаться в Shift-Enter.
2) отваливаются макросы на нажатие Shift.
3) для прерывания открытия папки уже есть клавиша — Esc.
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Re: Универсальные Custom-колонки, предоставляемые плагинами

Post by Kildor »

Тогда по пунктам, как ты предлагаешь входить в папку? Лично я это делаю по Enter. И если зажимать при этом Shift, то будет именно ShiftEnter.
Попытался сделать Enter Shift — в папку уже вошёл, а Shift ещё не нажат.


А хост-плагин, если он не будет в официальном дистрибутиве будет злом жутким.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
Post Reply

Return to “Разработка плагинов”