MultiPanel — стек панелей

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 11429
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

MultiPanel — стек панелей

Post by John Doe » Tue 15 Jul, 2014 23:14



Панелей на экране помещается всё так же две, но каждую из них в любой момент можно поместить в MRU-стек, и в любой другой момент достать оттуда в изначальном их состоянии (режим, сортировка, выделение).
Запомнить в стеке можно произвольное число панелей (но вряд ли с большим количеством будет удобно работать).
Список панелей сохраняется между запусками фара.
Если папка панели в данный момент не существует, то это индицируется (пункт списка серый).
Панели плагинов в основном поддерживаются, а если же панель невозможно сохранить, то это индицируется (пункт списка серый).

Шорткаты в панелях:
  • Ctrl-~ — переключиться между активной и сохранённой, с отображением списка

    LCtrl-F3 — сохранить активную панель в стек
    LCtrl-F4 — восстановить из стека предыдущую панель
    LCtrl-F8 — "закрыть" панель:
    Те же комбинации с дополнительным Shift выполняют аналогичные действия для пассивной пенели.

    Внимание:
    Для выполнения указанных функций необходимо удерживать клавиши Ctrl-F3/F4/F8 не менее 200 мс (точнее, удерживаться должен сам Ctrl).
    Короткое нажатие клавиш вызывает встроенные фаровские команды.
Шорткаты в списке (Ctrl должен удерживаться):
  • ~ — выбрать следующую сохранённую панель в стеке
    Отпустить Ctrl — осуществить переключение
    Enter — осуществить переключение на пассивной панели
    F3 — клонировать выбранную панель
    F4 — удалить выбранную панель (если удаляется первая в списке панель, то происходит переключение в следующую)
    Работа с настройками:
Attachments
MultiPanel.alpha2.7z
(4.36 KiB) Downloaded 142 times

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: MultiPanel — стек панелей

Post by AleXH » Wed 16 Jul, 2014 08:28

Ну это просто праздник какой-то! :) Большое спасибо за столь нужный скрипт.

Сейчас скрипт блокирует сортировку панелей по CtrlF3/F4.

Предлагаю дополнить вызов меню панелей без удержания по нажатию и отпусканию LCtrl.
Last edited by AleXH on Wed 16 Jul, 2014 08:58, edited 2 times in total.

User avatar
Alexey Samlyukov
Posts: 1759
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 2 times
Contact:

Re: MultiPanel — стек панелей

Post by Alexey Samlyukov » Wed 16 Jul, 2014 08:55

а мне вот было всегда интересно, почему клавиши CtrlF3/F4, хотя с панелями связаны CtrlF1/F2 ? и почему хотя бы правые контролы не освободить под оригинальные сочетания?

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

Re: MultiPanel — стек панелей

Post by John Doe » Wed 16 Jul, 2014 10:02

Alexey Samlyukov wrote:а мне вот было всегда интересно, почему клавиши CtrlF3/F4, хотя с панелями связаны CtrlF1/F2 ? и почему хотя бы правые контролы не освободить под оригинальные сочетания?
Это же макросы, освободить легко.
Сочетания выбраны как в плагине MultiPanel, но если есть идеи получше, то предлагайте.

Как вариант, сочетания могли бы срабатывать при удержании, а короткое нажатие вызывало бы изначальную встроенную функцию фара.

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

Re: MultiPanel — стек панелей

Post by John Doe » Wed 16 Jul, 2014 10:10

AleXH wrote:Предлагаю дополнить вызов меню панелей без удержания по нажатию и отпусканию LCtrl.
С удержанием вам вообще неудобно? Или этот шорткат для другого сценария использования?

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: MultiPanel — стек панелей

Post by AleXH » Wed 16 Jul, 2014 11:07

Или этот шорткат для другого сценария использования?
Это для альтернативного варианта - стандартного меню с выбором стрелками и вводом.
С удержанием вам вообще неудобно?
Нормально, надо привыкнуть просто.
Согласен с Alexey Samlyukov о применении CtrlF1/F2, но предлагаю их использовать для свопа левой, либо правой панелей, в то время как F3/F4 отвечают за активную и пассивную панели. F5 клонирование, F6, либо DEL - удаление, главное чтобы они в панели не прорвались :)

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

Re: MultiPanel — стек панелей

Post by John Doe » Wed 16 Jul, 2014 11:22

AleXH wrote:
Или этот шорткат для другого сценария использования?
Это для альтернативного варианта - стандартного меню с выбором стрелками и вводом.
Сделать можно. Но нужен ли альтернативный вариант?

И использовать в качестве шортката одиночный Ctrl идея не очень, т.к. пользователь может нажать его например для того, чтобы найти на линейке клавиш нужную команду, и так и не выбрав ничего, отпустить Ctrl.
Отличить длинное нажатие от короткого — в макросе сейчас невозможно (для одиночных модификаторов).

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: MultiPanel — стек панелей

Post by AleXH » Wed 16 Jul, 2014 11:35

Но нужен ли альтернативный вариант?
Я перебьюсь, но мне кажется наличие такого варианта было бы уместным (хотя само предложение лишней работы нет :)) Но про Ctrl вы правы, получается что столь же удобной альтернативы и нет, поэтому остаётся только вариант с удержанием.

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

alpha 1

Post by John Doe » Wed 16 Jul, 2014 12:58

  • Сделал на пробу вариант без удержания, на LCtrl, по умолчанию отключен (NoMacro).
  • Макросы теперь срабатывают только на сочетания с левым Ctrl.
  • Экспериментально: макросы Ctrl[Shift]F3|F4] теперь срабатывают только при удержании Ctrl >200 мс (настраивается в переменной HoldDelay).
  • Сохранение панели теперь индицируется сообщением.
В шапке.

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: MultiPanel — стек панелей

Post by AleXH » Wed 16 Jul, 2014 14:06

Имеет смысл сделать вызов меню по Ctrl до 200мс, если дольше, то предполагается что пользователь рассматривает строку функциональных клавиш и меню не вызывается. По ESC закрывать меню, если оно открыто, не меняя панель. Скорректировать надпись и шоркаты (не требуется Ctrl).

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

Re: MultiPanel — стек панелей

Post by John Doe » Wed 16 Jul, 2014 14:12

AleXH wrote:Имеет смысл сделать срабатывание вызов меню по Ctrl до 200мс
Имеет. Но средствами макроязыка это невозможно, как я уже писал (неоткуда узнать когда был нажат одиночный Ctrl).

Остальные предложенные модификации имеют смысл, если оставлять этот режим.

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: MultiPanel — стек панелей

Post by AleXH » Wed 16 Jul, 2014 14:13

Тогда всё на ваше усмотрение

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

alpha 2

Post by John Doe » Thu 17 Jul, 2014 12:28

  • Доделан режим работы, не требующий удержания модификатора (макрос на одиночный Ctrl).
  • Несуществующие панели отображаются в списке серым.
    Более корректно обрабатывается ситуация, когда не удаётся открыть нужную панель.
  • Новая функция: "закрыть" панель.
    Если панель плагиновая, то выходим в реальную.
    Если панель реальная, то устанавливаются папка и режимы по умолчанию (DefPanel в коде).
    Шорткат в панелях — LCtrl[Shift]F8 (активная/пассивная)
  • Работа с настройками.
    Shift-F9 — сохранить настройки
    F9 — перезагрузить настройки (так например можно подхватить список панелей из другой сессии)
    F8 — удалить настройки
В шапке.

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

Re: MultiPanel — стек панелей

Post by John Doe » Thu 17 Jul, 2014 15:30

В работу с настройками закралась ошибка (
Перезалил

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

Re: MultiPanel — стек панелей

Post by John Doe » Sat 19 Jul, 2014 11:53

Хочу посоветоваться.
Сейчас отображаемая панель не является частью запоминаемого стека панелей.
Для пользователя это в большинстве случаев не имеет значения.
Но ощутить разницу можно: при сохранении настроек (в т.ч. при выходе) текущая панель не сохраняется. При восстановлении соответственно текущая панель не изменяется.
И с моей точки зрения, это хорошо.
С другой стороны, я понимаю что ожидания пользователя могут быть иными.
Если для вас это важно, то высказывайтесь.

Также интересует, какие ещё из (пока?) нереализованных функций плагина Multi-panel реально востребованы.
Например:
-- Возможность сохранять/восстанавливать именованных наборов панелей
-- У каждой панели собственный постоянный индекс, независимый от MRU
-- Режим, в котором список панелей не сортируется в порядке их использования

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: MultiPanel — стек панелей

Post by AleXH » Sat 19 Jul, 2014 17:27

Выскажусь по другому моменту - порядок следования панелей в списке, имхо, неправильный. Панель №0 на которой стоит курсор, должна быть панелью, которую мы свопнули в прошлый раз и нажатие на Enter свопит её с активной. Панель №1 это панель которую мы свопили до нулевой и тд. Т.е. приоритетом является именно свопинг панелей, а не их клонирование. Текущей активной панели в списке быть не должно, но она может быть добавлена по F3, а удалена по F4(F8). Если же при открытии списка панелей текущая активная добавляется автоматом в позицию 0, то курсор должен стоять на панели 1, а не 0.

Второй момент - шоркаты. Перекрытие сортировок панелей по LCtrl неудобно, RCtrl для сортировок опять же неудобен (мне), поэтому просто удаляю все шоркаты и вызываю через Ctrl список, к тому же это нагляднее.

Post Reply

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