Как показать файл на панели QView Topic is solved

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Как показать файл на панели QView

Post by buniak_a_h »

Извините, если этот вопрос уже обсуждался. Я честно искал, но не нашёл. Итак.
Имеется панельный модуль (панель с флагом OPIF_REALNAMES, т.е. отражает реальные файлы).
На пассивной панели открыт быстрый просмотр (Quick View).
Требуется отобразить текущий файл на панели быстрого просмотра.
Можно, конечно, открывать файл через viewer.Viewer? но:
а. Насколько я понимаю, это будет образование нового окна.
б. Для позднейшего закрытия просмотрщика потребуется его ID, но, в отличие от editor.Editor, viewer.Viewer не возвращает ID вновь образованного просмотрщика. И как определить? Перед viewer.Viewer запомнить список окон, а после получить его снова и сравнить? Некузяво как-то…
в. Есть ещё задача на QView-панели отражать "левый" файл (как это делают, например, плагины ArcLite, MultiArc и Observer).

Судя по тому, что ситуация распространённая, есть какой-то простой способ. Никак не могу найти…

Last edited by buniak_a_h on Fri 23 Jul, 2021 11:31, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Как показать файл на панели QView

Post by citRiks »

наверное в заголовке надо приписать ".. в панельном луа-модуле" ?
И почему viewer.Viewer(...) не возвращает ИД?
Так в обычной панели возвращает:
lua:=viewer.Viewer(APanel.Current)
Если речь про луа-модульную/плугиновую панель, что там не возвращает, то да, это неправильно, в смысле упущение в АПИ я считаю
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Как показать файл на панели QView

Post by buniak_a_h »

citRiks wrote: Fri 23 Jul, 2021 14:46 наверное в заголовке надо приписать ".. в панельном луа-модуле" ?
На самом деле не обязательно. Например, хотелось бы для файла *.cpp в QView-панели показывать одноимённый *.hpp (ну, например…). По пункту пользовательского меню, например… Возможно, в плагине это тоже могло бы быть полезным… Я, правда, не писал пока.
citRiks wrote: Fri 23 Jul, 2021 14:46 И почему viewer.Viewer(...) не возвращает ИД?
Так в обычной панели возвращает:
lua:=viewer.Viewer(APanel.Current)
У нас какие-то разные ФАРы … :-)
У меня в полном соответствии с описанием возвращает true
citRiks wrote: Fri 23 Jul, 2021 14:46 Если речь про луа-модульную/плугиновую панель, что там не возвращает, то да, это неправильно, в смысле упущение в АПИ я считаю
Last edited by buniak_a_h on Fri 23 Jul, 2021 15:02, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Как показать файл на панели QView

Post by John Doe »

buniak_a_h wrote: Fri 23 Jul, 2021 11:28 а после получить его снова и сравнить?
Окна возвращаются в определённом порядке, поэтому чуть проще.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Как показать файл на панели QView

Post by HaRT »

John Doe wrote: Fri 23 Jul, 2021 15:56 Окна возвращаются в определённом порядке, поэтому чуть проще.
Но всё же ID (или nil в случае неуспеха), был бы куда информативнее, чем true/false, и куда проще в применении, чем перебор окон, да и степень совместимости хорошая (хоть и не 100%). Жаль только, что для этого надо менять FAR API.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Как показать файл на панели QView

Post by buniak_a_h »

John Doe, спасибо, конечно, но это всё равно неудобно. Неужто нет простого способа вывести файл на QView-панель?!
Кстати! Функция viewer.GetFileName(nil) возвращает имя именно того файла, что на QView-панели. Хоть это хорошо…
HaRT, Да и более похоже на editor.Editor. Даже странно, что сразу так не было сделано. Мне кажется, похожесть таких вещей не только удобна, но и реализуется легче, чем то, что сделано. Жаль, переделывать, наверно, уже не будет никто.
Last edited by buniak_a_h on Fri 23 Jul, 2021 16:12, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Как показать файл на панели QView

Post by citRiks »

buniak_a_h wrote: Fri 23 Jul, 2021 14:56У меня в полном соответствии с описанием возвращает true
да, мой косяк, и правда ТРУЕ
А вот было бы неплохо сделать поведение как у редакторе.
может сделаете на это Виш?
Убивает меня эта неконсистентность..
Дорогой @DrKnS, ну позяста :cry:
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Как показать файл на панели QView

Post by citRiks »

John Doe wrote: Fri 23 Jul, 2021 15:56Окна возвращаются в определённом порядке, поэтому чуть проще.
не факт что в будущем будут возвращаться в том же порядке. сейчас там допустим массив, а будет енумератор какой-нибудь, который никому не обещал быть отсортированным.
P.S.
или между опросами что-нибудь другое успеет закрыться.
Last edited by citRiks on Fri 23 Jul, 2021 16:27, edited 1 time in total.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Как показать файл на панели QView

Post by DrKnS »

Какая неконсистентность, какой ID, о чем речь?
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Как показать файл на панели QView

Post by buniak_a_h »

DrKnS wrote: Fri 23 Jul, 2021 16:54 Какая неконсистентность, какой ID, о чем речь?
Функция editor.Editor(…) возвращает ID экземпляра редактора. Его потом можно использовать, не озадачиваясь получением его через far.AdvControl(ACTL_GETWINDOWINFO).
Хотелось бы, конечно, аналогичный результат получать и от функции viewer.Viewer(…). Это было бы полезно, удобно и логично.
Правда, это может привести к неожиданностям в уже имеющихся плагинах/скриптах (например, если в плагине сравнение результата на равенство с единицей, а не на неравенство нулю…)
Last edited by buniak_a_h on Fri 23 Jul, 2021 17:09, edited 1 time in total.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Как показать файл на панели QView

Post by Shmuel »

buniak_a_h wrote: Fri 23 Jul, 2021 17:07 Функция editor.Editor(…) возвращает ID экземпляра редактора
Это не так. Данная функция возвращает одну из четырёх EEC-констант, например EEC_MODIFIED.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Как показать файл на панели QView

Post by buniak_a_h »

На самом деле всем спасибо, все свободны ;-)
Решение оказалось во включении флага OPIF_EXTERNALGET в GetOpenPanelInfo
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Как показать файл на панели QView

Post by buniak_a_h »

Shmuel, ой, я ошибся. Выдал желаемое за действительное…
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Как показать файл на панели QView

Post by citRiks »

DrKnS wrote: Fri 23 Jul, 2021 16:54Какая неконсистентность, какой ID, о чем речь?
Спасибо за участие во-первых
некоторые участники этой темы, особенно я, сами косячат и грешат на АПИ, но все оказалось норм
Post Reply

Return to “Нужна помощь”