PictureView 3 — просмотр изображений различных форматов
PictureView 3 — просмотр изображений различных форматов
В этой теме обсуждается плагин PictureView 3.
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.
Дальнейшее развитие версии 1.5, переделано под API Far 3.0.
Об извлечении плагинов из дистрибутивов ACDSee.
PS: API как было убогим в Far 2, так и осталось...
Старый тред с обсуждением предыдущих версий: PictureView 1 и 2.
Дальнейшее развитие версии 1.5, переделано под API Far 3.0.
Об извлечении плагинов из дистрибутивов ACDSee.
PS: API как было убогим в Far 2, так и осталось...
- Attachments
-
- PictureView3_20140813_last_xp.7z
- Последняя версия, работающая на WinXP
- (321.22 KiB) Downloaded 1226 times
- buniak_a_h
- Posts: 4262
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
PictureView 3 — просмотр изображений различных форматов
Latest post of the previous page:
Такое не считается быстрым? Прошу прощения, если в синтаксисе напорол - на C с 94-го года прошлого тысячелетия не писал… Но идея понятна
Code: Select all
PanelControl(PANEL_ACTIVE, FCTL_GETPANELITEM, i, &pri);
if (pri->item.FileAttributes & FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY)
PictureView 3 — просмотр изображений различных форматов
Ага, только вот первой строчке нужно дать память неизвестного размера, так как она туда копирует имя файла (до 32768 символов), описание и прочую очень полезную информацию помимо нужных FileAttributes и Flags.
Last edited by SEt on Tue 27 Oct, 2020 13:21, edited 1 time in total.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
Я поднял вопрос.
Но ведь даже и сейчас, пробегая по элементам панели, можно не освобождать память после опроса каждого элемента и перевыделять, если для очередного элемента требуется больше, чем уже выделено. А если, когда нужно больше, увеличивать размер не менее чем вдвое, то лишь на очень специально сформированных панелях это будет тормозить. Кстати, при таком подходе можно будет проверять и расширения имён файлов, чтобы подсчитывать только те файлы, которые по имени похожи на картинки поддерживаемых форматов.
Last edited by HaRT on Tue 27 Oct, 2020 14:17, edited 2 times in total.
Reason: Добавлена ремарка про анализ имён файлов для более точного подсчёта
Reason: Добавлена ремарка про анализ имён файлов для более точного подсчёта
Фар есть инструмент, а не нянька. © 2009 DrKnS
PictureView 3 — просмотр изображений различных форматов
PV практически никогда не определяет поддерживаемость файла по расширению.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
Теперь можно получать атрибуты без манипуляций с динамической памятью и без удвоения вызова PanelControl.
Фар есть инструмент, а не нянька. © 2009 DrKnS
PictureView 3 — просмотр изображений различных форматов
Я бы не спешил с текущей реализацией – ответил там.
- Grom PE
- Posts: 34
- Joined: Sun 21 Jun, 2015 14:24
- Has thanked: 5 times
- Been thanked: 2 times
- Contact:
PictureView 3 — просмотр изображений различных форматов
Иногда нужно смотреть файлы картинок текстом, в просмотрщике Far'а, для инспекции байтов.
Поэтому я захотел по Alt+F3 включать обычный просмотрщик, а по F3 — как и было до этого, картинки — картинками, остальное — текстом.
Прямых функций для одноразового просмотра без PictureView не нашёл, как и прямых функций для включения/выключения настройки "Process Actions → [x] View", поэтому накостылил через вызов диалога настроек перед просмотром и после:
%APPDATA%\Far Manager\Profile\Macros\scripts\Shell_AltF3.lua
Оставляю здесь на случай, если кому пригодится. Но и буду рад менее костыльному решению.
Поэтому я захотел по Alt+F3 включать обычный просмотрщик, а по F3 — как и было до этого, картинки — картинками, остальное — текстом.
Прямых функций для одноразового просмотра без PictureView не нашёл, как и прямых функций для включения/выключения настройки "Process Actions → [x] View", поэтому накостылил через вызов диалога настроек перед просмотром и после:
%APPDATA%\Far Manager\Profile\Macros\scripts\Shell_AltF3.lua
Code: Select all
local PVID="50563330-D240-4625-AC8B-B70DF9075630";
local needReenable = false;
-- assuming that picture view on View action is normally always enabled
local viewConfigKey = {English="w", Russian="п"};
Macro {
description="Bypass picture viewer";
area="Shell";
key="AltF3";
condition=function()
return Plugin.Exist(PVID);
end;
action=function()
if Plugin.Config(PVID) then
needReenable = true
Keys(viewConfigKey[Far.GetConfig("language.main")] or viewConfigKey.English)
Keys("Enter F3")
end;
end;
}
function doWhenInShell()
if Plugin.Config(PVID) then
Keys(viewConfigKey[Far.GetConfig("language.main")] or viewConfigKey.English)
Keys("Enter")
needReenable = false
end
end
Event {
description="Test";
group="ViewerEvent";
action=function(Id, Event, Param)
if needReenable and Event == far.Flags.VE_KILLFOCUS then
mf.postmacro(doWhenInShell)
end
end;
}
Last edited by Grom PE on Thu 29 Oct, 2020 03:36, edited 1 time in total.
PictureView 3 — просмотр изображений различных форматов
SEt, обнаружил очень странное явление, пришлось изрядно потрудиться, но виновник был найден - этот плагин.
Для воспроизведения потребуется скачать это:
1. Установщик фубара2000: https://www.dropbox.com/s/mn8mjctjyplsc ... 2.exe?dl=1
2. Архив портабельной версии с моими дополненными компонентами: https://www.dropbox.com/s/03yoomspualyk ... ar.7z?dl=1
3. Фар + плагин PictureView 3
---
- Распаковываем Foobar.7z
- Запускаем фар и убеждаемся, что плагин PictureView 3 установлен и запущен
- Делаем Far.exe /clearcache (обязательно) и закрываем фар
- Запускаем фар
- Запускаем энтером установщик foobar2000_v1.6.3_beta_2.exe, выбираем портабельную версию, в качестве папки выбираем ту, что распаковали ранее, то есть ./Foobar и ставим крыжик Keep components in their current folder
- Install
---
Ожидаемое поведение: фубар обновится без проблем
Реальное поведение: будет ругань на Shared.dll, причём ОК нажимается 7 раз, то есть ровно столько, сколько моих (не дефолтных компонентов в ./Components)
Если удалить плагин PictureView 3, то ошибка не воспроизводится.
Очень странный случай, поэтому прошу помощи.
Для воспроизведения потребуется скачать это:
1. Установщик фубара2000: https://www.dropbox.com/s/mn8mjctjyplsc ... 2.exe?dl=1
2. Архив портабельной версии с моими дополненными компонентами: https://www.dropbox.com/s/03yoomspualyk ... ar.7z?dl=1
3. Фар + плагин PictureView 3
---
- Распаковываем Foobar.7z
- Запускаем фар и убеждаемся, что плагин PictureView 3 установлен и запущен
- Делаем Far.exe /clearcache (обязательно) и закрываем фар
- Запускаем фар
- Запускаем энтером установщик foobar2000_v1.6.3_beta_2.exe, выбираем портабельную версию, в качестве папки выбираем ту, что распаковали ранее, то есть ./Foobar и ставим крыжик Keep components in their current folder
- Install
---
Ожидаемое поведение: фубар обновится без проблем
Реальное поведение: будет ругань на Shared.dll, причём ОК нажимается 7 раз, то есть ровно столько, сколько моих (не дефолтных компонентов в ./Components)
Если удалить плагин PictureView 3, то ошибка не воспроизводится.
Очень странный случай, поэтому прошу помощи.
Last edited by skipik on Sat 09 Jan, 2021 11:18, edited 1 time in total.
PictureView 3 — просмотр изображений различных форматов
на всякий случай скажу что у меня не повторяется,
хотя вроде все сделал по твоему описанию,
причем даже несколько раз, со всеми упомянутыми галочками и -clearcache
PictureView 3.2019.10.9
Far Manager, version 3.0.5687.0 x86
хотя вроде все сделал по твоему описанию,
причем даже несколько раз, со всеми упомянутыми галочками и -clearcache
PictureView 3.2019.10.9
Far Manager, version 3.0.5687.0 x86
PictureView 3 — просмотр изображений различных форматов
citRiks, у меня абсолютно стабильное повторение, поэтому и запостил сюда.
После очистки кеша фар перезапускали? Это важно, чуть дополнил инструкцию.
Если что - вот видео проблемы: https://www.dropbox.com/s/bsf3ovnrcdqkd ... 1.mp4?dl=0
Для меня загадка, как может влиять плагин-просмотрщик на установку других программ, но факт остаётся фактом - стОит убрать PV3 и сразу ошибка пропадает...
После очистки кеша фар перезапускали? Это важно, чуть дополнил инструкцию.
Если что - вот видео проблемы: https://www.dropbox.com/s/bsf3ovnrcdqkd ... 1.mp4?dl=0
Для меня загадка, как может влиять плагин-просмотрщик на установку других программ, но факт остаётся фактом - стОит убрать PV3 и сразу ошибка пропадает...
Last edited by skipik on Sat 09 Jan, 2021 11:26, edited 2 times in total.
PictureView 3 — просмотр изображений различных форматов
skipik, не могу повторить – всё устанавливается без проблем.
Могу предложить следующие варианты:
1) Отключить всякие антивирусы, в том числе что там встроено в win10.
2) Под Process Monitor посмотреть, что происходит при удачной и при неудачной установке.
Могу предложить следующие варианты:
1) Отключить всякие антивирусы, в том числе что там встроено в win10.
2) Под Process Monitor посмотреть, что происходит при удачной и при неудачной установке.
PictureView 3 — просмотр изображений различных форматов
SEt, все антивирусы выключил - всё равно повторяется. Сейчас попробую на виртуалке повторить и если что - залью вам снапшот.
UPD: повторилось на виртуалке с только что установленной ОС, сейчас предоставлю снапшот.
Как воспроизводить - показывал на видео.
UPD2: готово, вот снапшот: https://www.dropbox.com/s/ncnwtv3ax0nkz ... s.rar?dl=1
ОС свежая, только что установленная, фар тоже свежий, только добавлен плагин PV3, больше никаких настроек.
UPD: повторилось на виртуалке с только что установленной ОС, сейчас предоставлю снапшот.
Как воспроизводить - показывал на видео.
UPD2: готово, вот снапшот: https://www.dropbox.com/s/ncnwtv3ax0nkz ... s.rar?dl=1
ОС свежая, только что установленная, фар тоже свежий, только добавлен плагин PV3, больше никаких настроек.
Last edited by skipik on Sat 09 Jan, 2021 15:54, edited 4 times in total.
PictureView 3 — просмотр изображений различных форматов
да, перезапускал, в итоге.
может у меня и была нарушена последовательность в первых попытках воспроизвести.
но в последних попытках уже я думаю точно что все по твоему списку.
С виртуалкой это ты хорошо придумал, автор плагина нашелся,
поэтому я умываю руки на данный момент
PictureView 3 — просмотр изображений различных форматов
skipik, нашёл причину, в следующей версии будет исправлено.
- HaRT
- Moderator
- Posts: 10863
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
PictureView 3 — просмотр изображений различных форматов
А можно в двух словах для широкой публики, что приводило к таким странным эффектам?
Фар есть инструмент, а не нянька. © 2009 DrKnS
PictureView 3 — просмотр изображений различных форматов
Изменение поиска dll из-за наследования SetDllDirectory в запускаемых процессах.