RecentScreens — переключение между окнами как в MS Windows™
Posted: Tue 09 Apr, 2013 13:02
by John Doe
В большинстве приложений, которые я использую, переключение между окнами происходит в порядке их использования (MRU order).
Но не во всех, пример исключений: FAR manager, Google Chrome.
Для решения этой проблемы в фаре был когда-то такой плагинчик RecentScreens — меню «Экраны» в порядке использования
http://plugring.farmanager.com/plugin.php?pid=813 wrote:Плагин RecentScreens может служить заменой стандартному меню Screens (Экраны). При этом список окон в меню отсортирован в порядке использования. Так же плагин позволяет переключаться между окнами с помощью Ctrl-Tab аналогично тому, как это происходит в Opera (или Visual Studio).
Переключение окон-экранов по умолчанию заменяет LCtrlTab (только левый Ctrl).
В отличии от обычного переключения экранов — в процессе переключения может отображаться список окон (до тех пор, пока удерживается Ctrl).
За исключением порядка элементов, вид списка соответствует стандартному меню Screens (F12).
- так же: (*) помечены редакторы с несохранёнными изменениями.
- отличие: для панелей отображаются путь папки, открытой на активной панели (а не файл под курсором)
- отличие: корректно обрабатываются модальные окна Update: после 4138 билда отображаемые номера окон не соответствуют
CtrlTab / CtrlShiftTab — вперёд/назад по списку.
Также работают и Ctrl- Up|Down|PgUp|PgDn|Home|End. Пока список на экране — перемещаться по его элементам можно и с помощью мыши.
Ctrl<hot_key> — переход к окну с заданной горячей клавишей (хоткей фиксированный, соответствует тому, что в стандартном Screens)
Если отображение списка отключено в настройках, то его можно вызвать по CtrlF12
Независимо от настроек список показывается при вызове из единственного окна, и в модальных редакторах/вьюверах
Настройка осуществляется прямо в списке окон, вот справка (доступна по F1).
local name = (w.Type==F.WTYPE_PANELS) and APanel.Path.."\\" or w.Name
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Mon 15 Apr, 2013 18:25
by Shmuel
John Doe wrote:описанный эффект возникает от того, что курсор стоит на элементе ".."
Нажмите F12, увидите.
F12 показывает элемент под курсором, ему простительно. А сабж показывает текущую папку, независимо от элемента под курсором, следовательно, это - баг.
John Doe wrote:Предлагаю такое решение: [....]
Я абсолютно в код не заглядывал. Мне (как пользователю) надо, чтоб правильно работало.
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Mon 15 Apr, 2013 18:40
by John Doe
Вроде я указал как и где можно 'исправить' этот т.н. 'баг', не?
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Mon 15 Apr, 2013 18:50
by Shmuel
John Doe wrote:Вроде я указал как и где можно 'исправить' этот т.н. 'баг', не?
1. Если "т.н.", то вы не считаете это багом?
2. Такими вещами не занимаюсь, то-есть при наличии развивающегося плагина/скрипта, я не буду править что-то сам, а затем делать merge с новыми версиями. Либо беру готовое, либо не пользуюсь.
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Mon 15 Apr, 2013 18:56
by John Doe
1. Баг это когда функция работает иначе, чем заявлено. А заявлено было не много.
Для меня это вообще не функция, но раз люди просят, почему бы и нет
2. У себя я исправил.
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Mon 15 Apr, 2013 18:57
by HaRT
Мне одному кажется, что “MS Windows™” в заголовке темы не слишком удачно?
Во-первых, реализованный способ не специфичен для Винды; во-вторых, не вполне ясно, в каком смысле “как” (например, где трёхмерные аэро-эффекты?!).
Я бы предложил термин MRU order. К сожалению, общепринятого русскоязычного термина не знаю, Майкрософт тоже не блещет.
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Tue 16 Apr, 2013 09:51
by John Doe
'MRU' настолько устойчиво ассоциируется с 'list', что я с удивлением обнаружил что предложенный вами термин тоже используется.
А для русского языка тем более нет термина, так что приходится на пальцах, "как в Opera", "как в Visual Studio", "как в Windows".
"Переключение между окнами в порядке их использования" тоже коряво.
Я исходил из того, что разницу в порядке переключения окон в фаре и в Windows видят все (а фар и Windows есть у каждого).
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Tue 16 Apr, 2013 10:43
by HaRT
John Doe wrote:"Переключение между окнами в порядке их использования" тоже коряво.
Согласен.
Можно что-нибудь в духе порядок «недавние первее», или «недавние выше» или «недавние ближе»…
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Tue 16 Apr, 2013 10:53
by 2useven10
LRU и MRU переводить не надо, как и Windows.
Re: RecentScreens — переключение между окнами как в MS Windo
Posted: Tue 16 Apr, 2013 11:15
by John Doe
HaRT wrote:Можно что-нибудь в духе порядок «недавние первее», или «недавние выше» или «недавние ближе»…
Вы находите это лучше?
2useven10 wrote:LRU и MRU переводить не надо, как и Windows.
И кто поймёт?
RecentScreens и то понятнее
RecentScreens r2.11
Posted: Tue 16 Apr, 2013 22:32
by John Doe
r2.11
- для панелей отображается текущий путь, независимо от элемента под курсором
- теперь игнорируются события QView
в строки 95 и 103 добавлено условие and Area.Viewer
Первые версии "работали" и в области FindFolder (Alt-F10).
Сейчас при попытке вызова оттуда срабатывает ассерт, в следующей версии просто уберу эту область (строка 26).
RecentScreens — переключение между окнами как в MS Windo
Posted: Tue 16 Apr, 2013 23:50
by John Doe
Shmuel wrote:F12 показывает элемент под курсором, ему простительно. А сабж показывает текущую папку, независимо от элемента под курсором
На плагиновых панелях F12 показывает чёрт-те что (баг там).
А макрос показывает путь от корня плагиновой панели.
Если у вас иное видение, то дайте знать.
Желательно вместе с кодом.
Re: RecentScreens — переключение между окнами как в MS Windo
Update 2
Функция format исправлена в FAR build 3349
RecentScreens r3
Posted: Tue 23 Apr, 2013 21:10
by John Doe
r3
Пользовательские настройки теперь хранятся в базе LuaMacro, сохраняются при любом изменении.
Изменить их можно интерактивно, делается это прямо в списке окон,
горячие клавиши (цифровая клавиатура) перечислены на рамке, помощь доступна по F1
/Возможно у кого-то на клавиатуре отсутствует NumPad, дайте знать, добавлю другие хоткеи/
Если даже отображение списка отключено, то его всегда можно вызвать по CtrlF12
/Кроме того меню всегда показывается при вызове из единственного окна, и в модальных редакторах/вьюверах/
При закрытии какого-либо окна перемещаемся в "предыдущее" (в смысле MRU)
Окна "нумеруются" как в Screens: 0-9,A-Z
Первые 36 окон можно вызвать по хоткею /[RL]Ctrl\w/
Панели в списке дополнительно помечаются
При загрузке проверяется билд фара (в последних билдах были важные исправления)
/Если хотите остаться на "стабильном" 3355 - можно изменить значение minfarbuild, в начале скрипта/
Re: RecentScreens — переключение между окнами как в MS Windo