"Виртуализировать" вьювер

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: "Виртуализировать" вьювер

Post by Skirda »

Latest post of the previous page:

zg wrote:
Skirda wrote:1. Применяем существующую реализацию и попутно развиваем вторую половину
я бы не стал этого делать до официальной заморозки апи в тройке.
Ну как бы одно другому не мешает, IMHO
We are the Borg. You will be assimilated.
So Say We All!
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: "Виртуализировать" вьювер

Post by zg »

Skirda wrote:Ну как бы одно другому не мешает, IMHO
как бы мешает, появляется лишняя головная боль.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Re: "Виртуализировать" вьювер

Post by HaRT »

Skirda wrote:нафига козе баян, если, при наличии второй половины "второй" вьювер не будет открываться, а все будет происходить в ЭТОЙ копии.
Возможно, я плохо выразился.
Пользователь хочет переключаться между разными представлениями одних и тех же данных. Например, просмотр в разных системах счисления. Т.е. надо открыть просмотрщик, посмотреть текст, а уже потом переключаться в этом же экземпляре просмотрщика на другие представления.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Re: "Виртуализировать" вьювер

Post by 2useven10 »

Skirda можно привести примеры (желательно реальные) сценариев использования 'второй половины' ?
Hart что такое сохранение позиции при переключении режимов просмотра?
позиция имеет смысл для реальных данных, которые показываются через интерфейс (вьювер не имеет к ним доступа),
у каждой такой 'проекции' позиции свои, и 'сохранять' их очень сомнительное занятие.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: "Виртуализировать" вьювер

Post by Maximus5 »

На счет 'второй половины' - уже не раз говорили.

Мне видится такой сценарий
  • Юзер жмет F3 или CtrlQ на файле (и если таки открывается вьювер, а не кто-то другой по ассоциации, то)
  • Фар посылает во все плагины, экспортирующие ProcessViewerEventW событие (новое) VE_ANALYSE с информацией о файле: откуда открываем (F3/CtrlQ), путь, размер,...
  • Если никто из плагинов событие не обработал - работаем как обычно (показать содержимое файла во встроенном вьювере)
  • Если же (>=1) плагинов согласились, то выбираем плагин как и с архивами (по CtrlPgDn), и в выбранный посылаем событие (новое) VE_OPENVFILE, чтобы этот плагин создал интерфейс для работы с файлом
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: "Виртуализировать" вьювер

Post by John Doe »

Maximus5 wrote:Причем перехват идет только в CtrlQ
Зачем анаморфозису вообще что-то перехватывать?
Имхо стоит подойти с другой стороны: сделать область быстрого просмотра настраиваемой, и позволить выводить туда к примеру содержание предоставляемое плагинами, типа С0.
Maximus5 wrote:[*]Фар посылает во все плагины, экспортирующие ProcessViewerEventW событие (новое) VE_ANALYSE с информацией о файле: откуда открываем (F3/CtrlQ), путь, размер,...
Допустим открыта панель FTP. Зачем по F3 посылать что-то куда-то, если заведомо известно что обработать событие должен хост-плагин панели?

P.S.
И что насчёт 'третьей половины': виртулизировать поиск и т.п.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: "Виртуализировать" вьювер

Post by Maximus5 »

John Doe wrote:
Maximus5 wrote:Причем перехват идет только в CtrlQ
Зачем анаморфозису вообще что-то перехватывать?
Имхо стоит подойти с другой стороны: сделать область быстрого просмотра настраиваемой, и позволить выводить туда к примеру содержание предоставляемое плагинами, типа С0.
Странное "имхо". Может ты читал невнимательно? Обрисуй сценарий (алгоритм) как должна работать "настраиваемая" область просмотра.
"Перехват" анаморфозис выполняет сейчас, т.к. апи не было. А как-раз апи я и предлагаю.
John Doe wrote:
Maximus5 wrote:[*]Фар посылает во все плагины, экспортирующие ProcessViewerEventW событие (новое) VE_ANALYSE с информацией о файле: откуда открываем (F3/CtrlQ), путь, размер,...
Допустим открыта панель FTP. Зачем по F3 посылать что-то куда-то, если заведомо известно что обработать событие должен хост-плагин панели?
А какая нафиг разница, открывается файл с диска или из ахрива/плагина? Когда я жму F3 или CtrlQ - я ожидаю увидеть содержимое файла, или, что предлагается, некую декодированную информацию. Какая мне разница, откуда фар достанет этот файл??
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:

Re: "Виртуализировать" вьювер

Post by John Doe »

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

Re: "Виртуализировать" вьювер

Post by Maximus5 »

В простейшем случае туда просто выводятся данные C0-колонок.
Хм. Возможно, конечно, но только не C0.
Данные для отображения в колонке панели и области QView могут различаться не только форматом, но и степенью детализации. То есть, нужно или городить новый интерфейс для извлечения "колонок" C1, или таки доводить до ума существующий.
Но для "доведения" нужно с ТЗ определиться.

С одной стороны, разработчику плагина (да и фара) проще отдать/взять данные одним махом (блоком памяти), а с другой - нафига тогда этот SVFile делали? Честно говоря, я себе не представляю UseCase, когда нельзя отдать данные одним блоком.
Но разница откуда открывается файл есть: владелец панели заведомо знает что делать с данными, и зачем опрашивать какие-то другие плагины мне неясно.
Возможно я невнимательно читал, да, поэтому и прошу пояснить.
Разницы как раз нет. На твоем же примере - на ftp лежит файл 1234.mp3, я хочу в области QView смотреть информацию по нему, а не содержимое. Ты же не будешь утверждать, что владелец панели (плагин ftp) должен знать как извлекать эту информацию?
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Re: "Виртуализировать" вьювер

Post by 2useven10 »

Для режима QuickView, на мой взгляд, придётся научить вьювер работать с цветом.
Например на каждый символ - 4 байта: 2 код (1200 или заданный CodePage) и 2 индекс цвета (из стандартного набора или из заданной палитры). Для этого интерфейс VFile надо немного расширить.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: "Виртуализировать" вьювер

Post by Maximus5 »

Эээ, стой, нафига FarColor делался? Никаких индексов. Структура уже есть.

А вот на счет цвета - это хорошо. На отсутствие колорера во вьювере часто жалуются)
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Re: "Виртуализировать" вьювер

Post by 2useven10 »

Я имел ввиду примерно так...
VFile {
...
bool GetPalette(int &nitem, const FarColor* &palette) { ... }
bool GetFormat( uint &cpdepage, uint &clormode ) { codepage = 1200; colormode = 1; returt true; /* если false - дефолт - как сейчас */ }
};
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: "Виртуализировать" вьювер

Post by Maximus5 »

Ты чего, какая палитра в TrueColor? Кто ее тебе заранее сформирует?
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Re: "Виртуализировать" вьювер

Post by 2useven10 »

палитра неудачное название. пусть будут используемые цвета (colors) - обычный текст, selected, ...
сформирует тот кто отдаёт данные для просмотра. просто FarColor на каждый символ - жаба душит :)
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: "Виртуализировать" вьювер

Post by Maximus5 »

Не мудри. В редакторе и панелях, жаба значит не душит. А во вьювере внезапно объявится? Чем он такой особенный?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: "Виртуализировать" вьювер

Post by John Doe »

Maximus5 wrote:Данные для отображения в колонке панели и области QView могут различаться не только форматом, но и степенью детализации. То есть, нужно или городить новый интерфейс для извлечения "колонок" C1, или таки доводить до ума существующий.
Было бы неплохо довести до ума существующий, и это кстати обсуждалось в теме C0.

Maximus5 wrote:На твоем же примере - на ftp лежит файл 1234.mp3, я хочу в области QView смотреть информацию по нему, а не содержимое. Ты же не будешь утверждать, что владелец панели (плагин ftp) должен знать как извлекать эту информацию?
Да, мы тут просто о разных вещах говорим.
1. Получить файл (например с фтп), и не весь, а только часть, требуемую для 2.
2. Получить информацию для C0 и QView.
Перед тем как перейти к 2 надо сделать 1.

В моём понимании эти шаги должны быть разделены, и 1 это нижний уровень, на котором уже будут строиться и 2, и поиск, и всё остальное.
Post Reply

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