Стек плагиновых панелей в фар
Стек плагиновых панелей в фар
По мотивам...
Речь о том что сейчас такой стек есть но в нетрадиционном очень своеобразном виде.
Если в архивном плагине (arclite) нажать Enter или Ctrl+PgDn на элементе панели (не каталоге),
фар (если может) извлекает этот элемент во временный файл и пытается его открыть в новой панели.
Если это удалось, после закрытия новой мы возвращаемся в панель архиватора -- стек вроде как есть.
Если же какой-то плагин, например через Open в меню плагинов, сам создаст новую панель из текущего элемента архива
(сам извлечёт файл из архива и откроет временный файл, или откроет прямо в архиве) новая панель будет создана,
но после её закрытия мы окажемся не в панели архиватора, а в обычной файловой панели.
Архиватор закрыт - стека нет.
Как пример можно открыть .exe/.dll файл в PEAnalyzer из архива arclite.
Думаю для подобных сценариев стек панелей должен делать сам фар.
Чтобы отличать открытие новой панели из элемента другой панели (когда стек нужен - PEAnalyzer...)
от панели созданной 'из воздуха' (стек не нужен - NetBox...), можно ввести специальный флаг в свойствах плагина.
Что-то вроде PF_RECURSIVE_PANEL
Речь о том что сейчас такой стек есть но в нетрадиционном очень своеобразном виде.
Если в архивном плагине (arclite) нажать Enter или Ctrl+PgDn на элементе панели (не каталоге),
фар (если может) извлекает этот элемент во временный файл и пытается его открыть в новой панели.
Если это удалось, после закрытия новой мы возвращаемся в панель архиватора -- стек вроде как есть.
Если же какой-то плагин, например через Open в меню плагинов, сам создаст новую панель из текущего элемента архива
(сам извлечёт файл из архива и откроет временный файл, или откроет прямо в архиве) новая панель будет создана,
но после её закрытия мы окажемся не в панели архиватора, а в обычной файловой панели.
Архиватор закрыт - стека нет.
Как пример можно открыть .exe/.dll файл в PEAnalyzer из архива arclite.
Думаю для подобных сценариев стек панелей должен делать сам фар.
Чтобы отличать открытие новой панели из элемента другой панели (когда стек нужен - PEAnalyzer...)
от панели созданной 'из воздуха' (стек не нужен - NetBox...), можно ввести специальный флаг в свойствах плагина.
Что-то вроде PF_RECURSIVE_PANEL
Last edited by 2useven10 on Sun 30 Apr, 2023 08:36, edited 1 time in total.
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Стек плагиновых панелей в фар
Может, лучше в аргументах вызова открытия панели? Чтобы плагин мог, когда надо открывать со стеком, а когда не надо — без такового.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
Стек плагиновых панелей в фар
Видимо, тогда должна быть возможность очистки стека. Типа зашли в одну панель (архив), из неё - в другую, в третью, затем вернулись в архивную и история уже не нужна.
Стек плагиновых панелей в фар
Сделал в 6134 (надеюсь).
Без нового флага PF_RECURSIVEPANEL можно было обойтись,
он добавлен скорее для страховки, чтобы поведение существующих плагинов не изменилось без их ведома.
Без нового флага PF_RECURSIVEPANEL можно было обойтись,
он добавлен скорее для страховки, чтобы поведение существующих плагинов не изменилось без их ведома.
Стек плагиновых панелей в фар
Продолжение для Plugin.Command и префиксов
build 6140, arclite += PF_RECURSIVEPANEL
https://github.com/FarGroup/FarManager/issues/680
Возможны неучтённые побочные эффекты..
build 6140, arclite += PF_RECURSIVEPANEL
https://github.com/FarGroup/FarManager/issues/680
Возможны неучтённые побочные эффекты..
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Стек плагиновых панелей в фар
Нельзя ли описать как в данном случае проявляется новая функциональность?
Как запускать и чего нового при этом ожидать?
https://t.me/FarManager — Telegram чат
Стек плагиновых панелей в фар
Открытие новой панели должно быть 'рекурсивным' для плагинов с PF_RECURSIVEPANEL (на данный момент их 2 PEAnalyzer и arclite),
после выхода возврат в плагиновую панель а не в файловую.
после выхода возврат в плагиновую панель а не в файловую.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Стек плагиновых панелей в фар
Зависит ли рекурсивность от того, каким образом открыта панель?
В прочих случаях эффект ожидается идентичный?
Зависит ли от того, связаны ли панели с хостфайлами?
- Enter/PgDn
- Меню Дисков/Плагинов
- по префиксу, или Plugin.Command
- ???
В прочих случаях эффект ожидается идентичный?
Зависит ли от того, связаны ли панели с хостфайлами?
https://t.me/FarManager — Telegram чат
Стек плагиновых панелей в фар
Изначально (см. первый пост темы) рекурсивность была только при обработке Enter (Ctrl+PgDn относится туда же) в плагиновой панели.
В этом случае фар сам получал временный файл из текущего элемента панели и если мог открывал новую панель.
6134 расширил рекурсивность на создание новой панели из меню плагинов если новая панель создана
1) из плагиновой панели (почти всегда это архивная панель)
2) вновь созданная панель принадлежит плагину с флагом PF_RECURSIVEPANEL (первый PEAnalyzer, сейчас +arclite)
3) у новой панели есть не пустой hostfile
6140 всё аналогично, но панель может быть создана также в Plugin.Command или по префиксу
В этом случае фар сам получал временный файл из текущего элемента панели и если мог открывал новую панель.
6134 расширил рекурсивность на создание новой панели из меню плагинов если новая панель создана
1) из плагиновой панели (почти всегда это архивная панель)
2) вновь созданная панель принадлежит плагину с флагом PF_RECURSIVEPANEL (первый PEAnalyzer, сейчас +arclite)
3) у новой панели есть не пустой hostfile
6140 всё аналогично, но панель может быть создана также в Plugin.Command или по префиксу
Last edited by 2useven10 on Fri 12 May, 2023 21:57, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Стек плагиновых панелей в фар
Что если (экспериментально) добавить опцию, по которой стек будет создаваться и для плагинов, не знающих о
PF_RECURSIVEPANEL
?https://t.me/FarManager — Telegram чат
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Стек плагиновых панелей в фар
На мой взгляд, спокойнее будет иметь возможность задавать это для каждого такого плагина отдельно (по GUID'у). Иначе может получиться, что несколько плагинов работают нормально, но один, субъективно очень важный, «портит всё стадо».
Фар есть инструмент, а не нянька. © 2009 DrKnS
Стек плагиновых панелей в фар
John Doe, HaRT,
Сделать не сложно (я пока склонен ко второму варианту). Но для начала хочется убедиться что всё работает как задумывалось.
Если всё ок и будет реальная потребность в подобной рекурсивности для плагинов которые нельзя пересобрать - можно добавить настройку.
Сделать не сложно (я пока склонен ко второму варианту). Но для начала хочется убедиться что всё работает как задумывалось.
Если всё ок и будет реальная потребность в подобной рекурсивности для плагинов которые нельзя пересобрать - можно добавить настройку.