переключение вкладок в порядке последнего использования

Russian main discussion
  • Author
  • Message
Offline
Posts: 4
Joined: Fri Mar 25, 2011 12:46 am

переключение вкладок в порядке последнего использования

Post by timd »

поискал форум, но так и не нашел четкого ответа на вопрос

можно ли добиться в AkelPad, чтобы по нажатию Ctrl+Tab вкладки переключались в порядке последнего использования (last used order tab switching)? Еще бы хорошо было списочек вкладок при этом видеть. Т.е. одно нажатие указанного сочетания клавиш переключает на послдений файл, двойное - на предпослений и т.д.

На сегодняшний день такое поведение является де-факто промышленным стандартом, потому что большинство крупных продуктов либо поддерживают его (e.g. FireFox), либо используют по умолчанию (e.g. Windows Task Switcher, NetBeans, Opera,...). А также наиболее продуктивным способом работы с множеством документов.

Находил подобную тему на форуме, но она уже почти 2х летней давности. Там ни к чему не пришли. Потом были какие-то близкие по теме обсуждения, но ясности они не внесли.

AkelPad нам очень нравится, но без этой функции у нас нет шансов на его внедрене в работу в нашем коллективе. Отсутствие данной функции, с нашей точки зрения, делает данный программный продукт слишком непродуктивным.

спасибо.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Попробуйте поиграться опциями: Окно -> Вкладки -> "Следующая-Предыдущая" и "Правая-Левая".
Также есть скрипты TabSwitch.js, tabsRightLeft.js, tabsNextPrevious.js, tabsSwitchAlt.js.
Думаю, что сможете подобрать что-то для себя.

Offline
Posts: 4
Joined: Fri Mar 25, 2011 12:46 am

Post by timd »

Спасибо за помощь.
Предложенные Вами опции не позволяют достичь желаемого эффекта. При попытке запуска скрипта выдается ошибка "script engine for file type .js not found". Плагины scripts и macros включены. Но сюдя по исходному коду, эти скрипты просто вызывают единоразовое переключение с как будто бы включенной той или иной опцией в главном меню.


Вот некоторое разъяснение

Опция "Следующая-Предыдущая" ислледовалась мною и ранее, но я так и не смог выяснить алгоритм ее работы. Проблема в том, что после переключения на вкладку, список вкладок как будто-бы не перестраивается, и со включенной опцией "Следующая-Предыдущая" порядок вкладок всегда остается один и тот же. Это похоже на то, как если бы с этой опцией редактор выстраивал список вкладок в порядке внесений первых изменений во вкладках, и далее использовал этот список на постоянной основе.

Смысл именно в том, чтобы каждый раз при переключении вкладок предыдущая активная вкладка динамически попадала на вершину списка. Если мы "прыгаем" на несколько вкладок "назад", то эта вкладка выдергивается из своей позиции в списке и помещается на самый верх, а все остальные просто сдвигаются вниз и т.д. И теперь если будет вызвано очередное переключение, то вкладки будут листаться "сверху-вниз" в этом списке. Алгоритм ведь очень простой; для любого языка программирования есть библиотеки, реализующие контейнеры с подобным поведением.

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

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

timd
Для вашего запроса подходит уже указаный скрипт TabSwitch.js.
"script engine for file type .js not found"
viewtopic.php?p=11623

Offline
Posts: 4
Joined: Fri Mar 25, 2011 12:46 am

Post by timd »

да дейсвтительно, то что нужно.
спасибо огромное за помощь и за терпение непонятливого пользователя!

Offline
Posts: 52
Joined: Mon Jan 03, 2011 11:02 pm

Post by ABTOP »

Хотелось бы для опции TabOptionsMDI в ini файле добавить ещё одно значение — "Переключаться между текущей вкладкой и последней использованной", а то крайне неудобно при редактировании двух фалов переключаться между ними по Ctrl +Tab, при условии, что открыто больше двух файлов. Если быть кратким, то сделать переключение между вкладками как в современных браузерах Firefox и т.д. А при отпукании Tab, но удерживание Ctrl выдавать список открытых на данный момент вкладок — опять же по аналогии с FireFox и прочими браузерами, и при последующем нажатии Tab перемещаться на нужную вкладку.
P.S Сейчас не понятна логика работы если TabOptionsMDI выставить в 65536 - GUI (переключаться между вкладками как Следующая-Предыдущая).
У меня при нажатии Ctrl +Tab происходит переключение с текущей вкладки (даже если она не последняя) на самую первую. А при нажатии Ctrl + Shift + Tab отрабатывает корректно. Обратил внимание, что если сначала нажать Ctrl + Shift + Tab, то по Ctrl + Tab переключать начинает корректно.
Но выше описанный вариант мне более предпочтителен.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

ABTOP
См. всё тот же скрипт TabSwitch.js - похоже он написан специально для вас :)

Offline
Posts: 52
Joined: Mon Jan 03, 2011 11:02 pm

Post by ABTOP »

Instructor, благодарю. Получается, что так, универсальный скрит под мои запросы. :) А какое значение нужно присвоить TabOptionsMDI
65536 - GUI (переключаться между вкладками как Следующая-Предыдущая).
131072 - GUI (переключаться между вкладками как Правая-Левая)
чтобы переключалось как я хочу или это совершенно без разницы если запущен скрипт?
Ещё вопрос — а как заставить скрипт или несколько скриптов автозагружаться при старте AkelPad?

Offline
Posts: 52
Joined: Mon Jan 03, 2011 11:02 pm

Post by ABTOP »

Окно со списком фалов теперь отображается корректно.
А вот с переключением по Ctrl +Tab какая-то беда. Менял значение CtrlTab с true на false и Next с false на true и на -1, но результата это не дало. Всё равно не желает переключаться как мне надо. :(

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

ABTOP
Просто назначьте скрипт на Ctrl+Tab (CtrlTab должен быть true).

Offline
Posts: 52
Joined: Mon Jan 03, 2011 11:02 pm

Post by ABTOP »

Instructor, благодарю за помощь. теперь всё как надо. Уж простите меня за мою непонятливость, просто раньше не использовал в AkelPad скрипты. Вот и туплю.
P.S. Пользуюсь случаем хочу выразить благодарность за такой замечательный редактор и за высокую скорость реакции на пожелания пользователей. Удачи!

Offline
Posts: 52
Joined: Mon Jan 03, 2011 11:02 pm

Post by ABTOP »

Instructor, есть два неудобства — 1. При большом кол-ве открытых фалов окно списка выдаваемого по Ctrl + Tab уходит за нижнюю границу экрана и часть названий не видно. Пробовал скрывать "Панель задач", но нижнюю стрелку прокрутки всё равно не видно.
Image


2. Не видно на каком имени установлен курсор пока не нажмёшь ещё раз Ctrl+ Tab/ Ctrl + Shift +Tab, т.к. курсор находится на одну позицию выше самого верхнего видимого имени.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

ABTOP wrote:есть два неудобства...
Реализовано. Будет доступно после релиза 4.9.1.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Хотелось бы какой-то параметр в TabOptionsMDI, когда в фокусе одна вкладка и мы делаем правый клик на другой, чтобы эта вкладка не становилась активной (как в браузерах).

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Cuprum
А как тогда должно работать меню вкладки? А если запустить из него скрипт с %f, %d, или там GetEditWnd, GetEditModified, GetEditDoc, GetEditFile, GetEditModified?
Post Reply