Запоминание Path0 для плагиновой панели не из APanel, а из левой/правой (той, на которой открывается панель)

Здесь можно сообщить о найденных багах в Far.
Post Reply
buniak_a_h
Posts: 1444
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 103 times
Been thanked: 118 times
Contact:

Запоминание Path0 для плагиновой панели не из APanel, а из левой/правой (той, на которой открывается панель)

Post by buniak_a_h »

Из заголовка ясно, но всё же поясню.
Ситуация 1: открываю на активной панели временную панель, встаю на .. и жму Enter или PdUp. Предсказуемо возвращаюсь в папку, которая была открыта до временной. Это -правильно.
Ситуация 2: открываю на пассивной панели временную панель, перехожу на неё, встаю на .. и жму Enter или PdUp. Опа! Перехожу в папку, которая и так открыта на бывшей активной (ныне - пассивной) панели. Это неудобно как минимум по трём соображениям:
1. По логике хочется вернуться в ту папку, которая была открыта на панели ДО открытия плагиновой. Более того, если HostFile не пуст, то позиционироваться на нём. Именно по такой логике работают плагиновые панели, "заходящие" в файл (архивы, например) по Enter-у и CtrlPgDn-у.
2. Бывает особенно обидно, если "зашли" во временную панель просто посмотреть(например, вспомнить имя файла), а потом хотели вернуться и поискать этот файл. А куда вернуться - забыл… Хорошо, если в историю занеслось. А если стоит Alternative history и исходная папка входит в Folders history: exclusions? Бяда...
3. Ну и открывать ту же папку, что на другой панели, есть другие способы (говорят, есть искаробочный плагин SameFolder - не смотрел. Можно также нажать Tab, AltF1 (или AltF2), букву того же диска, ещё раз Tab. Ну или элементарный марос Panel.SetPath(0, PPanel.Path, PPanel.Current))

User avatar
John Doe
Бюрократ
Posts: 12660
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 271 times

Запоминание Path0 для плагиновой панели не из APanel, а из левой/правой (той, на которой открывается панель)

Post by John Doe »

Очень многословно, хотя пожелание можно уместить в одну строку.
"При окрытии временной панели в пассивной панели в стек почему-то сохраняется директория с активной панели".

Edit
Поправка: про стек это фантазия, скорей речь о "текущей папке", которая отображается в командной строке, если стоять на элементе ".."
Last edited by John Doe on Thu 16 Jan, 2020 10:08, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 12660
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 271 times

Запоминание Path0 для плагиновой панели не из APanel, а из левой/правой (той, на которой открывается панель)

Post by John Doe »

Ещё одна связанная с этим странность: директория, открытая в пассивной панели, не сохраняется в истории, если открыть там же временную панель.

buniak_a_h
Posts: 1444
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 103 times
Been thanked: 118 times
Contact:

Запоминание Path0 для плагиновой панели не из APanel, а из левой/правой (той, на которой открывается панель)

Post by buniak_a_h »

John Doe wrote:
Thu 16 Jan, 2020 10:05
Очень многословно, хотя пожелание можно уместить в одну строку.
Вообще-то, пожелание сформулировано в заготовке темы. В одну строку. Текст сообщения - это иллюстрация тех странностей, к которым приводит нынешняя ситуация. Ну, как обоснование моей хотелки. Типа Steps To Reproduce
Про стек специально не писал, т.к. не знаю "внутренней кухни". Предположил, что папка, в которую надо возвращаться, хранится не в каком-то отдельном стеке, а прямо в Path0.
Есть перспектива, что идею реализуют? Если Вы согласны - не могли бы Ва написать на мантис?

User avatar
John Doe
Бюрократ
Posts: 12660
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 271 times

Запоминание Path0 для плагиновой панели не из APanel, а из левой/правой (той, на которой открывается панель)

Post by John Doe »

Данная проблема воспроизводится и с другими плагинами.
NetBox, ProcessList, FarDroid, ...

buniak_a_h
Posts: 1444
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 103 times
Been thanked: 118 times
Contact:

Запоминание Path0 для плагиновой панели не из APanel, а из левой/правой (той, на которой открывается панель)

Post by buniak_a_h »

John Doe, я в курсе, но всё равно мне это не кажется правильным. Просто остальные я использую реже. Кроме ArcLite и Multiarc, но там эта проблема намного менее актуальна, т.к. плагиновая панель, как правило, открывается на активной панели. Свой панельный модуль, отражающий структуру таблиц _G, я переделал таким образом, чтобы запоминалась та панель, на которой открывается панельный модуль, а при выходе восстанавливается именно то состояние, которое было до открытия панели модуля.
На самом деле, как оказалось, запоминать левую/правую тоже не правильно: в процессе можно менять панели местами (CtrlU). Т.е. в момент открытия плагиновой панели надо определять, на какой (активной или пассивной) панели она будет открыта, и запоминать Path и Current для неё (на самом деле panel.GetPanelDirectory(…) плюс Current).

Post Reply

Return to “Глюки и баги”