_viewer.wx.lua - просмотр графических файлов

Здесь обсуждается всё, что касается макросов.
IgorZ
Posts: 643
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 11 times
Been thanked: 48 times

_viewer.wx.lua - просмотр графических файлов

Post by IgorZ » Tue 26 Nov, 2019 07:46

Скрипт написан для иллюстрации работы с wxLua.

Скрипт позволяет просматривать графические файлы во многих форматах, в том числе, анимированные.

Attachments
_viewer.wx.lua.1.0.2.7z
(2.89 KiB) Downloaded 23 times
Last edited by IgorZ on Fri 29 Nov, 2019 09:21, edited 4 times in total.

citRiks
Posts: 79
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 8 times
Been thanked: 5 times

_viewer.wx.lua - просмотр графических файлов

Post by citRiks » Wed 04 Dec, 2019 14:26

Latest post of the previous page:

IgorZ wrote:
Wed 04 Dec, 2019 06:00
wxLua должен работать с PDF
Сомневаюсь, что я самостоятельно смогу разобраться. Так что придётся дожидаться. В надежде на то, что потребность в оперативном чтении пдф-ов скриптом в Фаре есть не только у меня, и кто-то из сведущих заинтересуется.
???
Периодически попадаются "серые" сканы. И портабельный бесплатный STDU Viewer, например, перед печатью может их осветлить и фон будет чистым в т.ч. и на бумаге. А SumatraPDF такого не умеет и посылает на печать как есть.
Эвент перехватывает события, а не ключи
Это абсолютно верно с позиции программиста. Пользователь чтобы вызвать событие "Посмотреть картинку" нажимает ключ F3. А эвент перехватывает это событие и обрабатывает его по-своему. Что для пользователя выглядит как перехват ключа F3. Т.е. для пользователя никакой кучи-малы. Он может просто даже не задумывается о том, что там фактически делает эвент. Пользователь видит только результат нажатия на конкретную кнопку.

И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.

buniak_a_h
Posts: 1241
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 79 times
Contact:

_viewer.wx.lua - просмотр графических файлов

Post by buniak_a_h » Wed 04 Dec, 2019 16:55

citRiks wrote:
Wed 04 Dec, 2019 14:26
Эвент перехватывает события, а не ключи
Это абсолютно верно с позиции программиста. Пользователь чтобы вызвать событие "Посмотреть картинку" нажимает ключ F3. А эвент перехватывает это событие и обрабатывает его по-своему. Что для пользователя выглядит как перехват ключа F3. Т.е. для пользователя никакой кучи-малы. Он может просто даже не задумывается о том, что там фактически делает эвент. Пользователь видит только результат нажатия на конкретную кнопку.

И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.
На самом деле есть разница. Перехват ключа может приводить к запуску другого процесса, не связанного с viewer-ом. А перехват события происходит именно при открытии файла вьюером, независимо, чем это открытий инициировано. Простейший пример: QView. Никакие кнопки нажимать не надо; достаточно просто перейти на другой файл.

citRiks
Posts: 79
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 8 times
Been thanked: 5 times

_viewer.wx.lua - просмотр графических файлов

Post by citRiks » Wed 04 Dec, 2019 19:45

buniak_a_h wrote:
Wed 04 Dec, 2019 16:55
Никакие кнопки нажимать не надо; достаточно просто перейти на другой файл
А как не нажав ни одной кнопки перейти на другой файл?

User avatar
HaRT
Moderator
Posts: 9159
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 174 times

_viewer.wx.lua - просмотр графических файлов

Post by HaRT » Wed 04 Dec, 2019 19:53

citRiks wrote:
Wed 04 Dec, 2019 19:45
А как не нажав ни одной кнопки перейти на другой файл?
Кручением колёсика мыши, например.
Фар есть инструмент, а не нянька. © 2009 DrKnS

citRiks
Posts: 79
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 8 times
Been thanked: 5 times

_viewer.wx.lua - просмотр графических файлов

Post by citRiks » Wed 04 Dec, 2019 20:13

HaRT wrote:
Wed 04 Dec, 2019 19:53
Кручением колёсика мыши, например
В контексте обсуждаемого это тоже действие пользователя как и нажатие кнопки.

buniak_a_h
Posts: 1241
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 79 times
Contact:

_viewer.wx.lua - просмотр графических файлов

Post by buniak_a_h » Wed 04 Dec, 2019 22:33

citRiks wrote:
Wed 04 Dec, 2019 19:45
А как не нажав ни одной кнопки перейти на другой файл?
В макросе по таймеру panel.SetPath(…).
Вы хотите доказать, что эвент (перехват события) тождественен макросу (перехвату нажатия кнопки). Тогда Вам придётся вешать макрос НА ВСЕ кнопки: например, в быстром поиске указатель тоже перескакивает, и, соответственно, во вьюере переоткрывается другой файл. Да ещё и анализировать, сместился ли указатель по клавише. Проще признать, что это, всё же разные вещи.

citRiks
Posts: 79
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 8 times
Been thanked: 5 times

_viewer.wx.lua - просмотр графических файлов

Post by citRiks » Thu 05 Dec, 2019 14:33

buniak_a_h wrote:
Wed 04 Dec, 2019 22:33
Вы хотите доказать, что эвент (перехват события) тождественен макросу (перехвату нажатия кнопки)
Всё наоборот. И именно потому, что они не тождественны, изначально я и попросил автора по возможности сделать так чтобы можно было бы использовать сабжевый скрипт не только как Event, но и как обычный макрос.

IgorZ
Posts: 643
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 11 times
Been thanked: 48 times

_viewer.wx.lua - просмотр графических файлов

Post by IgorZ » Fri 06 Dec, 2019 06:45

buniak_a_h wrote:
Wed 04 Dec, 2019 05:26
IgorZ wrote:
Wed 04 Dec, 2019 05:19
А если явно указать полное имя, включая расширение - откроет?
Я не понял, где надо указывать. Там же висит Event на открытие во вьюере.
На самом деле пришлось пока заблокировать макрос: на каждый просмотр выводит сообщение об ошибке; выбираешь Cancel - дальше всё прекрасно показывает. Грустно, что сообщение выводится и при попытке просмотра, скажем, qqq.lua, main.cpp или aaa.txt . Т.е. таких файлов, которые совсем не хочется просматривать как медиа. Сообщение (если выбрать именно Cancel) выводится только один раз, но зато для каждого типа файлов. Достаёт…
Собственно, какое именно сообщение об ошибке выводится? По идее, там должна указываться, как минимум, строка. Заодно: версия скрипта последняя?
buniak_a_h wrote:
Wed 04 Dec, 2019 05:26
На самом деле конкретно файлы типа ts показывает "молча" - т.е. без звука. Видимо, всё же, формат не полностью поддерживается… Грустно, что у меня телевизор других форматов не знает.
Вообще-то, скрипт, как следует из описания, предназначен для просмотра графических файлов, то есть различных статических форматов и анимированных ani/gif. Что и как он находит в видео - понятия не имею. Для видеофайлов в wxLua есть другие объекты. Так что, естественно, я вначале подумал, что у Вас какая-то проблема с другим, написанным Вами с использованием wxLua скриптом.

IgorZ
Posts: 643
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 11 times
Been thanked: 48 times

_viewer.wx.lua - просмотр графических файлов

Post by IgorZ » Fri 06 Dec, 2019 07:06

citRiks wrote:
Wed 04 Dec, 2019 14:26
???
Периодически попадаются "серые" сканы. И портабельный бесплатный STDU Viewer, например, перед печатью может их осветлить и фон будет чистым в т.ч. и на бумаге. А SumatraPDF такого не умеет и посылает на печать как есть.
А-а-а... Так это называется не "пачкает", а "не умеет чистить грязные сканы". "Пачкает" - это когда при печати на бумаге оказывается мусор, отсутствующий в электронном документе. Выражайтесь грамотнее.

Кстати, STDU Viewer тоже вполне хорошо подключается для просмотра.
citRiks wrote:
Wed 04 Dec, 2019 14:26
Эвент перехватывает события, а не ключи
Это абсолютно верно с позиции программиста. Пользователь чтобы вызвать событие "Посмотреть картинку" нажимает ключ F3. А эвент перехватывает это событие и обрабатывает его по-своему. Что для пользователя выглядит как перехват ключа F3. Т.е. для пользователя никакой кучи-малы. Он может просто даже не задумывается о том, что там фактически делает эвент. Пользователь видит только результат нажатия на конкретную кнопку.
Ну тогда не обижайтесь, если Вас не понимают и, соответственно, не в состоянии отреагировать на Ваши крики о помощи. Хотите адекватной реакции - излагайте проблему чётко и ясно.
citRiks wrote:
Wed 04 Dec, 2019 14:26
И когда эвент в качестве макроса становится настраиваемым по кнопкам, пользователь может назначить на CtrlP просмотр пдф-ов, а на CtrlD — дэжавю, например. А так он без выборочно привязан к одной только F3.
То есть, Вы хотите, стоя на файле, по нажатию CtrlP попытаться открыть его как .PDF, а, стоя на нём же, по нажатию CtrlD открыть его как .DJVU? Даже в том случае, если это файл картинка.jpg? Странная логика, как на мой взгляд. Тем более, что если назначить на все эти клавиши один и тот же скрипт, то и открывать он их будет одинаково, независимо от того, какой клавишей его вызвали.
Last edited by IgorZ on Fri 06 Dec, 2019 07:09, edited 1 time in total.

buniak_a_h
Posts: 1241
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 79 times
Contact:

_viewer.wx.lua - просмотр графических файлов

Post by buniak_a_h » Fri 06 Dec, 2019 07:35

IgorZ wrote:
Fri 06 Dec, 2019 06:45
Собственно, какое именно сообщение об ошибке выводится? По идее, там должна указываться, как минимум, строка.
image.png
Заодно: версия скрипта последняя?
Извините. я перестал следить за макросом _viewer.wx.lua . Скорее всего, нет - 1.0.1 .

User avatar
HaRT
Moderator
Posts: 9159
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 174 times

_viewer.wx.lua - просмотр графических файлов

Post by HaRT » Fri 06 Dec, 2019 12:32

 ! Message from: HaRT
buniak_a_h, чтобы обсуждение можно было найти по тексту ошибки, крайне желательно выкладывать её в текстовом виде. Как я понимаю, это стандартный MessageBox, т.ч. просто нажатие Ctrl+C поместит весь его текст в буфер обмена. Если моё предположение верно, дополните, пожалуйста, своё сообщение.
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1241
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 79 times
Contact:

_viewer.wx.lua - просмотр графических файлов

Post by buniak_a_h » Fri 06 Dec, 2019 14:28

1. Столько лет работаю, не знал, что Ctrl+C копирует MessageBox facepalm2
2. В данном конкретном случае не скопировалось. :-(

User avatar
HaRT
Moderator
Posts: 9159
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 174 times

_viewer.wx.lua - просмотр графических файлов

Post by HaRT » Fri 06 Dec, 2019 14:38

buniak_a_h wrote:
Fri 06 Dec, 2019 14:28
2. В данном конкретном случае не скопировалось.
У вас точно был включён английский язык ввода для этого окна?
И если по Ctrl+C не копируется, то нет ли там возможности выделить текст мышкой?
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 1241
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 79 times
Contact:

_viewer.wx.lua - просмотр графических файлов

Post by buniak_a_h » Fri 06 Dec, 2019 14:42

HaRT wrote:
Fri 06 Dec, 2019 14:38
У вас точно был включён английский язык ввода для этого окна?
1. Сделал маленький тест на Delphi, из одной строки MessageBox(...) - работает. Это - доказательство?
2. И всё же - да. Английский.

buniak_a_h
Posts: 1241
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 89 times
Been thanked: 79 times
Contact:

_viewer.wx.lua - просмотр графических файлов

Post by buniak_a_h » Fri 06 Dec, 2019 16:33

HaRT,

Code: Select all

---------------------------
wxWidgets Debug Alert
---------------------------
/usr/src/packages/BUILD/sources/wxWidgets-3.0.2/src/common/image.cpp(1739): assert "IsOk()" failed in GetWidth(): invalid image
Do you want to stop the program?
You can also choose [Cancel] to suppress further warnings.
---------------------------
Да   Нет   Отмена   
---------------------------

citRiks
Posts: 79
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 8 times
Been thanked: 5 times

_viewer.wx.lua - просмотр графических файлов

Post by citRiks » Fri 06 Dec, 2019 17:38

IgorZ wrote:
Fri 06 Dec, 2019 07:06
Выражайтесь грамотнее
Хотите адекватной реакции - излагайте проблему чётко и ясно
Увы, знаю за собой такой недостаток — не всегда вразумительно изъясняюсь.
тогда не обижайтесь, если Вас не понимают
Ни о каких обидах и речи не было, и быть не может. Внутренне благодарю Вас и каждого форумчанина уже за то, что выслушиваете то, что я пытаюсь донести.
То есть, Вы хотите, стоя на файле, по нажатию CtrlP попытаться открыть его как .PDF, а, стоя на нём же, по нажатию CtrlD открыть его как .DJVU?
Очевидно, это всё из той же серии моего неумения ясно излагать. Правильнее, наверное, мне будет выразиться так: я намерен сделать чтобы по нажатию CtrlP открывался pdf, если это pdf, а если нет — то выдавалось сообщение, что "нет, это не pdf". И аналогично с DjVu. Просто чистая практика. Просто поверьте, что так надо. Потому, что такова публика (включая и меня самого), с которой мне приходится иметь дело. А Вы, вероятно, исходите из того, что имеете дело по большей части с людьми логичными, последовательными и быстро соображающими.

IgorZ
Posts: 643
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 11 times
Been thanked: 48 times

_viewer.wx.lua - просмотр графических файлов

Post by IgorZ » Mon 09 Dec, 2019 06:43

buniak_a_h wrote:
Fri 06 Dec, 2019 07:35
Заодно: версия скрипта последняя?
Извините. я перестал следить за макросом _viewer.wx.lua . Скорее всего, нет - 1.0.1
Попробуйте последнюю врсию. Если продолжит... wx.dll которая? С sourceforge.net (ссылка, что я давал), или та, что нашёл JohnDoe? Если последняя, то попробовать с официальной. Если не поможет, то попробовать приложенную тестовую версию и отписать, что и в каком порядке выдаётся.
Пока что выглядит так, что не срабатывает функция wx.wxLogNull(), подавляющая вывод сообщений.
Attachments
_viewer.wx.lua.test.7z
(2.91 KiB) Downloaded 3 times

Post Reply

Return to “Обсуждение макросов”