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

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
2useven10
Posts: 4184
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 204 times

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

Post by 2useven10 »

Latest post of the previous page:

обновил... VFile ушёл в plugin.hpp, вместо костыля добавил FarViewerVFile() в PlluginStartupInfo
2useven10
Posts: 4184
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 204 times

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

Post by 2useven10 »

HaRT QView посмотрел - никаких новых идей (вьвер или ручная работа с панелью - зачем тут вируальные файлы?). Сорсов анаморфозиса у меня нет - ничего сказать не могу...
User avatar
HaRT
Moderator
Posts: 9649
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 118 times
Been thanked: 244 times

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

Post by HaRT »

2useven10 wrote:Сорсов анаморфозиса у меня нет - ничего сказать не могу...
Так Вы хотя бы посмотрите, что делает Анаморфозис (для пользователя), — тогда станет понятно, зачем в QView виртуальные файлы.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 12992
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 40 times
Been thanked: 309 times

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

Post by John Doe »

Я видимо тоже не очень понимаю зачем там виртуальные файлы.

Анаморфозис выводит в qview всякую информацию.
API для доступа плагинов к qview просто отсутствует, поэтому анаморфозис использует какой-то хак.

Чтобы избавиться от хаков необходимо qview-API, да. Но причём тут виртуальные файлы?

P.S.
Мне понятно зачем нужна виртуализация в qview (например на панели FTP, или в архиве).
Но при чём тут анаморфозис?
User avatar
HaRT
Moderator
Posts: 9649
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 118 times
Been thanked: 244 times

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

Post by HaRT »

John Doe wrote:Причём я понимаю зачем нужна виртуализация в qview (например на панели FTP, или в архиве).
Но при чём тут анаморфозис?
При наличии виртуализации в QView у Анаморфозиса отпала бы необходимость использовать хаки — он смог бы штатно обходиться временным файлом. Впрочем, специализированный API даже лучше.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

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

Post by WARP ItSelf »

Ну, скажем, апи для QView позволило бы не просто подсовывать некий временный файл, а прямо таки в цвете рисовать всякие mp3 теги. Анаморфозис он же тупой. Он по некоторым критериям определяет, что файл открывается в QView и отдает вместо файла другой. Виртуальный файл это несколько другое. Правда я считаю, что для QView виртуальные файлы не обязательны, там скорее Owner Draw предоставить надо. Файлы ни раскраски не дают ни переноса строк по-человечески.

P.S. Простите за несвязность мысли, нетрезв.
Никто не знал, а я...
2useven10
Posts: 4184
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 204 times

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

Post by 2useven10 »

mantis #1836 -- новаая версия вьювера с поддержкой 'виртуальных' файлов. Вьювер читает виртуальные файлы либо через предоставляемый ему C++ интерфейс VFile: -- для вызова напрямую из фар, либо через plain C вариант этого интерфейса struct SVFile и доступную через FSF ф-ю FarViewerVFile -- для вызова из плагинов. Предлагаемое решение позволяет использовать вьювер для показа данных, не используя настоящих файлов (не надо создаватть временные файлы, достаточно предоставить интерфейс для получения данных вьювером). И НЕ БОЛЕЕ. В интерфейс вошли только методы, которые необходимы для работы вьювера (кроме Write - он не используется).
Maximus5
Posts: 3294
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 7 times
Contact:

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

Post by Maximus5 »

со ссылкой ошибся
User avatar
HaRT
Moderator
Posts: 9649
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 118 times
Been thanked: 244 times

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

Post by HaRT »

Maximus5 wrote:со ссылкой ошибся
Я исправил.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

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

Post by Skirda »

пробуем: http://skirda-file.googlecode.com/files ... 0001836.7z
неплохо бы простенький плагин...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

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

Post by Skirda »

Помыслил...
Это решение половинчатое в стиле "юзер вызвал плагин, который что-то показал во вьювере".
Нужна вторая половина - "юзер открыл вьювер и выбрал нужный режим просмотра". Т.е. фактически здесь нужна привязка к ProcessViewerEventW (VE_что-то-там) с соответствующим функционалом.

Есть два пути:
1. Применяем существующую реализацию и попутно развиваем вторую половину
2. Ждем полноценной реализации идеи ;-)
We are the Borg. You will be assimilated.
So Say We All!
User avatar
HaRT
Moderator
Posts: 9649
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 118 times
Been thanked: 244 times

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

Post by HaRT »

Skirda wrote:Нужна вторая половина - "юзер открыл вьювер и выбрал нужный режим просмотра"
А как насчёт сценария “пользователь открыл просмотрщик, вызвал через меню интересующий его плагин и ожидает, что данные файла будут представлены в другом виде (но с сохранением текущей позиции и выделения найденного)”?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Maximus5
Posts: 3294
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 7 times
Contact:

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

Post by Maximus5 »

первым членом SVFile надо бы StructSize положить.

И меня гораздо больше интересует внедрение SVfile в поиск по плагиновой панели.
Imho только в этом случае мы получим реальный выигрыш по скорости.
Например, экспортом в плагине:

Code: Select all

struct GetSVFileInfo
{
size_t StructSize;
HANDLE hPanel;
struct PluginPanelItem *PanelItem; // по одному элементу
OPERATION_MODES OpMode;
SVFile Dest; // [OUT]
};
int GetSVFile(struct GetSVFileInfo);
Ну и про анаморфозис не забыть. Это скорее к ProcessViewerEventW.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

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

Post by zg »

Skirda wrote:1. Применяем существующую реализацию и попутно развиваем вторую половину
я бы не стал этого делать до официальной заморозки апи в тройке.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

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

Post by Skirda »

HaRT wrote:А как насчёт сценария “пользователь открыл просмотрщик, вызвал через меню интересующий его плагин и ожидает, что данные файла будут представлены в другом виде (но с сохранением текущей позиции и выделения найденного)”?
И нафига козе баян, если, при наличии второй половины "второй" вьювер не будет открываться, а все будет происходить в ЭТОЙ копии.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

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

Post by Skirda »

zg wrote:
Skirda wrote:1. Применяем существующую реализацию и попутно развиваем вторую половину
я бы не стал этого делать до официальной заморозки апи в тройке.
Ну как бы одно другому не мешает, IMHO
We are the Borg. You will be assimilated.
So Say We All!
Post Reply

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